Recently I got a chance to work on one of the interesting assignments where I had explored BPM APIs, mainly Human workflow related. I want to share my learning in this blog through a series of articles. This article assumes the basic terminology associated with Human workflow, otherwise one can read the documentation here.
The main focus of this article is to present how notifications will be sent and how many approvals are required for different participant types Single, Parallel, Serial and FYI.I used business rules with Named User, Application Role, Approval Group and Hierarchies (Supervisor/Job/Position) and used 12.2.1.2 version for demonstration. Please note that you should have BPM (just not SOA Suite) installed to try with a few of the assignment types described here.
Assignment Type | Participant Type | Behavior |
Named User
Note that, multiple assignment users can be given for value based setup too. |
Single | Notifications will be sent at same time to all the users derived in rule evaluation. Only one approval is enough for completion. A user may have to claim before providing approval. |
Parallel | Notifications will be sent at same time to all the users derived in rule evaluation. The number of approvals for completion depends on the voting percentage. | |
Chain/Serial | Notifications will be sent at same time to all the users derived in rule evaluation as there is no serial relationship defined among users. Approvals from all assignees are required for completion. | |
FYI | Notifications will be sent at same time to all the users derived in rule evaluation and no approval is required. | |
Application Role | Single | Notifications will be sent at same time to all the users having the application role used in rules. Only one approval is enough for completion. A user may have to claim before providing approval. |
Parallel | ||
Chain/Serial | ||
FYI | Notifications will be sent at same time to all the users having the application role used in rules and no approval is required. | |
Approval Group | Single | Notifications will be sent at same time to all the users of approval group. Only one approval is enough for completion. A user may have to claim before providing approval. |
Parallel | Notifications will be sent at same time to all the users of approval group. The number of approvals for completion depends on the voting percentage. | |
Chain/Serial | Notification will be sent in sequential manner as setup in approval groups i.e. if approval group has user1 and user2 first notification will be sent to user1 and then to user 2. Approvals from all assignees are required for completion. | |
FYI | Notifications will be sent at same time to all the users of approval group and no approval is required. | |
Supervisor Hierarchy
Position Hierarchy Job Hierarchy |
Single | Notifications will be sent at same time to users part of hierarchy used in rules. Only one approval is enough for completion. A user may have to claim before providing approval. |
Parallel | Notifications will be sent at same time to users part of hierarchy used in rules. The number of approvals for completion depends on the voting percentage. | |
Chain/Serial | Notification will be sent in sequential manner as setup in hierarchy i.e. if hierarchy is user1 and user2 first notification will be sent to user1 and then to user 2. Approvals from all assignees are required for completion. | |
FYI | Notifications will be sent at same time to users part of hierarchy and no approval is required. |
Observations:
- The behavior of single participant type is same irrespective of assignment type user, role etc… i.e. only one approval is required for completion. To verify this, do multiple user assignment for single participant type, run human workflow and query WFTASK table. Here we can observe that the ASSIGNEES column having all these users with ‘,’ as separator.
- The behavior of using application role is same irrespective of participant type i.e. only one user can provide the approval having that application role.
- To get Chain/Serial behavior we should always go for approval groups or hierarchies. In all other scenarios the serial participant behavior is same as parallel with 100% voting.