Search code examples
bpmn

How can I model a parallel flow that branches back into a regular flow?


I have a BPMN process that should handle 2 alternative scenarios:

TaskA -> TaskB -> Last Task
OR
TaskA -> TaskX -> (TaskY and TaskB in parallel) -> Last Task

I can't find what's is the proper way to join the parallel tasks.

I have designed this solution, but it doesn't look fine to me:
for the first scenario, the parallel gateway looks like a fork rather than a join.

How should I design this case (without having to duplicate tasks) ?

BPMN process


Solution

  • I think the following diagram do just what you want: Process diagram

    I use an inclusive gateway that will always take the transition that goes to "Task B" and based on condition also execute "Task Y" in parallel. Same condition is also use to include or skip "Task X".

    I create a runnable version of this process for Bonita BPM and it seems to behave like what you expect.