Search code examples
bpmn

How to design a process where an activity is used in different ways?


I have this part of a process:

Process

I'm trying to describe that Task 2 may be executed in parallel with Task 1, if we are walking the flow A, or by itself if we are walking the flow B.

It seems to me that the two arrows exiting from Task 2 are misleading, so I thought that a better version would be this one:

Same process

where the Task 2 is duplicated. I don't like duplications, but the latter version seems less ambiguous to me.

Is there a third, correct way? If not, which solutions is correct?


Solution

  • The only way to express a model that complies with your intended process semantics is defining your Task 2 as a global subprocess activity and using a call activity instead of Task 2 in your second pattern.