How to close one of a parallel task?

Hello Everyone, I am trying to design a process wherein the flow will be splitting into two parallel paths, one for manual activity and one for system. The logic is, If manual activity is not getting completed in specified period of time, the system activity will complete the process. In addition, I have a timer on system activity which will check daily if the process has been completed or not, and after certain point of time it will complete the process.
I have attached BPMN here and would like to know if Manual activity is completed here by User, how can I skip execution of system activity? Any suggestion, please guide me here. Thanks in advance. BYOD_POC.bpmn (9.8 KB)

Hi @Abhijeet_Kotkar ,

I believe you want the task to be completed by either manually or if it fails manually then via a service task. In this case there is no need to divide the initial flow via parallel gateway.

You can put a interrupting boundary timer event on the manual task rather than a non-interrupting that you are currently using, so that if it exceeds the SLA then the token in manual task will be deleted, and new token will be generated in the service task. You can directly run the logic in service task or a script task, there is no need to escalate, unless you have any specific business demand.

Hope it helps!


Hello Amol, thank you for your response.
But based on our current requirements it is expected to execute both activities in parallel. The requirement is User should complete the activity in 14 days and the parallel system activity will keep sending reminders for him to complete. If User fails to complete the process within 14 days, the system activity will cancel the entire process.
So basically what I am looking for is, If I fork out two activities from parallel gateway and join them later in XOR gateway, how to close other activity if one of them gets completed?

Hi @Abhijeet_Kotkar,

If the purpose of your system activity is to only send reminders while the user task is active then the below simple model should serve your need.

  • non-interrupting boundary timer is used to send reminders on a daily basis.
  • interrupting boundary timer is used to terminate the process if the user fails to complete the task within 14 days.


Additionally, if you don’t like the idea of all the reminder tasks showing up in your diagram, you could use the timeout lifecycle event on the task where you configure a listener that sends the reminders, in the background. This is especially helpful if these reminders are required on every task and you don’t want to pollute the diagram.