Both sides previous revision Previous revision Next revision | Previous revision |
en:rule:control_branch [2023-09-10 11:50] – [Put rule name here] Anatoly Belaychuk | en:rule:control_branch [2024-11-02 13:36] (current) – [Edit diagram] Anatoly Belaychuk |
---|
====== Put rule name here ====== | ====== A subprocess and a control branch may be used as an alternative to the attached event ====== |
| |
{{tag>subprocess,gateway,attached event}} | {{tag>subprocess event attached_event terminate_event}} |
| |
{{en:underconstruction.png?nolink&200|}} | Use a subprocess containing the control branch to implement versatile event processing logic. |
| ===== ✔ How to ===== |
| |
Use a subprocess to implement a versatile event processing. | Let's assume that we need to obtain payment from the client, watch the payment due date and talk with the customer in case of delay. Use the following technique: |
| |
===== ✔ How to ===== | - Put the "Obtain payment" task into subprocess. |
| - Start the subprocess with the parallel gateway followed by two branches, "working" and "control". |
| - Put the "Obtain payment" at the working branch. |
| - Put the timer at the control branch. |
| - End both the working and control branch with the terminate event. |
| |
<bpmnio type="bpmn"> | <bpmnio type="bpmn"> |
</definitions> | </definitions> |
</bpmnio> | </bpmnio> |
| |
===== ✘ How NOT to ===== | ===== ✘ How NOT to ===== |
| |
| Interrupting attached timer won't let discussing the issue with client while still trying to obtain the payment: |
| |
<bpmnio type="bpmn"> | <bpmnio type="bpmn"> |
<outgoing>Flow_0b5yo8b</outgoing> | <outgoing>Flow_0b5yo8b</outgoing> |
</task> | </task> |
| <startEvent id="Event_0jid81n"> |
| <outgoing>Flow_1mqvexf</outgoing> |
| </startEvent> |
| <sequenceFlow id="Flow_1mqvexf" sourceRef="Event_0jid81n" targetRef="Activity_1mnvjuz" /> |
| <endEvent id="Event_1k1tn88" name="Paid"> |
| <incoming>Flow_0b5yo8b</incoming> |
| </endEvent> |
| <sequenceFlow id="Flow_0b5yo8b" sourceRef="Activity_1mnvjuz" targetRef="Event_1k1tn88" /> |
<boundaryEvent id="Event_0r0tew3" name="Payment due date" attachedToRef="Activity_1mnvjuz"> | <boundaryEvent id="Event_0r0tew3" name="Payment due date" attachedToRef="Activity_1mnvjuz"> |
<outgoing>Flow_1fkn8r9</outgoing> | <outgoing>Flow_0xmx632</outgoing> |
<timerEventDefinition id="TimerEventDefinition_1akyg21" /> | <timerEventDefinition id="TimerEventDefinition_0f85qyr" /> |
</boundaryEvent> | </boundaryEvent> |
| <sequenceFlow id="Flow_0xmx632" sourceRef="Event_0r0tew3" targetRef="Event_04k06ga" /> |
| <endEvent id="Event_04k06ga" name="Not paid"> |
| <incoming>Flow_0xmx632</incoming> |
| </endEvent> |
| </process> |
| <bpmndi:BPMNDiagram id="BpmnDiagram_1"> |
| <bpmndi:BPMNPlane id="BpmnPlane_1" bpmnElement="Process_0kf0077"> |
| <bpmndi:BPMNShape id="Activity_1mnvjuz_di" bpmnElement="Activity_1mnvjuz"> |
| <omgdc:Bounds x="200" y="-160" width="100" height="80" /> |
| <bpmndi:BPMNLabel /> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNShape id="Event_0jid81n_di" bpmnElement="Event_0jid81n"> |
| <omgdc:Bounds x="112" y="-138" width="36" height="36" /> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNShape id="Event_0ok4f4i_di" bpmnElement="Event_1k1tn88"> |
| <omgdc:Bounds x="352" y="-138" width="36" height="36" /> |
| <bpmndi:BPMNLabel> |
| <omgdc:Bounds x="359" y="-95" width="23" height="14" /> |
| </bpmndi:BPMNLabel> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNShape id="Event_0u9z69r_di" bpmnElement="Event_04k06ga"> |
| <omgdc:Bounds x="232" y="-8" width="36" height="36" /> |
| <bpmndi:BPMNLabel> |
| <omgdc:Bounds x="230" y="35" width="41" height="14" /> |
| </bpmndi:BPMNLabel> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNShape id="Event_0sh9f2p_di" bpmnElement="Event_0r0tew3"> |
| <omgdc:Bounds x="232" y="-98" width="36" height="36" /> |
| <bpmndi:BPMNLabel> |
| <omgdc:Bounds x="205" y="-55" width="90" height="14" /> |
| </bpmndi:BPMNLabel> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNEdge id="Flow_1mqvexf_di" bpmnElement="Flow_1mqvexf"> |
| <omgdi:waypoint x="148" y="-120" /> |
| <omgdi:waypoint x="200" y="-120" /> |
| </bpmndi:BPMNEdge> |
| <bpmndi:BPMNEdge id="Flow_0b5yo8b_di" bpmnElement="Flow_0b5yo8b"> |
| <omgdi:waypoint x="300" y="-120" /> |
| <omgdi:waypoint x="352" y="-120" /> |
| </bpmndi:BPMNEdge> |
| <bpmndi:BPMNEdge id="Flow_0xmx632_di" bpmnElement="Flow_0xmx632"> |
| <omgdi:waypoint x="250" y="-62" /> |
| <omgdi:waypoint x="250" y="-8" /> |
| </bpmndi:BPMNEdge> |
| </bpmndi:BPMNPlane> |
| </bpmndi:BPMNDiagram> |
| </definitions> |
| </bpmnio> |
| |
| Non-interrupting looks better but it won't let resetting the timer to the new due date: |
| |
| <bpmnio type="bpmn"> |
| <?xml version="1.0" encoding="UTF-8"?> |
| <definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="sid-38422fae-e03e-43a3-bef4-bd33b32041b2" targetNamespace="http://bpmn.io/bpmn" exporter="http://bpmn.io" exporterVersion="0.10.1"> |
| <process id="Process_0kf0077"> |
| <task id="Activity_1mnvjuz" name="Obtain payment"> |
| <incoming>Flow_1mqvexf</incoming> |
| <outgoing>Flow_0b5yo8b</outgoing> |
| </task> |
<startEvent id="Event_0jid81n"> | <startEvent id="Event_0jid81n"> |
<outgoing>Flow_1mqvexf</outgoing> | <outgoing>Flow_1mqvexf</outgoing> |
</startEvent> | </startEvent> |
<sequenceFlow id="Flow_1mqvexf" sourceRef="Event_0jid81n" targetRef="Activity_1mnvjuz" /> | <sequenceFlow id="Flow_1mqvexf" sourceRef="Event_0jid81n" targetRef="Activity_1mnvjuz" /> |
<sequenceFlow id="Flow_1fkn8r9" sourceRef="Event_0r0tew3" targetRef="Event_04k06ga" /> | <sequenceFlow id="Flow_1fkn8r9" sourceRef="Event_0r0tew3" targetRef="Activity_1skmlnn" /> |
<endEvent id="Event_04k06ga" name="Not paid"> | <sequenceFlow id="Flow_0b5yo8b" sourceRef="Activity_1mnvjuz" targetRef="Event_1k1tn88" /> |
| <boundaryEvent id="Event_0r0tew3" name="Payment due date" cancelActivity="false" attachedToRef="Activity_1mnvjuz"> |
| <outgoing>Flow_1fkn8r9</outgoing> |
| <timerEventDefinition id="TimerEventDefinition_1u44tv6" /> |
| </boundaryEvent> |
| <task id="Activity_1skmlnn" name="Clarify delay with the client"> |
<incoming>Flow_1fkn8r9</incoming> | <incoming>Flow_1fkn8r9</incoming> |
| <outgoing>Flow_0gsynar</outgoing> |
| </task> |
| <sequenceFlow id="Flow_0gsynar" sourceRef="Activity_1skmlnn" targetRef="Gateway_1sygjo0" /> |
| <exclusiveGateway id="Gateway_1sygjo0" name="Wait more?"> |
| <incoming>Flow_0gsynar</incoming> |
| <outgoing>Flow_0jzxjdu</outgoing> |
| <outgoing>Flow_16a0qq5</outgoing> |
| </exclusiveGateway> |
| <sequenceFlow id="Flow_0jzxjdu" name="no" sourceRef="Gateway_1sygjo0" targetRef="Event_04k06ga" /> |
| <endEvent id="Event_04k06ga" name="Not paid"> |
| <incoming>Flow_0jzxjdu</incoming> |
| <terminateEventDefinition id="TerminateEventDefinition_1uvti5o" /> |
| </endEvent> |
| <endEvent id="Event_1ltc3ao" name="Overdue"> |
| <incoming>Flow_16a0qq5</incoming> |
</endEvent> | </endEvent> |
| <sequenceFlow id="Flow_16a0qq5" name="yes" sourceRef="Gateway_1sygjo0" targetRef="Event_1ltc3ao" /> |
<endEvent id="Event_1k1tn88" name="Paid"> | <endEvent id="Event_1k1tn88" name="Paid"> |
<incoming>Flow_0b5yo8b</incoming> | <incoming>Flow_0b5yo8b</incoming> |
| <terminateEventDefinition id="TerminateEventDefinition_1srmvcb" /> |
</endEvent> | </endEvent> |
<sequenceFlow id="Flow_0b5yo8b" sourceRef="Activity_1mnvjuz" targetRef="Event_1k1tn88" /> | |
</process> | </process> |
<bpmndi:BPMNDiagram id="BpmnDiagram_1"> | <bpmndi:BPMNDiagram id="BpmnDiagram_1"> |
<omgdc:Bounds x="112" y="-138" width="36" height="36" /> | <omgdc:Bounds x="112" y="-138" width="36" height="36" /> |
</bpmndi:BPMNShape> | </bpmndi:BPMNShape> |
<bpmndi:BPMNShape id="Event_0a3e20c_di" bpmnElement="Event_04k06ga"> | <bpmndi:BPMNShape id="Activity_1skmlnn_di" bpmnElement="Activity_1skmlnn"> |
<omgdc:Bounds x="232" y="-8" width="36" height="36" /> | <omgdc:Bounds x="200" y="-10" width="100" height="80" /> |
| <bpmndi:BPMNLabel /> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNShape id="Gateway_1sygjo0_di" bpmnElement="Gateway_1sygjo0" isMarkerVisible="true"> |
| <omgdc:Bounds x="345" y="5" width="50" height="50" /> |
<bpmndi:BPMNLabel> | <bpmndi:BPMNLabel> |
<omgdc:Bounds x="229" y="35" width="42" height="14" /> | <omgdc:Bounds x="342" y="-19" width="55" height="14" /> |
</bpmndi:BPMNLabel> | </bpmndi:BPMNLabel> |
</bpmndi:BPMNShape> | </bpmndi:BPMNShape> |
<bpmndi:BPMNShape id="Event_0ok4f4i_di" bpmnElement="Event_1k1tn88"> | <bpmndi:BPMNShape id="Event_08w64xf_di" bpmnElement="Event_04k06ga"> |
| <omgdc:Bounds x="452" y="12" width="36" height="36" /> |
| <bpmndi:BPMNLabel> |
| <omgdc:Bounds x="450" y="55" width="41" height="14" /> |
| </bpmndi:BPMNLabel> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNShape id="Event_1ltc3ao_di" bpmnElement="Event_1ltc3ao"> |
| <omgdc:Bounds x="352" y="112" width="36" height="36" /> |
| <bpmndi:BPMNLabel> |
| <omgdc:Bounds x="349" y="155" width="43" height="14" /> |
| </bpmndi:BPMNLabel> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNShape id="Event_05jo8b9_di" bpmnElement="Event_1k1tn88"> |
<omgdc:Bounds x="352" y="-138" width="36" height="36" /> | <omgdc:Bounds x="352" y="-138" width="36" height="36" /> |
<bpmndi:BPMNLabel> | <bpmndi:BPMNLabel> |
</bpmndi:BPMNLabel> | </bpmndi:BPMNLabel> |
</bpmndi:BPMNShape> | </bpmndi:BPMNShape> |
<bpmndi:BPMNShape id="Event_0lg3tjq_di" bpmnElement="Event_0r0tew3"> | <bpmndi:BPMNShape id="Event_0am8is2_di" bpmnElement="Event_0r0tew3"> |
<omgdc:Bounds x="232" y="-98" width="36" height="36" /> | <omgdc:Bounds x="232" y="-98" width="36" height="36" /> |
<bpmndi:BPMNLabel> | <bpmndi:BPMNLabel> |
<bpmndi:BPMNEdge id="Flow_1fkn8r9_di" bpmnElement="Flow_1fkn8r9"> | <bpmndi:BPMNEdge id="Flow_1fkn8r9_di" bpmnElement="Flow_1fkn8r9"> |
<omgdi:waypoint x="250" y="-62" /> | <omgdi:waypoint x="250" y="-62" /> |
<omgdi:waypoint x="250" y="-8" /> | <omgdi:waypoint x="250" y="-10" /> |
</bpmndi:BPMNEdge> | </bpmndi:BPMNEdge> |
<bpmndi:BPMNEdge id="Flow_0b5yo8b_di" bpmnElement="Flow_0b5yo8b"> | <bpmndi:BPMNEdge id="Flow_0b5yo8b_di" bpmnElement="Flow_0b5yo8b"> |
<omgdi:waypoint x="300" y="-120" /> | <omgdi:waypoint x="300" y="-120" /> |
<omgdi:waypoint x="352" y="-120" /> | <omgdi:waypoint x="352" y="-120" /> |
| </bpmndi:BPMNEdge> |
| <bpmndi:BPMNEdge id="Flow_0gsynar_di" bpmnElement="Flow_0gsynar"> |
| <omgdi:waypoint x="300" y="30" /> |
| <omgdi:waypoint x="345" y="30" /> |
| </bpmndi:BPMNEdge> |
| <bpmndi:BPMNEdge id="Flow_0jzxjdu_di" bpmnElement="Flow_0jzxjdu"> |
| <omgdi:waypoint x="395" y="30" /> |
| <omgdi:waypoint x="452" y="30" /> |
| <bpmndi:BPMNLabel> |
| <omgdc:Bounds x="417" y="12" width="13" height="14" /> |
| </bpmndi:BPMNLabel> |
| </bpmndi:BPMNEdge> |
| <bpmndi:BPMNEdge id="Flow_16a0qq5_di" bpmnElement="Flow_16a0qq5"> |
| <omgdi:waypoint x="370" y="55" /> |
| <omgdi:waypoint x="370" y="112" /> |
| <bpmndi:BPMNLabel> |
| <omgdc:Bounds x="377" y="78" width="17" height="14" /> |
| </bpmndi:BPMNLabel> |
</bpmndi:BPMNEdge> | </bpmndi:BPMNEdge> |
</bpmndi:BPMNPlane> | </bpmndi:BPMNPlane> |
</definitions> | </definitions> |
</bpmnio> | </bpmnio> |
| ===== Notes ===== |
| |
| - Although it's usually better to use [[en:rule:collapsed_subprocess|collapsed representation of a subprocess]] to isolate its internals, it may make sence to depict the subprocess expanded in this technique to make the logic clear. |
| - As an exception to the [[en:rule:explicit_parallel_split|general rule]], one may initiate work and control flows directly from the start event: |
| |
<bpmnio type="bpmn"> | <bpmnio type="bpmn"> |
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="sid-38422fae-e03e-43a3-bef4-bd33b32041b2" targetNamespace="http://bpmn.io/bpmn" exporter="http://bpmn.io" exporterVersion="0.10.1"> | <definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="sid-38422fae-e03e-43a3-bef4-bd33b32041b2" targetNamespace="http://bpmn.io/bpmn" exporter="http://bpmn.io" exporterVersion="0.10.1"> |
<process id="Process_0kf0077"> | <process id="Process_0kf0077"> |
<intermediateCatchEvent id="Event_0r0tew3" name="Payment due date"> | <subProcess id="Activity_1tn5n73"> |
<incoming>Flow_0opoyid</incoming> | <startEvent id="Event_13ec10q"> |
<outgoing>Flow_1tv5ius</outgoing> | <outgoing>Flow_1qbujp7</outgoing> |
<timerEventDefinition id="TimerEventDefinition_1a77cp0" /> | <outgoing>Flow_1v8e8eg</outgoing> |
</intermediateCatchEvent> | </startEvent> |
<intermediateCatchEvent id="Event_09tpike" name="Payment obtained"> | <task id="Activity_1mnvjuz" name="Obtain payment"> |
<incoming>Flow_11x2rmj</incoming> | <incoming>Flow_1qbujp7</incoming> |
<outgoing>Flow_1j4cmln</outgoing> | <outgoing>Flow_0xinlw8</outgoing> |
<messageEventDefinition id="MessageEventDefinition_0j2tmjq" /> | </task> |
</intermediateCatchEvent> | <intermediateCatchEvent id="Event_0r0tew3" name="Payment due date"> |
<eventBasedGateway id="Gateway_0qwge4c"> | <incoming>Flow_0tjh6sh</incoming> |
<incoming>Flow_1elj1ik</incoming> | <outgoing>Flow_0vj1spf</outgoing> |
<outgoing>Flow_11x2rmj</outgoing> | <timerEventDefinition id="TimerEventDefinition_1a77cp0" /> |
<outgoing>Flow_0opoyid</outgoing> | </intermediateCatchEvent> |
</eventBasedGateway> | <exclusiveGateway id="Gateway_1jxup79"> |
<sequenceFlow id="Flow_11x2rmj" sourceRef="Gateway_0qwge4c" targetRef="Event_09tpike" /> | <incoming>Flow_1fpmuu7</incoming> |
<sequenceFlow id="Flow_0opoyid" sourceRef="Gateway_0qwge4c" targetRef="Event_0r0tew3" /> | <incoming>Flow_1v8e8eg</incoming> |
<startEvent id="Event_01ljcuy"> | <outgoing>Flow_0tjh6sh</outgoing> |
<outgoing>Flow_104xfj6</outgoing> | </exclusiveGateway> |
</startEvent> | <sequenceFlow id="Flow_0tjh6sh" sourceRef="Gateway_1jxup79" targetRef="Event_0r0tew3" /> |
<sequenceFlow id="Flow_1j4cmln" sourceRef="Event_09tpike" targetRef="Event_1k1tn88" /> | <sequenceFlow id="Flow_0xinlw8" sourceRef="Activity_1mnvjuz" targetRef="Event_1k1tn88" /> |
<task id="Activity_12mr8cn" name="Clarify delay with the client"> | <endEvent id="Event_1k1tn88" name="Paid"> |
<incoming>Flow_1tv5ius</incoming> | <incoming>Flow_0xinlw8</incoming> |
<outgoing>Flow_06rckk1</outgoing> | <terminateEventDefinition id="TerminateEventDefinition_0ku242o" /> |
</task> | </endEvent> |
<sequenceFlow id="Flow_1tv5ius" sourceRef="Event_0r0tew3" targetRef="Activity_12mr8cn" /> | <task id="Activity_12mr8cn" name="Clarify delay with the client"> |
<exclusiveGateway id="Gateway_0gfb7mo" name="Wait more?"> | <incoming>Flow_0vj1spf</incoming> |
<incoming>Flow_06rckk1</incoming> | <outgoing>Flow_0v7giyt</outgoing> |
<outgoing>Flow_0eyb0h5</outgoing> | </task> |
<outgoing>Flow_083x67t</outgoing> | <sequenceFlow id="Flow_0vj1spf" sourceRef="Event_0r0tew3" targetRef="Activity_12mr8cn" /> |
</exclusiveGateway> | <exclusiveGateway id="Gateway_0gfb7mo" name="Wait more?"> |
<sequenceFlow id="Flow_06rckk1" sourceRef="Activity_12mr8cn" targetRef="Gateway_0gfb7mo" /> | <incoming>Flow_0v7giyt</incoming> |
<sequenceFlow id="Flow_0eyb0h5" name="no" sourceRef="Gateway_0gfb7mo" targetRef="Event_04k06ga" /> | <outgoing>Flow_0xssdyb</outgoing> |
<endEvent id="Event_1k1tn88" name="Paid"> | <outgoing>Flow_1fpmuu7</outgoing> |
<incoming>Flow_1j4cmln</incoming> | </exclusiveGateway> |
</endEvent> | <sequenceFlow id="Flow_0v7giyt" sourceRef="Activity_12mr8cn" targetRef="Gateway_0gfb7mo" /> |
<endEvent id="Event_04k06ga" name="Not paid"> | <sequenceFlow id="Flow_0xssdyb" name="no" sourceRef="Gateway_0gfb7mo" targetRef="Event_04k06ga" /> |
<incoming>Flow_0eyb0h5</incoming> | <sequenceFlow id="Flow_1fpmuu7" name="yes" sourceRef="Gateway_0gfb7mo" targetRef="Gateway_1jxup79" /> |
</endEvent> | <endEvent id="Event_04k06ga" name="Not paid"> |
<exclusiveGateway id="Gateway_057c6r5"> | <incoming>Flow_0xssdyb</incoming> |
<incoming>Flow_104xfj6</incoming> | <terminateEventDefinition id="TerminateEventDefinition_0jd5cs4" /> |
<incoming>Flow_083x67t</incoming> | </endEvent> |
<outgoing>Flow_1elj1ik</outgoing> | <sequenceFlow id="Flow_1qbujp7" sourceRef="Event_13ec10q" targetRef="Activity_1mnvjuz" /> |
</exclusiveGateway> | <sequenceFlow id="Flow_1v8e8eg" sourceRef="Event_13ec10q" targetRef="Gateway_1jxup79" /> |
<sequenceFlow id="Flow_104xfj6" sourceRef="Event_01ljcuy" targetRef="Gateway_057c6r5" /> | </subProcess> |
<sequenceFlow id="Flow_1elj1ik" sourceRef="Gateway_057c6r5" targetRef="Gateway_0qwge4c" /> | |
<sequenceFlow id="Flow_083x67t" name="yes" sourceRef="Gateway_0gfb7mo" targetRef="Gateway_057c6r5" /> | |
</process> | </process> |
<bpmndi:BPMNDiagram id="BpmnDiagram_1"> | <bpmndi:BPMNDiagram id="BpmnDiagram_1"> |
<bpmndi:BPMNPlane id="BpmnPlane_1" bpmnElement="Process_0kf0077"> | <bpmndi:BPMNPlane id="BpmnPlane_1" bpmnElement="Process_0kf0077"> |
<bpmndi:BPMNShape id="Gateway_182m8yn_di" bpmnElement="Gateway_0qwge4c"> | <bpmndi:BPMNShape id="Activity_1tn5n73_di" bpmnElement="Activity_1tn5n73" isExpanded="true"> |
<omgdc:Bounds x="395" y="-145" width="50" height="50" /> | <omgdc:Bounds x="350" y="-620" width="580" height="330" /> |
</bpmndi:BPMNShape> | </bpmndi:BPMNShape> |
<bpmndi:BPMNShape id="Event_0lccgc3_di" bpmnElement="Event_09tpike"> | <bpmndi:BPMNShape id="Activity_1mnvjuz_di" bpmnElement="Activity_1mnvjuz"> |
<omgdc:Bounds x="512" y="-138" width="36" height="36" /> | <omgdc:Bounds x="490" y="-410" width="100" height="80" /> |
| <bpmndi:BPMNLabel /> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNShape id="Event_1f2yzhy_di" bpmnElement="Event_0r0tew3"> |
| <omgdc:Bounds x="522" y="-498" width="36" height="36" /> |
<bpmndi:BPMNLabel> | <bpmndi:BPMNLabel> |
<omgdc:Bounds x="486" y="-95" width="89" height="14" /> | <omgdc:Bounds x="495" y="-455" width="90" height="14" /> |
</bpmndi:BPMNLabel> | </bpmndi:BPMNLabel> |
</bpmndi:BPMNShape> | </bpmndi:BPMNShape> |
<bpmndi:BPMNShape id="Event_1f2yzhy_di" bpmnElement="Event_0r0tew3"> | <bpmndi:BPMNShape id="Event_0s7eoii_di" bpmnElement="Event_1k1tn88"> |
<omgdc:Bounds x="512" y="-258" width="36" height="36" /> | <omgdc:Bounds x="652" y="-388" width="36" height="36" /> |
<bpmndi:BPMNLabel> | <bpmndi:BPMNLabel> |
<omgdc:Bounds x="485" y="-215" width="90" height="14" /> | <omgdc:Bounds x="659" y="-345" width="23" height="14" /> |
</bpmndi:BPMNLabel> | </bpmndi:BPMNLabel> |
</bpmndi:BPMNShape> | |
<bpmndi:BPMNShape id="Event_01ljcuy_di" bpmnElement="Event_01ljcuy"> | |
<omgdc:Bounds x="212" y="-138" width="36" height="36" /> | |
</bpmndi:BPMNShape> | </bpmndi:BPMNShape> |
<bpmndi:BPMNShape id="Activity_12mr8cn_di" bpmnElement="Activity_12mr8cn"> | <bpmndi:BPMNShape id="Activity_12mr8cn_di" bpmnElement="Activity_12mr8cn"> |
<omgdc:Bounds x="600" y="-280" width="100" height="80" /> | <omgdc:Bounds x="620" y="-520" width="100" height="80" /> |
<bpmndi:BPMNLabel /> | <bpmndi:BPMNLabel /> |
</bpmndi:BPMNShape> | </bpmndi:BPMNShape> |
<bpmndi:BPMNShape id="Gateway_0gfb7mo_di" bpmnElement="Gateway_0gfb7mo" isMarkerVisible="true"> | <bpmndi:BPMNShape id="Gateway_0gfb7mo_di" bpmnElement="Gateway_0gfb7mo" isMarkerVisible="true"> |
<omgdc:Bounds x="755" y="-265" width="50" height="50" /> | <omgdc:Bounds x="765" y="-505" width="50" height="50" /> |
<bpmndi:BPMNLabel> | <bpmndi:BPMNLabel> |
<omgdc:Bounds x="752" y="-205" width="56" height="14" /> | <omgdc:Bounds x="762" y="-448" width="56" height="14" /> |
</bpmndi:BPMNLabel> | </bpmndi:BPMNLabel> |
</bpmndi:BPMNShape> | </bpmndi:BPMNShape> |
<bpmndi:BPMNShape id="Event_081tn46_di" bpmnElement="Event_1k1tn88"> | <bpmndi:BPMNShape id="Event_1kp0poi_di" bpmnElement="Event_04k06ga"> |
<omgdc:Bounds x="632" y="-138" width="36" height="36" /> | <omgdc:Bounds x="852" y="-498" width="36" height="36" /> |
<bpmndi:BPMNLabel> | <bpmndi:BPMNLabel> |
<omgdc:Bounds x="639" y="-95" width="23" height="14" /> | <omgdc:Bounds x="849" y="-455" width="42" height="14" /> |
</bpmndi:BPMNLabel> | </bpmndi:BPMNLabel> |
</bpmndi:BPMNShape> | </bpmndi:BPMNShape> |
<bpmndi:BPMNShape id="Gateway_057c6r5_di" bpmnElement="Gateway_057c6r5" isMarkerVisible="true"> | <bpmndi:BPMNShape id="Event_13ec10q_di" bpmnElement="Event_13ec10q"> |
<omgdc:Bounds x="295" y="-145" width="50" height="50" /> | <omgdc:Bounds x="402" y="-388" width="36" height="36" /> |
</bpmndi:BPMNShape> | </bpmndi:BPMNShape> |
<bpmndi:BPMNShape id="Event_1odkgr3_di" bpmnElement="Event_04k06ga"> | <bpmndi:BPMNShape id="Gateway_1jxup79_di" bpmnElement="Gateway_1jxup79" isMarkerVisible="true"> |
<omgdc:Bounds x="852" y="-258" width="36" height="36" /> | <omgdc:Bounds x="395" y="-505" width="50" height="50" /> |
<bpmndi:BPMNLabel> | |
<omgdc:Bounds x="849" y="-215" width="42" height="14" /> | |
</bpmndi:BPMNLabel> | |
</bpmndi:BPMNShape> | </bpmndi:BPMNShape> |
<bpmndi:BPMNEdge id="Flow_11x2rmj_di" bpmnElement="Flow_11x2rmj"> | <bpmndi:BPMNEdge id="Flow_0tjh6sh_di" bpmnElement="Flow_0tjh6sh"> |
<omgdi:waypoint x="445" y="-120" /> | <omgdi:waypoint x="445" y="-480" /> |
<omgdi:waypoint x="512" y="-120" /> | <omgdi:waypoint x="522" y="-480" /> |
</bpmndi:BPMNEdge> | </bpmndi:BPMNEdge> |
<bpmndi:BPMNEdge id="Flow_0opoyid_di" bpmnElement="Flow_0opoyid"> | <bpmndi:BPMNEdge id="Flow_0xinlw8_di" bpmnElement="Flow_0xinlw8"> |
<omgdi:waypoint x="420" y="-145" /> | <omgdi:waypoint x="590" y="-370" /> |
<omgdi:waypoint x="420" y="-240" /> | <omgdi:waypoint x="652" y="-370" /> |
<omgdi:waypoint x="512" y="-240" /> | |
</bpmndi:BPMNEdge> | </bpmndi:BPMNEdge> |
<bpmndi:BPMNEdge id="Flow_1j4cmln_di" bpmnElement="Flow_1j4cmln"> | <bpmndi:BPMNEdge id="Flow_0vj1spf_di" bpmnElement="Flow_0vj1spf"> |
<omgdi:waypoint x="548" y="-120" /> | <omgdi:waypoint x="558" y="-480" /> |
<omgdi:waypoint x="632" y="-120" /> | <omgdi:waypoint x="620" y="-480" /> |
</bpmndi:BPMNEdge> | </bpmndi:BPMNEdge> |
<bpmndi:BPMNEdge id="Flow_1tv5ius_di" bpmnElement="Flow_1tv5ius"> | <bpmndi:BPMNEdge id="Flow_0v7giyt_di" bpmnElement="Flow_0v7giyt"> |
<omgdi:waypoint x="548" y="-240" /> | <omgdi:waypoint x="720" y="-480" /> |
<omgdi:waypoint x="600" y="-240" /> | <omgdi:waypoint x="765" y="-480" /> |
</bpmndi:BPMNEdge> | </bpmndi:BPMNEdge> |
<bpmndi:BPMNEdge id="Flow_06rckk1_di" bpmnElement="Flow_06rckk1"> | <bpmndi:BPMNEdge id="Flow_0xssdyb_di" bpmnElement="Flow_0xssdyb"> |
<omgdi:waypoint x="700" y="-240" /> | <omgdi:waypoint x="815" y="-480" /> |
<omgdi:waypoint x="755" y="-240" /> | <omgdi:waypoint x="852" y="-480" /> |
</bpmndi:BPMNEdge> | |
<bpmndi:BPMNEdge id="Flow_0eyb0h5_di" bpmnElement="Flow_0eyb0h5"> | |
<omgdi:waypoint x="805" y="-240" /> | |
<omgdi:waypoint x="852" y="-240" /> | |
<bpmndi:BPMNLabel> | <bpmndi:BPMNLabel> |
<omgdc:Bounds x="822" y="-258" width="13" height="14" /> | <omgdc:Bounds x="827" y="-498" width="13" height="14" /> |
</bpmndi:BPMNLabel> | </bpmndi:BPMNLabel> |
</bpmndi:BPMNEdge> | </bpmndi:BPMNEdge> |
<bpmndi:BPMNEdge id="Flow_104xfj6_di" bpmnElement="Flow_104xfj6"> | <bpmndi:BPMNEdge id="Flow_1fpmuu7_di" bpmnElement="Flow_1fpmuu7"> |
<omgdi:waypoint x="248" y="-120" /> | <omgdi:waypoint x="790" y="-505" /> |
<omgdi:waypoint x="295" y="-120" /> | <omgdi:waypoint x="790" y="-570" /> |
</bpmndi:BPMNEdge> | <omgdi:waypoint x="420" y="-570" /> |
<bpmndi:BPMNEdge id="Flow_1elj1ik_di" bpmnElement="Flow_1elj1ik"> | <omgdi:waypoint x="420" y="-505" /> |
<omgdi:waypoint x="345" y="-120" /> | |
<omgdi:waypoint x="395" y="-120" /> | |
</bpmndi:BPMNEdge> | |
<bpmndi:BPMNEdge id="Flow_083x67t_di" bpmnElement="Flow_083x67t"> | |
<omgdi:waypoint x="780" y="-265" /> | |
<omgdi:waypoint x="780" y="-330" /> | |
<omgdi:waypoint x="320" y="-330" /> | |
<omgdi:waypoint x="320" y="-145" /> | |
<bpmndi:BPMNLabel> | <bpmndi:BPMNLabel> |
<omgdc:Bounds x="542" y="-348" width="17" height="14" /> | <omgdc:Bounds x="597" y="-588" width="17" height="14" /> |
</bpmndi:BPMNLabel> | </bpmndi:BPMNLabel> |
| </bpmndi:BPMNEdge> |
| <bpmndi:BPMNEdge id="Flow_1qbujp7_di" bpmnElement="Flow_1qbujp7"> |
| <omgdi:waypoint x="438" y="-370" /> |
| <omgdi:waypoint x="490" y="-370" /> |
| </bpmndi:BPMNEdge> |
| <bpmndi:BPMNEdge id="Flow_1v8e8eg_di" bpmnElement="Flow_1v8e8eg"> |
| <omgdi:waypoint x="420" y="-388" /> |
| <omgdi:waypoint x="420" y="-455" /> |
</bpmndi:BPMNEdge> | </bpmndi:BPMNEdge> |
</bpmndi:BPMNPlane> | </bpmndi:BPMNPlane> |
</definitions> | </definitions> |
</bpmnio> | </bpmnio> |
| |
===== Notes ===== | |
| |
It may make sence to depict the subprocess expanded to make the logic clear. | |
| |
===== Exceptions ===== | |
| |
Attached events are simpler and should be preferred in more straightforward scenarios. | |
| |
===== See also ===== | ===== See also ===== |
| |
* [[en:rule:event_gateway_warning]] | * [[en:rule:event_gateway_warning]] |
| |
===== Автор(ы) ===== | ===== Autor(s) ===== |
| |
--- //[[user:bell|Anatoly Belaychuk]] 2023-09-10 11:21// | --- //[[user:bell|Anatoly Belaychuk]] 2023-09-10 11:21// |
| |