Going back from one subprocess to another(executed)

Hi,
I have several (lets say for this example, they are only 2) sub-processes , executed from parent process. This process is managing user screens. So parent process, first executes first sub-process, and after it’s completed, executes second one. But there is a requirement to go back from second sub-process, again to the first sub-process (user is clicking “back” button in the application), to the specific task inside this sub-process. So, it’s not a good solution, to execute/start the first sub-process again. It has to be the same process instance…as it was at the beginning…

How would you recommend to model/design this situation?

Thank you

Something like this could work:
https://cawemo.com/shares/d9c1b928-48c8-42c6-b13a-3a06debe4f57

You would of course need your sub processes to throw the escalation event.

1 Like

Thank you @Niall,
but I am still not sure how to model the sub-processes. The first subprocess should throw the event as well? (to stay alive, to be able to receive the event from the second subprocess). So the flow from the first subprocess to second, should go via the “Go forward” path, and not via the standard flow in the middle?

Also, when the event is thrown from the second subprocess, the parent process catches that, but how can I achieve, I will continue in the first subprocess from the specific task (as I mentioned in the original question).
Should I crate Event subprocess, which will receive the event, and then somehow go to the task in the main flow?

Thank you

I tried to prepare something, but it’s apparently not working well, because after executing Camunda engine started to creating lots of process instances (bug maybe?).
Can you please look at it?

Is it possible to go back and forward via two live process instances?
Thank you

first.bpmn (11.3 KB)
second.bpmn (10.1 KB)
parent.bpmn (7.4 KB)

I think you’re miss understanding how the events work.

The way that an escalation event works is that it is thrown to the next scope and if there is a waiting catch event the flow will continue from that point. Some times it will interrupt the process it is thrown from and sometimes not. This will depend on the type of catching event. If your case you’re mixing up message events with escalation events and you’re also mixing up how events are caught and thrown. I think it would be very useful to have a look at some tutorial videos to give you a more complete understanding of how these more complex symbols work.

With regards to the specific case you you need help with. The sup process could look something like this:
https://cawemo.com/shares/f380aba4-8a41-46eb-884c-9064760388a7

The conditional event is triggered by a use setting some variable which in turn will send an escalation event tot he parent process. If there is a waiting interrupting escalation event it will then cancel the sup process and move the token back to the previous sub process.

Hope that helps.