In my Process flow I receive input from multiple activities (human task) to a Parallel gateway. The Process waits till it receives all the inputs before moving to the next activity.
One of the requirement is that I should know which one the Human task activities will become a bottle neck. When any of the user activities complete and the flow come to parallel gateway, I should be able to put a listener/delegate which should trackback and see what other tasks are waiting for this gateway to complete. ho can this be done?
Is there a way When at parallel gateway I can get they number of inputs coming into it?
you can read the BPMN model using the Model API to find the incoming sequence flows of the parallel gateway.
But I’m not sure if this is the best approach.
What kind of monitoring do you want to build?
How do you detect a bottleneck?
How do you want to react on a bottleneck?
When multiple tasks are leading to the ne r task via parallel gateway I need to send a notification to the last task that has not completed yet so the flow can pass through the gateway. So whenever one tasks holds up the process flow not moving to next I need to notify the user that he is holding up and the task needs to be completed ASAP.
I could use the model api and get this info but having issues when there are parallel branches with user tasks that lead to a parallel gateway. The status of completion in one branch is not getting reflected in the other branch
a simple solution could be to model this behavior. So you wrap the parallel flow into a sub-process and add a timer boundary event to it. The timer triggers then it takes longer than X to complete the sub-process. When the timer triggers then it sends a notification to the user.
So you notify the user only if it takes longer than X and it’s clear to everyone that sees the process.