Thursday, December 4, 2014

Adaptive Case Management 12c and ADF Human Tasks

I'm diving into the new topic - Adaptive Case Management 12c and ADF integration. Today will be the first post in the category and there are more posts planned for the future. I strongly believe that ACM (Adaptive Case Management) makes a great extension for standard BPM. Mainly because it allows to define a loose process, without strict order steps. Process steps can be executed in different order, depending on the situation requirements, at given time. I will be explaining how to implement ADF Human Task for ACM activity and will share several tips, how to make it run in BPM Workspace application.

This is how sample application (HotelBookingProcessing_v1.zip) is constructed, there are two Human Tasks (AddHotelBooking and ValidateHoteBooking) and HotelBookingProcessing Case control:


HotelBookinfProcessing case is defined with Hotel Booking Details data type (this type is based on XSD schema and is defined as Business Component variable - don't mix up with ADF Business Components) - you can think about it as about main data structure type for the case, this can be transferred into every case activity:


There are two stakeholders defined, this could help to control who could have access to human task and case activity. Customer Service Representative is supposed to add new hotel booking, while Financial Accountant can approve or reject it:


I have created Human Task activity directly through composite, it is not necessary to have BPM process to define human tasks. Important to set Application Context property for Human Task to be OracleBPMProcessRolesApp, this will help later with security roles configuration in BPM workspace:


In order to register human task with Case management, we are given option to promote human task as a case activity. This will allow to initiate human task from the case management:


We can define input and output for the case activity, based on the same data type defined in the case. This will allow to transfer data from the case to the activity, and to the underlying human task in our situation:


You could generate ADF form case data, this form will be rendered in BPM workspace case UI. I'm going to look into customisation options of this kind of form in my future posts (checkbox is set to generate editable form):


This is how case data form is rendered, out of the box is given option to save and reset data for the case - Hotel Booking Details:


Human task form is generated in the same way as it was in 11g - no change here for 12c. You could auto generate this form, it generates a lot of code and I would prefer to build custom light form instead:


Important hint - auto generated human task form will not render in BPM workspace window. You need to change FRAME_BUSTING parameter generated in web.xml from differentOrigin to never. With differentOrigin option it doesn't render human task form, in 11g it was generating with option set to never, for some reason this was changed in 12c - not for good:


With FRAME_BUSTING set to never, human task form renders well:


Human task is started directly from the case activity - Add Hotel Booking from the available list of activities:


We can track in the case activity log - when activity was started, completed or modified. This is quite helpful info to track activity history:


One of the main advantages - user could decide the order of activities, on contrary to strict BPM process. Start Validate Hotel Booking activity, this will create new task for Financial Accountant:


Activity was started, we can see this from the audit log:


This is readonly human task, rendered in BPM workspace - Financial Accountant could approve or reject it:


Case can be closed and hotel booking approved:

10 comments:

Herberson Silva said...

Hi,

You have some example of how call "startCase" operation via SoapUI or EM?

Andrejus Baranovskis said...

Yes, I will try post it a new blog about it - tomorrow may be.

Andrejus

Herberson Silva said...


Thanks for your help.

That part still represents a gap for me.

Andrejus Baranovskis said...

Here is the answer to your question: http://andrejusb.blogspot.com/2015/01/how-to-start-case-in-oracle-adaptive.html

Andrejus

Jorge Jimenez said...

Hi Andrejus

I´m trying to deploy your project. And it deploys without problem. But when i start a case no data appears when i select that option in the main case page. Also when i try to open the activy no information is loaded in the fields. Do you know why this may happen? (I just applied the latest bundled patch, but still same behavior)

Thanks in advanced

Andrejus Baranovskis said...

Hi,

This is Soap UI payload problem, it must be formatted in a special way. I will post in future blog, how it should be formatted.

Regards,
Andrejus

Anonymous said...

I just want to thank you for your help!


Important hint - auto generated human task form will not render in BPM workspace window. You need to change FRAME_BUSTING parameter generated in web.xml from differentOrigin to never.


This was frustrating me.

Andrejus Baranovskis said...

I'm happy it helped ! :)

Andrejus

Anonymous said...

JHello :
How you deploy the HotelBookingsDetailUI generated. I don't see the data, in the case workspace and don't see that the case UI is deployed.
DO we need to create an ear file with this project ?

Rohit Sharma said...

Hi Andrejus,
Thank you for your blog it was lot of help but we are stuck at one place when opened in workspace we are not able to see the form in data tab.Also while deploying I don't see HotelBookingsDetailUI being deployed.
Can you please suggest whether we are missing some steps to perform.

Thanks in advance