A gateway is used to control the divergence and convergence of sequence flow in a process. It determines decisions, the forking, the merging, and the joining of paths. In the process composer the following gateway types are available:
An abstract gateway is a gateway that has no specific type. The abstract gateway shows where the sequence flow branches or merges. You can use it when the exact type of a gateway is not important, for example when designing a draft of a process model. You can convert the abstract gateway to one of the other gateway types such as an exclusive choice gateway, a parallel join gateway, and so on, later. For more information about abstract flow objects, see Two Perspectives Approach .
The exclusive choice gateway controls the sequence flow between activities. It is like a question that is asked at that point in the process. The question has a defined set of alternative answers, the gates. You define for each gate a condition, which is based on a boolean expression. The expressions use the values of process data to determine which path has to be taken. Each gate has an outgoing sequence flow.
The event-based choice controls the sequence flow by choosing an outgoing gate based on events that occur at that point in the process. Unlike the exclusive choice where the gate is chosen based on an evaluation of expressions, the event-based choice is used to determine the outgoing gate based on a specific event, for example the receipt of a message. In the process composer, the event-based choice is always followed by an intermediate event which either waits the receipt of a message, or waits for a certain time to pass before continuing the process flow.
With the parallel split gateway, you can create parallel flow. You don't need to use the parallel split gateway for parallel flow but with this gateway you can clarify the behavior of complex situations where a parallel flow is required. Each gate of the parallel split gateway must have an associated sequence flow. You cannot define any conditions for this gateway or the sequence flows.
If you use the parallel split gateway you have to catch all tokens with a parallel join gateway somewhere in the process.
The uncontrolled merge gateway is an exclusive gateway used as a merge for alternative sequence flows. There are a few special situations where you need an uncontrolled merge gateway. For example: An uncontrolled merge gateway merges two alternative sequence flows that were generated by an upstream decision. The alternative sequence flows are merged in preparation for a parallel join gateway that synchronizes a set of parallel sequence flows that were generated further upstream. If the uncontrolled merge gateway would not be used, then there would be four incoming sequence flows into the parallel join gateway. Only three of the four sequence flows could pass a token at one time. The parallel join gateway would wait for the fourth token, which would never arrive. The process would stuck at the point of the parallel join gateway.
With the parallel join gateway, you can merge parallel paths. You should always couple the parallel split gateway with a parallel join gateway.