The inclusive gateway, just like the exclusive gateway, enables you to split your process into two or more paths. The intrinsic difference between an exclusive gateway and an inclusive gateway is that in an exclusive gateway, the process only continues down one of several paths (if multiple outgoing sequence flows are present) while in an inclusive gateway a process will follow all conditional paths whose expressions are evaluated to true.
Furthermore, in an inclusive gateway a process will only follow the default path only if no conditional expressions evaluate to true. Because of this particular characteristic the notation of an inclusive gateway consist of a split and a merge inclusive gateway.
An inclusive gateway can consist multiple outgoing conditional sequence flows for an inclusive gateway split. However, an inclusive gateway must define a default sequence flow. All conditional expressions that evaluate to true are executed; otherwise the default sequence flow is executed.
At run time, the BPM engine generates a token for each conditional sequence that evaluates to true. If none of the conditional sequence flows evaluate to true then a token gets generated for the default sequence flow. The process will pause and will resume only when all tokens have reached the merge
So let's see how you can use an inclusive gateway in a process. I have created a new BPM application using the "BPM Application" JDeveloper template and in the "Project SOA Settings" step i have selected "Composite with BPMN Process".
Therefore I will create two input arguments, NonComplianceLetter and LetterToCentralBank, both of type boolean to denote whether these two type of documents are required to be generated and an output string argument, DocumentsGenerated, to act as a confirmation of which documents where generated.
As already mentioned I will be simulating a Banking Supervision process where based on the two boolean input arguments I will generate either both documents (Non-Compliance Letter and Letter to Central Bank), one of the documents (Non-Compliance Letter or Letter to Central Bank) or will not generated any documents at all. And to implement such a scenario I will use an inclusive gateway. Please pay attention how JDeveloper automatically adds an inclusive merge gateway with every inclusive split gateway.
Now test your process without selecting any of the two documents. The process should have followed the default sequence flow. You can confirm this by inspecting the "End" message DocumentsGenerated output element; it should read "No documents generated".
Download sample application: Inclusive Gateway