With Ultimus you have a flexibility to "submit" or "return" any step using Ultimus APIs (EIK) whatever the recipient of that step expect the "Job Function Group" (JFG) and "Group" as it fails in the "return" because the JFG contains more than one user and this is my problem.
I need to return from a step with recipient type JFG have more than one user using EIK.
Note: submitting the step with condition to return back to the previous step is not a solution as I need to keep the status of the returned step as returned.
After asking Ultimus support about this issue they answered me that as per Ultimus BPM Studio Documentation, Page 175:
Any step with multiple recipients from a group or dynamic group cannot
return the task and this is a design behavior.
So I came up with workaround to solve this behavior that allow you to return a step one level back and keep the status of the returned step as returned even the recipient type was JFG.
Assume this case study:
you have two steps one for "officer" who collect some data and then pass this step to "manager" who review the officer's data then submit his task, both steps(Officer & Manager)have "Job Function Group" as a "Recipient Type".
If your business needs is to return the task from manager to officer again if the manager have some comments and needs changes in the officer's data so the problem will come here as the task can't be returned because it's JFG.
To solve this problem you can follow me pattern with fake or dummy step as in the following picture.
1-When the Officer submit the step then he will activate two step Not only the manager step but also the fake(Dummy) step.
2-the straight forward scenario is that the manager will submit the task and raise a flag so the Complete Event of the step will fire as the following:
- The flag will foreword the manager to the junction step to go throw the normal path.
- The flag will abort the fake step.
3-if the decision of manager was return to officer then:
- The manager will submit the step with no valid condition so the submition will do nothing than make the step as not active.
- Using EIK you can get the fake step by Ultimus Filter and call the Return function so it will return it in the officer step with returned status and that is what we already need to do.