Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
en:rule:avoid_mixed_gateways [2023-09-11 15:22] – removed - external edit (Unknown date) 127.0.0.1en:rule:avoid_mixed_gateways [2024-08-22 20:18] (current) – [Notes] Anatoly Belaychuk
Line 1: Line 1:
 +====== Don't use mixed gateways ======
 +
 +{{tag>gateway mixed_gateway}}
 +
 +Gateways classification:
 +
 +  * diverging (split) - one incoming flow, several outgoing flows
 +  * converging (join) - several incoming flows, one outgoing flow
 +  * mixed - several incoming flows and several outgoing flows
 +
 +Although mixed gateways are allowed it's better to avoid them.
 +===== ✔ How To =====
 +
 +<bpmnio type="bpmn">
 +<?xml version="1.0" encoding="UTF-8"?>
 +<bpmn:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_0rf5t2r" targetNamespace="http://bpmn.io/schema/bpmn" exporter="bpmn-js (https://demo.bpmn.io)" exporterVersion="14.0.0">
 +  <bpmn:process id="Process_0jcgoyf" isExecutable="false">
 +    <bpmn:startEvent id="StartEvent_1768r1t">
 +      <bpmn:outgoing>Flow_1jordbm</bpmn:outgoing>
 +    </bpmn:startEvent>
 +    <bpmn:task id="Activity_0cluktb" name="Create bill">
 +      <bpmn:incoming>Flow_1jordbm</bpmn:incoming>
 +      <bpmn:outgoing>Flow_1jm9oqt</bpmn:outgoing>
 +    </bpmn:task>
 +    <bpmn:sequenceFlow id="Flow_1jordbm" sourceRef="StartEvent_1768r1t" targetRef="Activity_0cluktb" />
 +    <bpmn:parallelGateway id="Gateway_0g36lb6">
 +      <bpmn:incoming>Flow_1lg1tqn</bpmn:incoming>
 +      <bpmn:outgoing>Flow_1khoqyb</bpmn:outgoing>
 +      <bpmn:outgoing>Flow_0toczow</bpmn:outgoing>
 +    </bpmn:parallelGateway>
 +    <bpmn:task id="Activity_0bvkw53" name="Send by email">
 +      <bpmn:incoming>Flow_1khoqyb</bpmn:incoming>
 +      <bpmn:outgoing>Flow_11mz79l</bpmn:outgoing>
 +    </bpmn:task>
 +    <bpmn:sequenceFlow id="Flow_1khoqyb" sourceRef="Gateway_0g36lb6" targetRef="Activity_0bvkw53" />
 +    <bpmn:task id="Activity_0qxhw3m" name="Send by airmail">
 +      <bpmn:incoming>Flow_0toczow</bpmn:incoming>
 +      <bpmn:outgoing>Flow_00s8ucj</bpmn:outgoing>
 +    </bpmn:task>
 +    <bpmn:sequenceFlow id="Flow_0toczow" sourceRef="Gateway_0g36lb6" targetRef="Activity_0qxhw3m" />
 +    <bpmn:sequenceFlow id="Flow_11mz79l" sourceRef="Activity_0bvkw53" targetRef="Gateway_1rlhvyt" />
 +    <bpmn:parallelGateway id="Gateway_1rlhvyt">
 +      <bpmn:incoming>Flow_11mz79l</bpmn:incoming>
 +      <bpmn:incoming>Flow_00s8ucj</bpmn:incoming>
 +      <bpmn:outgoing>Flow_0znw93f</bpmn:outgoing>
 +    </bpmn:parallelGateway>
 +    <bpmn:sequenceFlow id="Flow_00s8ucj" sourceRef="Activity_0qxhw3m" targetRef="Gateway_1rlhvyt" />
 +    <bpmn:task id="Activity_15ssh3b" name="Agree with the client">
 +      <bpmn:incoming>Flow_0znw93f</bpmn:incoming>
 +      <bpmn:outgoing>Flow_0wcisla</bpmn:outgoing>
 +    </bpmn:task>
 +    <bpmn:sequenceFlow id="Flow_0znw93f" sourceRef="Gateway_1rlhvyt" targetRef="Activity_15ssh3b" />
 +    <bpmn:exclusiveGateway id="Gateway_13c67li" name="Agreed?">
 +      <bpmn:incoming>Flow_0wcisla</bpmn:incoming>
 +      <bpmn:outgoing>Flow_1fiuctz</bpmn:outgoing>
 +      <bpmn:outgoing>Flow_0c7pvuu</bpmn:outgoing>
 +    </bpmn:exclusiveGateway>
 +    <bpmn:sequenceFlow id="Flow_0wcisla" sourceRef="Activity_15ssh3b" targetRef="Gateway_13c67li" />
 +    <bpmn:endEvent id="Event_0pbbdwp" name="OK">
 +      <bpmn:incoming>Flow_1fiuctz</bpmn:incoming>
 +    </bpmn:endEvent>
 +    <bpmn:sequenceFlow id="Flow_1fiuctz" name="yes" sourceRef="Gateway_13c67li" targetRef="Event_0pbbdwp" />
 +    <bpmn:exclusiveGateway id="Gateway_19y1h4n" name="Are objections reasonable?">
 +      <bpmn:incoming>Flow_0c7pvuu</bpmn:incoming>
 +      <bpmn:outgoing>Flow_08y6k5p</bpmn:outgoing>
 +      <bpmn:outgoing>Flow_0cucewu</bpmn:outgoing>
 +    </bpmn:exclusiveGateway>
 +    <bpmn:sequenceFlow id="Flow_0c7pvuu" name="no" sourceRef="Gateway_13c67li" targetRef="Gateway_19y1h4n" />
 +    <bpmn:task id="Activity_1e1ossc" name="Adjust bill">
 +      <bpmn:incoming>Flow_08y6k5p</bpmn:incoming>
 +      <bpmn:outgoing>Flow_087oad2</bpmn:outgoing>
 +    </bpmn:task>
 +    <bpmn:sequenceFlow id="Flow_08y6k5p" name="yes" sourceRef="Gateway_19y1h4n" targetRef="Activity_1e1ossc" />
 +    <bpmn:sequenceFlow id="Flow_087oad2" sourceRef="Activity_1e1ossc" targetRef="Gateway_05vm8z0" />
 +    <bpmn:endEvent id="Event_1nvvmu7" name="Not agreed">
 +      <bpmn:incoming>Flow_0cucewu</bpmn:incoming>
 +    </bpmn:endEvent>
 +    <bpmn:sequenceFlow id="Flow_0cucewu" name="no" sourceRef="Gateway_19y1h4n" targetRef="Event_1nvvmu7" />
 +    <bpmn:exclusiveGateway id="Gateway_05vm8z0">
 +      <bpmn:incoming>Flow_1jm9oqt</bpmn:incoming>
 +      <bpmn:incoming>Flow_087oad2</bpmn:incoming>
 +      <bpmn:outgoing>Flow_1lg1tqn</bpmn:outgoing>
 +    </bpmn:exclusiveGateway>
 +    <bpmn:sequenceFlow id="Flow_1jm9oqt" sourceRef="Activity_0cluktb" targetRef="Gateway_05vm8z0" />
 +    <bpmn:sequenceFlow id="Flow_1lg1tqn" sourceRef="Gateway_05vm8z0" targetRef="Gateway_0g36lb6" />
 +  </bpmn:process>
 +  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
 +    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_0jcgoyf">
 +      <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1768r1t">
 +        <dc:Bounds x="152" y="242" width="36" height="36" />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Activity_0cluktb_di" bpmnElement="Activity_0cluktb">
 +        <dc:Bounds x="230" y="220" width="100" height="80" />
 +        <bpmndi:BPMNLabel />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Gateway_0ik101c_di" bpmnElement="Gateway_0g36lb6">
 +        <dc:Bounds x="465" y="235" width="50" height="50" />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Activity_0bvkw53_di" bpmnElement="Activity_0bvkw53">
 +        <dc:Bounds x="560" y="220" width="100" height="80" />
 +        <bpmndi:BPMNLabel />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Activity_0qxhw3m_di" bpmnElement="Activity_0qxhw3m">
 +        <dc:Bounds x="560" y="350" width="100" height="80" />
 +        <bpmndi:BPMNLabel />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Gateway_0yi6h4y_di" bpmnElement="Gateway_1rlhvyt">
 +        <dc:Bounds x="705" y="235" width="50" height="50" />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Activity_15ssh3b_di" bpmnElement="Activity_15ssh3b">
 +        <dc:Bounds x="790" y="220" width="100" height="80" />
 +        <bpmndi:BPMNLabel />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Gateway_13c67li_di" bpmnElement="Gateway_13c67li" isMarkerVisible="true">
 +        <dc:Bounds x="925" y="235" width="50" height="50" />
 +        <bpmndi:BPMNLabel>
 +          <dc:Bounds x="929" y="292" width="42" height="14" />
 +        </bpmndi:BPMNLabel>
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Event_0pbbdwp_di" bpmnElement="Event_0pbbdwp">
 +        <dc:Bounds x="1022" y="242" width="36" height="36" />
 +        <bpmndi:BPMNLabel>
 +          <dc:Bounds x="1032" y="285" width="17" height="14" />
 +        </bpmndi:BPMNLabel>
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Gateway_19y1h4n_di" bpmnElement="Gateway_19y1h4n" isMarkerVisible="true">
 +        <dc:Bounds x="925" y="115" width="50" height="50" />
 +        <bpmndi:BPMNLabel>
 +          <dc:Bounds x="915" y="85" width="70" height="27" />
 +        </bpmndi:BPMNLabel>
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Activity_1e1ossc_di" bpmnElement="Activity_1e1ossc">
 +        <dc:Bounds x="350" y="100" width="100" height="80" />
 +        <bpmndi:BPMNLabel />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Event_1nvvmu7_di" bpmnElement="Event_1nvvmu7">
 +        <dc:Bounds x="1022" y="122" width="36" height="36" />
 +        <bpmndi:BPMNLabel>
 +          <dc:Bounds x="1013" y="165" width="55" height="14" />
 +        </bpmndi:BPMNLabel>
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Gateway_05vm8z0_di" bpmnElement="Gateway_05vm8z0" isMarkerVisible="true">
 +        <dc:Bounds x="375" y="235" width="50" height="50" />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNEdge id="Flow_1jordbm_di" bpmnElement="Flow_1jordbm">
 +        <di:waypoint x="188" y="260" />
 +        <di:waypoint x="230" y="260" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_1khoqyb_di" bpmnElement="Flow_1khoqyb">
 +        <di:waypoint x="515" y="260" />
 +        <di:waypoint x="560" y="260" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_0toczow_di" bpmnElement="Flow_0toczow">
 +        <di:waypoint x="490" y="285" />
 +        <di:waypoint x="490" y="390" />
 +        <di:waypoint x="560" y="390" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_11mz79l_di" bpmnElement="Flow_11mz79l">
 +        <di:waypoint x="660" y="260" />
 +        <di:waypoint x="705" y="260" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_00s8ucj_di" bpmnElement="Flow_00s8ucj">
 +        <di:waypoint x="660" y="390" />
 +        <di:waypoint x="730" y="390" />
 +        <di:waypoint x="730" y="285" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_0znw93f_di" bpmnElement="Flow_0znw93f">
 +        <di:waypoint x="755" y="260" />
 +        <di:waypoint x="790" y="260" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_0wcisla_di" bpmnElement="Flow_0wcisla">
 +        <di:waypoint x="890" y="260" />
 +        <di:waypoint x="925" y="260" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_1fiuctz_di" bpmnElement="Flow_1fiuctz">
 +        <di:waypoint x="975" y="260" />
 +        <di:waypoint x="1022" y="260" />
 +        <bpmndi:BPMNLabel>
 +          <dc:Bounds x="990" y="242" width="17" height="14" />
 +        </bpmndi:BPMNLabel>
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_0c7pvuu_di" bpmnElement="Flow_0c7pvuu">
 +        <di:waypoint x="950" y="235" />
 +        <di:waypoint x="950" y="165" />
 +        <bpmndi:BPMNLabel>
 +          <dc:Bounds x="959" y="197" width="13" height="14" />
 +        </bpmndi:BPMNLabel>
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_08y6k5p_di" bpmnElement="Flow_08y6k5p">
 +        <di:waypoint x="925" y="140" />
 +        <di:waypoint x="450" y="140" />
 +        <bpmndi:BPMNLabel>
 +          <dc:Bounds x="679" y="122" width="17" height="14" />
 +        </bpmndi:BPMNLabel>
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_087oad2_di" bpmnElement="Flow_087oad2">
 +        <di:waypoint x="400" y="180" />
 +        <di:waypoint x="400" y="235" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_0cucewu_di" bpmnElement="Flow_0cucewu">
 +        <di:waypoint x="975" y="140" />
 +        <di:waypoint x="1022" y="140" />
 +        <bpmndi:BPMNLabel>
 +          <dc:Bounds x="992" y="122" width="13" height="14" />
 +        </bpmndi:BPMNLabel>
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_1jm9oqt_di" bpmnElement="Flow_1jm9oqt">
 +        <di:waypoint x="330" y="260" />
 +        <di:waypoint x="375" y="260" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_1lg1tqn_di" bpmnElement="Flow_1lg1tqn">
 +        <di:waypoint x="425" y="260" />
 +        <di:waypoint x="465" y="260" />
 +      </bpmndi:BPMNEdge>
 +    </bpmndi:BPMNPlane>
 +  </bpmndi:BPMNDiagram>
 +</bpmn:definitions>
 +</bpmnio>
 +===== ✘ How NOT To=====
 +
 +<bpmnio type="bpmn">
 +<?xml version="1.0" encoding="UTF-8"?>
 +<bpmn:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_0rf5t2r" targetNamespace="http://bpmn.io/schema/bpmn" exporter="bpmn-js (https://demo.bpmn.io)" exporterVersion="14.0.0">
 +  <bpmn:process id="Process_0jcgoyf" isExecutable="false">
 +    <bpmn:startEvent id="StartEvent_1768r1t">
 +      <bpmn:outgoing>Flow_1jordbm</bpmn:outgoing>
 +    </bpmn:startEvent>
 +    <bpmn:task id="Activity_0cluktb" name="Create bill">
 +      <bpmn:incoming>Flow_1jordbm</bpmn:incoming>
 +      <bpmn:outgoing>Flow_0mvc51i</bpmn:outgoing>
 +    </bpmn:task>
 +    <bpmn:sequenceFlow id="Flow_1jordbm" sourceRef="StartEvent_1768r1t" targetRef="Activity_0cluktb" />
 +    <bpmn:sequenceFlow id="Flow_0mvc51i" sourceRef="Activity_0cluktb" targetRef="Gateway_0g36lb6" />
 +    <bpmn:parallelGateway id="Gateway_0g36lb6">
 +      <bpmn:incoming>Flow_0mvc51i</bpmn:incoming>
 +      <bpmn:incoming>Flow_087oad2</bpmn:incoming>
 +      <bpmn:outgoing>Flow_1khoqyb</bpmn:outgoing>
 +      <bpmn:outgoing>Flow_0toczow</bpmn:outgoing>
 +    </bpmn:parallelGateway>
 +    <bpmn:task id="Activity_0bvkw53" name="Send by email">
 +      <bpmn:incoming>Flow_1khoqyb</bpmn:incoming>
 +      <bpmn:outgoing>Flow_11mz79l</bpmn:outgoing>
 +    </bpmn:task>
 +    <bpmn:sequenceFlow id="Flow_1khoqyb" sourceRef="Gateway_0g36lb6" targetRef="Activity_0bvkw53" />
 +    <bpmn:task id="Activity_0qxhw3m" name="Send by airmail">
 +      <bpmn:incoming>Flow_0toczow</bpmn:incoming>
 +      <bpmn:outgoing>Flow_00s8ucj</bpmn:outgoing>
 +    </bpmn:task>
 +    <bpmn:sequenceFlow id="Flow_0toczow" sourceRef="Gateway_0g36lb6" targetRef="Activity_0qxhw3m" />
 +    <bpmn:sequenceFlow id="Flow_11mz79l" sourceRef="Activity_0bvkw53" targetRef="Gateway_1rlhvyt" />
 +    <bpmn:parallelGateway id="Gateway_1rlhvyt">
 +      <bpmn:incoming>Flow_11mz79l</bpmn:incoming>
 +      <bpmn:incoming>Flow_00s8ucj</bpmn:incoming>
 +      <bpmn:outgoing>Flow_0znw93f</bpmn:outgoing>
 +    </bpmn:parallelGateway>
 +    <bpmn:sequenceFlow id="Flow_00s8ucj" sourceRef="Activity_0qxhw3m" targetRef="Gateway_1rlhvyt" />
 +    <bpmn:task id="Activity_15ssh3b" name="Agree with the client">
 +      <bpmn:incoming>Flow_0znw93f</bpmn:incoming>
 +      <bpmn:outgoing>Flow_0wcisla</bpmn:outgoing>
 +    </bpmn:task>
 +    <bpmn:sequenceFlow id="Flow_0znw93f" sourceRef="Gateway_1rlhvyt" targetRef="Activity_15ssh3b" />
 +    <bpmn:exclusiveGateway id="Gateway_13c67li" name="Agreed?">
 +      <bpmn:incoming>Flow_0wcisla</bpmn:incoming>
 +      <bpmn:outgoing>Flow_1fiuctz</bpmn:outgoing>
 +      <bpmn:outgoing>Flow_0c7pvuu</bpmn:outgoing>
 +    </bpmn:exclusiveGateway>
 +    <bpmn:sequenceFlow id="Flow_0wcisla" sourceRef="Activity_15ssh3b" targetRef="Gateway_13c67li" />
 +    <bpmn:endEvent id="Event_0pbbdwp" name="OK">
 +      <bpmn:incoming>Flow_1fiuctz</bpmn:incoming>
 +    </bpmn:endEvent>
 +    <bpmn:sequenceFlow id="Flow_1fiuctz" name="yes" sourceRef="Gateway_13c67li" targetRef="Event_0pbbdwp" />
 +    <bpmn:exclusiveGateway id="Gateway_19y1h4n" name="Are objections reasonable?">
 +      <bpmn:incoming>Flow_0c7pvuu</bpmn:incoming>
 +      <bpmn:outgoing>Flow_08y6k5p</bpmn:outgoing>
 +      <bpmn:outgoing>Flow_0cucewu</bpmn:outgoing>
 +    </bpmn:exclusiveGateway>
 +    <bpmn:sequenceFlow id="Flow_0c7pvuu" name="no" sourceRef="Gateway_13c67li" targetRef="Gateway_19y1h4n" />
 +    <bpmn:task id="Activity_1e1ossc" name="Adjust bill">
 +      <bpmn:incoming>Flow_08y6k5p</bpmn:incoming>
 +      <bpmn:outgoing>Flow_087oad2</bpmn:outgoing>
 +    </bpmn:task>
 +    <bpmn:sequenceFlow id="Flow_08y6k5p" name="yes" sourceRef="Gateway_19y1h4n" targetRef="Activity_1e1ossc" />
 +    <bpmn:sequenceFlow id="Flow_087oad2" sourceRef="Activity_1e1ossc" targetRef="Gateway_0g36lb6" />
 +    <bpmn:endEvent id="Event_1nvvmu7" name="Not agreed">
 +      <bpmn:incoming>Flow_0cucewu</bpmn:incoming>
 +    </bpmn:endEvent>
 +    <bpmn:sequenceFlow id="Flow_0cucewu" name="no" sourceRef="Gateway_19y1h4n" targetRef="Event_1nvvmu7" />
 +  </bpmn:process>
 +  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
 +    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_0jcgoyf">
 +      <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1768r1t">
 +        <dc:Bounds x="142" y="242" width="36" height="36" />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Activity_0cluktb_di" bpmnElement="Activity_0cluktb">
 +        <dc:Bounds x="220" y="220" width="100" height="80" />
 +        <bpmndi:BPMNLabel />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Gateway_0ik101c_di" bpmnElement="Gateway_0g36lb6">
 +        <dc:Bounds x="365" y="235" width="50" height="50" />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Activity_0bvkw53_di" bpmnElement="Activity_0bvkw53">
 +        <dc:Bounds x="460" y="220" width="100" height="80" />
 +        <bpmndi:BPMNLabel />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Activity_0qxhw3m_di" bpmnElement="Activity_0qxhw3m">
 +        <dc:Bounds x="460" y="350" width="100" height="80" />
 +        <bpmndi:BPMNLabel />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Gateway_0yi6h4y_di" bpmnElement="Gateway_1rlhvyt">
 +        <dc:Bounds x="605" y="235" width="50" height="50" />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Activity_15ssh3b_di" bpmnElement="Activity_15ssh3b">
 +        <dc:Bounds x="690" y="220" width="100" height="80" />
 +        <bpmndi:BPMNLabel />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Gateway_13c67li_di" bpmnElement="Gateway_13c67li" isMarkerVisible="true">
 +        <dc:Bounds x="825" y="235" width="50" height="50" />
 +        <bpmndi:BPMNLabel>
 +          <dc:Bounds x="829" y="292" width="42" height="14" />
 +        </bpmndi:BPMNLabel>
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Event_0pbbdwp_di" bpmnElement="Event_0pbbdwp">
 +        <dc:Bounds x="922" y="242" width="36" height="36" />
 +        <bpmndi:BPMNLabel>
 +          <dc:Bounds x="932" y="285" width="17" height="14" />
 +        </bpmndi:BPMNLabel>
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Gateway_19y1h4n_di" bpmnElement="Gateway_19y1h4n" isMarkerVisible="true">
 +        <dc:Bounds x="825" y="115" width="50" height="50" />
 +        <bpmndi:BPMNLabel>
 +          <dc:Bounds x="815" y="85" width="70" height="27" />
 +        </bpmndi:BPMNLabel>
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Activity_1e1ossc_di" bpmnElement="Activity_1e1ossc">
 +        <dc:Bounds x="340" y="100" width="100" height="80" />
 +        <bpmndi:BPMNLabel />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Event_1nvvmu7_di" bpmnElement="Event_1nvvmu7">
 +        <dc:Bounds x="922" y="122" width="36" height="36" />
 +        <bpmndi:BPMNLabel>
 +          <dc:Bounds x="913" y="165" width="55" height="14" />
 +        </bpmndi:BPMNLabel>
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNEdge id="Flow_1jordbm_di" bpmnElement="Flow_1jordbm">
 +        <di:waypoint x="178" y="260" />
 +        <di:waypoint x="220" y="260" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_0mvc51i_di" bpmnElement="Flow_0mvc51i">
 +        <di:waypoint x="320" y="260" />
 +        <di:waypoint x="365" y="260" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_1khoqyb_di" bpmnElement="Flow_1khoqyb">
 +        <di:waypoint x="415" y="260" />
 +        <di:waypoint x="460" y="260" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_0toczow_di" bpmnElement="Flow_0toczow">
 +        <di:waypoint x="390" y="285" />
 +        <di:waypoint x="390" y="390" />
 +        <di:waypoint x="460" y="390" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_11mz79l_di" bpmnElement="Flow_11mz79l">
 +        <di:waypoint x="560" y="260" />
 +        <di:waypoint x="605" y="260" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_00s8ucj_di" bpmnElement="Flow_00s8ucj">
 +        <di:waypoint x="560" y="390" />
 +        <di:waypoint x="630" y="390" />
 +        <di:waypoint x="630" y="285" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_0znw93f_di" bpmnElement="Flow_0znw93f">
 +        <di:waypoint x="655" y="260" />
 +        <di:waypoint x="690" y="260" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_0wcisla_di" bpmnElement="Flow_0wcisla">
 +        <di:waypoint x="790" y="260" />
 +        <di:waypoint x="825" y="260" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_1fiuctz_di" bpmnElement="Flow_1fiuctz">
 +        <di:waypoint x="875" y="260" />
 +        <di:waypoint x="922" y="260" />
 +        <bpmndi:BPMNLabel>
 +          <dc:Bounds x="890" y="242" width="17" height="14" />
 +        </bpmndi:BPMNLabel>
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_0c7pvuu_di" bpmnElement="Flow_0c7pvuu">
 +        <di:waypoint x="850" y="235" />
 +        <di:waypoint x="850" y="165" />
 +        <bpmndi:BPMNLabel>
 +          <dc:Bounds x="859" y="197" width="13" height="14" />
 +        </bpmndi:BPMNLabel>
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_08y6k5p_di" bpmnElement="Flow_08y6k5p">
 +        <di:waypoint x="825" y="140" />
 +        <di:waypoint x="440" y="140" />
 +        <bpmndi:BPMNLabel>
 +          <dc:Bounds x="624" y="122" width="17" height="14" />
 +        </bpmndi:BPMNLabel>
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_087oad2_di" bpmnElement="Flow_087oad2">
 +        <di:waypoint x="390" y="180" />
 +        <di:waypoint x="390" y="235" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_0cucewu_di" bpmnElement="Flow_0cucewu">
 +        <di:waypoint x="875" y="140" />
 +        <di:waypoint x="922" y="140" />
 +        <bpmndi:BPMNLabel>
 +          <dc:Bounds x="892" y="122" width="13" height="14" />
 +        </bpmndi:BPMNLabel>
 +      </bpmndi:BPMNEdge>
 +    </bpmndi:BPMNPlane>
 +  </bpmndi:BPMNDiagram>
 +</bpmn:definitions>
 +</bpmnio>
 +
 +The process will hang at the first gateway because it'll wait for two tokens to arrive but only one will.
 +===== Notes =====
 +
 +[[https://www.omg.org/spec/BPMN/2.0.2/PDF|BPMN 2.0.2 spec]] (p. 287) while not prohibiting mixed gatways completely treats them as bad practice:
 +
 +> The Gateway controls the flow of both diverging and converging Sequence Flows. That is, a single Gateway could have multiple input and multiple output flows. Modelers and modeling tools might want to enforce a best practice of a Gateway only performing one of these functions. Thus, it would take two sequential Gateways to first converge and then to diverge the Sequence Flows.
 +
 +As the examples above illustrates, mixed gateways may make the diagram confusing or erroneus so it's better to avoid them. Split the mixed gateway into two - converging followed by diverging.
 +===== Author(s) =====
 +
 + --- //[[user:wjulia|Юлия Вагнер]] 2023-09-11 13:03//