The execution of the Parallel Gateway is not according to the BPMN 2.0 specification.
The operational semantics in the spec document formal/2011-01-03 on page 434 are defined like this:
"The Parallel Gateway is activated if there is at least one token on each incoming Sequence Flow.
The Parallel Gateway consumes exactly one token from each incoming Sequence Flow and produces exactly one token at each outgoing Sequence Flow.
If there are excess tokens at an incoming Sequence Flow, these tokens
remain at this Sequence Flow after execution of the Gateway."
To my understanding this means that in order to process a token needs to arrive from each of the incoming Sequence Flows. However, if you have a look at the attached BPMN model. And execute the tasks in the following way:
Complete "Task 1"
Complete "Task 1"
Parallel Gateway is activated, but there are tokens only on Sequence Flow "S1" and not on Sequence Flow "S2".
I could not find in the specification what should happen if there are 2 tokens on each Sequence Flow. Perhaps another "Final Task" should be created.
I have also created a test that can reproduce the steps.
This is the controller panel for Smart Panels app
- is related to
-
CAM-9366 Document implementation limitation of parallel gateway
- Closed