Setting Up Business Rules |
- 01 Simple BPM Task Initiator
- 02 BPM Business Rules and Decision Activity
- 03 Service Invocation DB and File Adapters
- 04 BPM as a Web Service, ADF Front End for BPM Process
- 05 Mediator and Conditional Routing
- 06 BPM Composer Run time Process and Rules Editing
- 07 BPM and JMS Adapter
Lets set up a simple Business Rule , Student applications having less than 70 % marks will be rejected , and application having greater than equal to 70% will be accepted , and later on Accepted Applications will be reviewed and Approved by the Admin. Drag and Drop “Business Rule” from the activity next to User Task Initiator
Click on the + Sign to create new Business Rule or finder icon to use existing Business Rules Select Use Association and Use Transformation,
Data Association helps sending XSD Reservation Business Rule Schema into and out of Business Rules, This can be done using drag n drop of Admission Data Objects into input and output locations
We would need transformation because from the input payload entered during task initiation we would need to pass percentage marks, reservation category, etc into Business Rule based on which we would evaluate business rule and decide on the Business Rule output So create new transformation and map the variables from Student Form DO to Admission Rule Data input
Now open the ReservationBusinessRule.rules file and set the 2 rules under 1 ruleset RuleSet1 General Merit Rule , if percentage is greater than or equal to 70% then , the application form is accepted by setting Business Rule Output Status to “accepted” Rules for Rejection, if percentage is less than 70% then, the application form is rejected by setting Business Rule Output Status to “rejected”
Exclusive Gateway – Decision Box |
Lets use Exclusive Gateway to make a decision , that only accepted applications are sent for approval by the admin , and the process flow would end if the status of application is rejected by the business rule
You can use conditional statement to determine using xpath expression AdmissionRuleDataOutputDO.ruleOutStatus == “accepted”
Setting up User Task – Human Approver |
Drag n Drop User Task , In the Data Tab add the payroll input
From the AdminApprovalTask.task, Select Create Form, then Auto Generate Task form , this created an UI , that would be used by the approver to see the input payload data as sent by the task creator , in our case the student is task initiator and Admin Officer is Approver So the final process looks like below
BPM Process Workspace |
http://soabpm-vm:8001/bpm/workspace Login as Student jcooper, fill in the form data as shown below
Since the student has above 70% rules engine executes and accepts the application , log out and login to workspace as Admin Officer jstein you can see the payload data entered by jcooper , and jstein can Approve or Reject the application
Once Approved the process ends, However later on we update this process to invoke some other services such as DB Adapter to write student record into DB or Rejected applications into file
Setting Up Process Escalations or Expiry |
Sometimes the approver might not approve and the task might keep waiting in his task list there by impacting other related process , so to over come that we can have escalations when the approver has not responded with in certain time limit it can be routed to his manager for his action , Also its possible to expire the task after certain time limit ( days or hours / min ) For our case if the Admin Officer jstein does not take action with in 1 min then the task is routed to his manager wfaulk 🙂 sounds simple inst it ?