Gateways are decision points used to constrain the sequence flow. They fork the process into several flows or merge several flows into one. In BPMN, a gateway is represented by a diamond - the kind of gateway is specified by a marker.
Supported are Exclusive Data-Based and Parallel Gateways, Event Based Gateways are indirectly supported by a workaround.
Implicit, Inclusive, and Complex Gateways are not supported.
Exclusive Data-Based Gateway
|
BPMN shape |
BPMN description |
|---|---|
|
An exclusive gateway can be used:
|
|
UML representation |
UML description |
|---|---|
|
|
The gateways are mapped to choices, the sequence flows to transitions. The guards of the transitions are derived by the expression or the name of the sequence flow.
|
|
|
Overridable <<BPMNOnSequenceFlowCondition>> operations are created for each guard. In this operation the modeler has to evaluate the expression and set the boolean return. |
Parallel Gateway
|
BPMN shape |
BPMN description |
|---|---|
|
|
Parallel Gateways provide a mechanism to fork and synchronize flows.
|
|
UML representation |
UML description |
|---|---|
|
|
The parallel gateways are mapped to forks and joins in the state machine. |
Event-Based Gateway
|
BPMN shape |
BPMN description |
|---|---|
|
|
As already mentioned, Event Based Gateways are not directly supported. |
|
|
But there is a workaround: Replace the event based gateway by a task having the intermediate event as a boundary event. |
|
UML representation |
|---|
|
Using the workaround, the mapping to UML follows the rules described in Chatch Intermediate Boundary Events . |