I have a requirement where in some cases, if a UserTask has multiple recipients, the task needs to have all recipients approve the task before moving on to the next evaluation. It looks like currently, as soon as the first approver actions the task, the workflow proceeds to the next step.
I have tried, as a simple test, splitting to two separate UserTask components with the parallel gateway split/join setup and with this setup, once both task are actioned, the join step and subsequent steps are never reached. Even if this worked, it is not ideal since there may be N number of approvers for each step.
The SAP documentation on how this is handled is very sparse and I have searched through many blogs and Q&A to no avail.
Is this possible with SCP Workflows? If not, a suggested enhancement would be to have a checkbox or toggle on the UserTask details that specify that the UserTask is complete upon one approval or all approvals.
Request clarification before answering.
Hello Chris,
There are multiple ways to achieve this:
Hope that helps.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Archana,
Thank you for your suggestion. This gives me an alternate idea. My thought is instead of using parallel gateway, since I can have an unknown number of approvers in parallel, I will have all the approvers in a single user task. The complete button, which can we code in a custom UI will handle the completion of the single workflow instance once all appovers have approved or immediately exit upon the first rejection. The key here is the approve/reject buttons will have the necessary logic to decide whether to complete the task or keep it open.
Dear Chris,
you need multi-instance tasks which are unfortunately not available yet. (Multi-instance) referenced subprocesses are also not available in SCP Workflows yet. So, we have to implement multi-instance tasks by our own with the available BPMN palett as a workaround. That means
It's a bit complicated but we successfully implemented it in our projects and it is working fine - except that monitoring is not that easy in the default monitoring app that comes out of the box because there is no direct relation from the parent process to the task processes. Nevertheless, I do not see another possibilty to implement such behaviour in SCP Workflows yet.
Kind regards
Niko
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Nikolai,
Thanks for taking the time to respond to my question. Based on your suggestion and Archana's suggestion, I think I have a way forward that will simplify the workflow design and allow me to do N number of concurrent approvers at each step. The heavy lifting will be done by the custom UI that is used to approve/reject as we can keep the task open until all approvers action the task. We can track the approvers either in the context or a separate datastore and check after each approver clicks the button if there are any remaining approvers before completing the task. If any approver rejects, we can immediately perform the necessary actions to terminate the WF. This approach should simplify your design as well since the WF will be self contained.
| User | Count |
|---|---|
| 5 | |
| 4 | |
| 4 | |
| 3 | |
| 2 | |
| 2 | |
| 2 | |
| 2 | |
| 2 | |
| 2 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.