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






