Humantask Assignment: Assignment with Dynamic Approval Group

Marcel van de Glind

This blog post is part of a series of posts about humantask assignment. You can find the starting point of this series by following the next link.

This post gives an example of task assignment with a Dynamic Approval Group. I will use the same BPM process as in most of the other posts.
Screenshot12
The implementation of the Dynamic Approval Group is done in a custom java class that implements the IDynamicApprovalGroup interface.
Screenshot
The following picture shows the implementation of this class for this post. The group consist of the users taskUser1 and taskUser5. This means that one of these users must handle the task.
Screenshot13
After creating and compiling the class, It must become available for use. For this copy the class to the following location: /Oracle_SOA1/soa/modules/oracle.soa.ext_11.1.1/classes. You must restart WebLogic Server after you put your class files there.
Screenshot-1
And of course you must assign the class to the humantask.
Screenshot-4
And finally you must add the dynamic approval group from the Business Process Workspace. Go to the Administration page. Under Task Administration, select Approval Groups. Click the Add (+) button and select Create Dynamic Approval Group.
Screenshot-2
Give the group a name and specify the class name. Click Save to finish the step.
Screenshot-3
After deployment of the process we can start new instances via the EM.
Screenshot14
This brings me to the end of this example. The example shows a very simple and straight forward implementation of the Dynamic Approval Group. In a real business implementation you will probably never see a hard coded implementation like this. For example it would be more obvious as the users were loaded from a database table. I will show this in a future post of this series. From here you can download the sample project.

Next Post

Using Table Functions

Facebook0TwitterLinkedinOverview of table functions Table functions are functions that produce a collection or rows (either a nested table or a varray) that can be queried like a physical database table. You use a table function like the name of a database table, in the FROM clause of a query. The […]