Gateways
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. |