- Web Service Interface for ADF BC Application Module in Oracle Fusion 11g
- Service-Enabled Entity Objects in Oracle Fusion 11g
- Business Events and ADF Business Components in Oracle Fusion 11g
- Business Rules in Oracle Fusion 11g
In those posts I was describing a set of sample applications and modeling SOA solution. This solution is based on three modules:
- ADF BC application (A) with custom methods exposed through Web Service
- ADF BC application (B) subscribed to application (A) services. Application (B) implements Business Events triggering and ADF Faces Rich Client UI
- SOA Composite application (C) to orchestrate business flow based on data from Business Event. Application (C) integrates Business Rule, Human Task and Web Services
Today I will describe Human Task functionality in Oracle Fusion/SOA 11g. Download sample application - SalaryManagement3.zip. This application extends SOA Composite sample developed in my previous posts - ApprovalHumanTaskFlow composite is added:
In BPEL flow, we can see there is a Switch activity added right after Business Rule from previous post:
Switch activity checks Business Rule output and if approval is required Switch scope is executed to trigger Human Task:
Before triggering Human Task, Switch scope invokes EmployeeWorkload method (through Web Service from application (A)), this method provides additional input to Human Task:
Invoke Activity for EmployeeWorkload method:
This method is invoked through Web Service implemented in SalaryControlService (A) application, it is declared in SOA Composite:
Human Task accepts three parameters - Employee Id, Salary Change value and Employee Workload value based on previous assignment history. Manager should approve or reject Salary Change based on provided information:
Human Task wizard in JDeveloper 11g - I have specified Title, Parameters and Approver in Assignment Policy:
There is one more Switch activity and it is designed to route process according output from Human Task. If manager will reject raised request, original salary value will be set back in database. If request will be approved, no action will be taken, because salary value already is updated in database by ADF BC:
Thats it, Human Task is defined and its output is processed. Now its time to check how it works on runtime. Let's use application (B) and for Employee Id = 101 update original Salary value 16000:
To 15000. Salary change is 1000 and this will not violate Business Rule, where it is declared maximum change without manager approval is 5000:
Human Task will not be initiated in this case - process instance will be successfully executed without Human Task intervention:
Let's update now to 23000, it will be 8000 change and Business Rule should trigger Human Task invocation:
You can see Human Task is in running state:
We need to approve or reject raised Human Task in order to complete BPEL process. We can do this through sample Oracle BPM Worklist application provided by Oracle together with Oracle SOA Suite 11g:
When I login into BPM Worklist, I can see there is a Salary Change task assigned to my user:
I can approve or reject it:
In this particular case I have rejected Salary Change and BPEL process became completed:
You can notice in the log, that right after Human Task there was SalaryControlService reference executed, this means Salary Change was rejected and Web Service method was invoked to store original salary value.





















































