Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия |
ru:rule:alternative_paths [2024-08-25 14:14] – [✔ Как надо] Anatoly Belaychuk | ru:rule:alternative_paths [2024-08-25 15:11] (текущий) – [Моделируйте альтернативные маршруты с помощью расходящейся и сходящейся развилки "или-или"] Anatoly Belaychuk |
---|
====== 0-TBD Моделируйте альтернативные маршруты с помощью расходящейся и сходящейся развилки ====== | ====== Моделируйте альтернативные маршруты с помощью расходящейся и сходящейся развилки "или-или" ====== |
| |
{{tag>развилка_или-или}} | {{tag>развилка_или-или}} |
| |
{{:ru:v_razrabotke.png?nolink&200|}} | Не поддавайтесь соблазну сэкономить на сходящихся или на расходящихся (с помощью условных потоков управления) развилках. |
| |
Тут описание правила | |
===== ✔ Как надо ===== | ===== ✔ Как надо ===== |
| |
<exclusiveGateway id="Gateway_0appi3v"> | <exclusiveGateway id="Gateway_0appi3v"> |
<incoming>Flow_1fsbtjl</incoming> | <incoming>Flow_1fsbtjl</incoming> |
<outgoing>Flow_1j6103k</outgoing> | |
<outgoing>Flow_11o7ju9</outgoing> | <outgoing>Flow_11o7ju9</outgoing> |
| <outgoing>Flow_1twaw3g</outgoing> |
</exclusiveGateway> | </exclusiveGateway> |
<sequenceFlow id="Flow_1j6103k" sourceRef="Gateway_0appi3v" targetRef="Gateway_1690982" /> | |
<task id="Activity_0g79paa"> | <task id="Activity_0g79paa"> |
<incoming>Flow_11o7ju9</incoming> | <incoming>Flow_11o7ju9</incoming> |
<outgoing>Flow_0i6zvo4</outgoing> | <outgoing>Flow_023qygd</outgoing> |
</task> | </task> |
<sequenceFlow id="Flow_11o7ju9" sourceRef="Gateway_0appi3v" targetRef="Activity_0g79paa" /> | <sequenceFlow id="Flow_11o7ju9" sourceRef="Gateway_0appi3v" targetRef="Activity_0g79paa" /> |
<exclusiveGateway id="Gateway_1690982"> | |
<incoming>Flow_0i6zvo4</incoming> | |
<incoming>Flow_1j6103k</incoming> | |
<outgoing>Flow_078dw07</outgoing> | |
</exclusiveGateway> | |
<sequenceFlow id="Flow_0i6zvo4" sourceRef="Activity_0g79paa" targetRef="Gateway_1690982" /> | |
<task id="Activity_12k75ro"> | |
<incoming>Flow_078dw07</incoming> | |
</task> | |
<sequenceFlow id="Flow_078dw07" sourceRef="Gateway_1690982" targetRef="Activity_12k75ro" /> | |
<task id="Activity_1shfyzv"> | <task id="Activity_1shfyzv"> |
<outgoing>Flow_1fsbtjl</outgoing> | <outgoing>Flow_1fsbtjl</outgoing> |
</task> | </task> |
<sequenceFlow id="Flow_1fsbtjl" sourceRef="Activity_1shfyzv" targetRef="Gateway_0appi3v" /> | <sequenceFlow id="Flow_1fsbtjl" sourceRef="Activity_1shfyzv" targetRef="Gateway_0appi3v" /> |
| <sequenceFlow id="Flow_1twaw3g" sourceRef="Gateway_0appi3v" targetRef="Gateway_0x870iy" /> |
| <sequenceFlow id="Flow_023qygd" sourceRef="Activity_0g79paa" targetRef="Gateway_0x870iy" /> |
| <endEvent id="Event_0fnzbqy"> |
| <incoming>Flow_0f0lz4l</incoming> |
| </endEvent> |
| <exclusiveGateway id="Gateway_0x870iy"> |
| <incoming>Flow_1twaw3g</incoming> |
| <incoming>Flow_023qygd</incoming> |
| <outgoing>Flow_0f0lz4l</outgoing> |
| </exclusiveGateway> |
| <sequenceFlow id="Flow_0f0lz4l" sourceRef="Gateway_0x870iy" targetRef="Event_0fnzbqy" /> |
</process> | </process> |
<bpmndi:BPMNDiagram id="BpmnDiagram_1"> | <bpmndi:BPMNDiagram id="BpmnDiagram_1"> |
<bpmndi:BPMNShape id="Gateway_0appi3v_di" bpmnElement="Gateway_0appi3v" isMarkerVisible="true"> | <bpmndi:BPMNShape id="Gateway_0appi3v_di" bpmnElement="Gateway_0appi3v" isMarkerVisible="true"> |
<omgdc:Bounds x="195" y="115" width="50" height="50" /> | <omgdc:Bounds x="195" y="115" width="50" height="50" /> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNShape id="Activity_0g79paa_di" bpmnElement="Activity_0g79paa"> |
| <omgdc:Bounds x="280" y="10" width="100" height="80" /> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNShape id="Activity_1shfyzv_di" bpmnElement="Activity_1shfyzv"> |
| <omgdc:Bounds x="50" y="100" width="100" height="80" /> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNShape id="Gateway_0x870iy_di" bpmnElement="Gateway_0x870iy" isMarkerVisible="true"> |
| <omgdc:Bounds x="415" y="115" width="50" height="50" /> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNShape id="Event_0fnzbqy_di" bpmnElement="Event_0fnzbqy"> |
| <omgdc:Bounds x="502" y="122" width="36" height="36" /> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNEdge id="Flow_11o7ju9_di" bpmnElement="Flow_11o7ju9"> |
| <omgdi:waypoint x="220" y="115" /> |
| <omgdi:waypoint x="220" y="50" /> |
| <omgdi:waypoint x="280" y="50" /> |
| </bpmndi:BPMNEdge> |
| <bpmndi:BPMNEdge id="Flow_1fsbtjl_di" bpmnElement="Flow_1fsbtjl"> |
| <omgdi:waypoint x="150" y="140" /> |
| <omgdi:waypoint x="195" y="140" /> |
| </bpmndi:BPMNEdge> |
| <bpmndi:BPMNEdge id="Flow_1twaw3g_di" bpmnElement="Flow_1twaw3g"> |
| <omgdi:waypoint x="245" y="140" /> |
| <omgdi:waypoint x="415" y="140" /> |
| </bpmndi:BPMNEdge> |
| <bpmndi:BPMNEdge id="Flow_023qygd_di" bpmnElement="Flow_023qygd"> |
| <omgdi:waypoint x="380" y="50" /> |
| <omgdi:waypoint x="440" y="50" /> |
| <omgdi:waypoint x="440" y="115" /> |
| </bpmndi:BPMNEdge> |
| <bpmndi:BPMNEdge id="Flow_0f0lz4l_di" bpmnElement="Flow_0f0lz4l"> |
| <omgdi:waypoint x="465" y="140" /> |
| <omgdi:waypoint x="502" y="140" /> |
| </bpmndi:BPMNEdge> |
| </bpmndi:BPMNPlane> |
| </bpmndi:BPMNDiagram> |
| </definitions> |
| </bpmnio> |
| ===== ✘ Как НЕ надо ===== |
| |
| <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_0ovu1hu"> |
| <task id="Activity_1ku6n5f"> |
| <incoming>Flow_1j6103k</incoming> |
| <outgoing>Flow_0m1z45m</outgoing> |
| </task> |
| <sequenceFlow id="Flow_1j6103k" sourceRef="Activity_0aev496" targetRef="Activity_1ku6n5f"> |
| <conditionExpression xsi:type="tFormalExpression"></conditionExpression> |
| </sequenceFlow> |
| <task id="Activity_0g79paa"> |
| <incoming>Flow_11o7ju9</incoming> |
| <outgoing>Flow_0i6zvo4</outgoing> |
| </task> |
| <sequenceFlow id="Flow_11o7ju9" sourceRef="Activity_0aev496" targetRef="Activity_0g79paa"> |
| <conditionExpression xsi:type="tFormalExpression"></conditionExpression> |
| </sequenceFlow> |
| <exclusiveGateway id="Gateway_1690982"> |
| <incoming>Flow_0i6zvo4</incoming> |
| <incoming>Flow_0m1z45m</incoming> |
| <outgoing>Flow_1ei1tah</outgoing> |
| </exclusiveGateway> |
| <sequenceFlow id="Flow_0i6zvo4" sourceRef="Activity_0g79paa" targetRef="Gateway_1690982" /> |
| <sequenceFlow id="Flow_0m1z45m" sourceRef="Activity_1ku6n5f" targetRef="Gateway_1690982" /> |
| <task id="Activity_17g79ka"> |
| <incoming>Flow_1ei1tah</incoming> |
| </task> |
| <sequenceFlow id="Flow_1ei1tah" sourceRef="Gateway_1690982" targetRef="Activity_17g79ka" /> |
| <task id="Activity_0aev496"> |
| <outgoing>Flow_11o7ju9</outgoing> |
| <outgoing>Flow_1j6103k</outgoing> |
| </task> |
| </process> |
| <bpmndi:BPMNDiagram id="BpmnDiagram_1"> |
| <bpmndi:BPMNPlane id="BpmnPlane_1" bpmnElement="Process_0ovu1hu"> |
| <bpmndi:BPMNShape id="Activity_1ku6n5f_di" bpmnElement="Activity_1ku6n5f"> |
| <omgdc:Bounds x="280" y="190" width="100" height="80" /> |
</bpmndi:BPMNShape> | </bpmndi:BPMNShape> |
<bpmndi:BPMNShape id="Activity_0g79paa_di" bpmnElement="Activity_0g79paa"> | <bpmndi:BPMNShape id="Activity_0g79paa_di" bpmnElement="Activity_0g79paa"> |
<omgdc:Bounds x="415" y="115" width="50" height="50" /> | <omgdc:Bounds x="415" y="115" width="50" height="50" /> |
</bpmndi:BPMNShape> | </bpmndi:BPMNShape> |
<bpmndi:BPMNShape id="Activity_12k75ro_di" bpmnElement="Activity_12k75ro"> | <bpmndi:BPMNShape id="Activity_17g79ka_di" bpmnElement="Activity_17g79ka"> |
<omgdc:Bounds x="510" y="100" width="100" height="80" /> | <omgdc:Bounds x="500" y="100" width="100" height="80" /> |
</bpmndi:BPMNShape> | </bpmndi:BPMNShape> |
<bpmndi:BPMNShape id="Activity_1shfyzv_di" bpmnElement="Activity_1shfyzv"> | <bpmndi:BPMNShape id="Activity_0aev496_di" bpmnElement="Activity_0aev496"> |
<omgdc:Bounds x="50" y="100" width="100" height="80" /> | <omgdc:Bounds x="140" y="100" width="100" height="80" /> |
</bpmndi:BPMNShape> | </bpmndi:BPMNShape> |
<bpmndi:BPMNEdge id="Flow_1j6103k_di" bpmnElement="Flow_1j6103k"> | <bpmndi:BPMNEdge id="Flow_1j6103k_di" bpmnElement="Flow_1j6103k"> |
<omgdi:waypoint x="245" y="140" /> | <omgdi:waypoint x="190" y="180" /> |
<omgdi:waypoint x="415" y="140" /> | <omgdi:waypoint x="190" y="230" /> |
| <omgdi:waypoint x="280" y="230" /> |
</bpmndi:BPMNEdge> | </bpmndi:BPMNEdge> |
<bpmndi:BPMNEdge id="Flow_11o7ju9_di" bpmnElement="Flow_11o7ju9"> | <bpmndi:BPMNEdge id="Flow_11o7ju9_di" bpmnElement="Flow_11o7ju9"> |
<omgdi:waypoint x="220" y="115" /> | <omgdi:waypoint x="190" y="100" /> |
<omgdi:waypoint x="220" y="50" /> | <omgdi:waypoint x="190" y="50" /> |
<omgdi:waypoint x="280" y="50" /> | <omgdi:waypoint x="280" y="50" /> |
</bpmndi:BPMNEdge> | </bpmndi:BPMNEdge> |
<omgdi:waypoint x="440" y="115" /> | <omgdi:waypoint x="440" y="115" /> |
</bpmndi:BPMNEdge> | </bpmndi:BPMNEdge> |
<bpmndi:BPMNEdge id="Flow_078dw07_di" bpmnElement="Flow_078dw07"> | <bpmndi:BPMNEdge id="Flow_0m1z45m_di" bpmnElement="Flow_0m1z45m"> |
<omgdi:waypoint x="465" y="140" /> | <omgdi:waypoint x="380" y="230" /> |
<omgdi:waypoint x="510" y="140" /> | <omgdi:waypoint x="440" y="230" /> |
| <omgdi:waypoint x="440" y="165" /> |
</bpmndi:BPMNEdge> | </bpmndi:BPMNEdge> |
<bpmndi:BPMNEdge id="Flow_1fsbtjl_di" bpmnElement="Flow_1fsbtjl"> | <bpmndi:BPMNEdge id="Flow_1ei1tah_di" bpmnElement="Flow_1ei1tah"> |
<omgdi:waypoint x="150" y="140" /> | <omgdi:waypoint x="465" y="140" /> |
<omgdi:waypoint x="195" y="140" /> | <omgdi:waypoint x="500" y="140" /> |
</bpmndi:BPMNEdge> | </bpmndi:BPMNEdge> |
</bpmndi:BPMNPlane> | </bpmndi:BPMNPlane> |
</definitions> | </definitions> |
</bpmnio> | </bpmnio> |
===== ✘ Как НЕ надо ===== | |
| |
<bpmnio type="bpmn"> | <bpmnio type="bpmn"> |
</definitions> | </definitions> |
</bpmnio> | </bpmnio> |
===== Примечания ===== | |
| |
Тут дополнительные комментарии (этот раздел опционален) | <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_0ovu1hu"> |
| <exclusiveGateway id="Gateway_0appi3v"> |
| <incoming>Flow_1fsbtjl</incoming> |
| <outgoing>Flow_11o7ju9</outgoing> |
| <outgoing>Flow_1twaw3g</outgoing> |
| </exclusiveGateway> |
| <task id="Activity_0g79paa"> |
| <incoming>Flow_11o7ju9</incoming> |
| <outgoing>Flow_023qygd</outgoing> |
| </task> |
| <sequenceFlow id="Flow_11o7ju9" sourceRef="Gateway_0appi3v" targetRef="Activity_0g79paa" /> |
| <task id="Activity_1shfyzv"> |
| <outgoing>Flow_1fsbtjl</outgoing> |
| </task> |
| <sequenceFlow id="Flow_1fsbtjl" sourceRef="Activity_1shfyzv" targetRef="Gateway_0appi3v" /> |
| <sequenceFlow id="Flow_1twaw3g" sourceRef="Gateway_0appi3v" targetRef="Event_0fnzbqy" /> |
| <sequenceFlow id="Flow_023qygd" sourceRef="Activity_0g79paa" targetRef="Event_0fnzbqy" /> |
| <endEvent id="Event_0fnzbqy"> |
| <incoming>Flow_1twaw3g</incoming> |
| <incoming>Flow_023qygd</incoming> |
| </endEvent> |
| </process> |
| <bpmndi:BPMNDiagram id="BpmnDiagram_1"> |
| <bpmndi:BPMNPlane id="BpmnPlane_1" bpmnElement="Process_0ovu1hu"> |
| <bpmndi:BPMNShape id="Gateway_0appi3v_di" bpmnElement="Gateway_0appi3v" isMarkerVisible="true"> |
| <omgdc:Bounds x="195" y="115" width="50" height="50" /> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNShape id="Activity_0g79paa_di" bpmnElement="Activity_0g79paa"> |
| <omgdc:Bounds x="280" y="10" width="100" height="80" /> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNShape id="Activity_1shfyzv_di" bpmnElement="Activity_1shfyzv"> |
| <omgdc:Bounds x="50" y="100" width="100" height="80" /> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNShape id="Event_0fnzbqy_di" bpmnElement="Event_0fnzbqy"> |
| <omgdc:Bounds x="422" y="122" width="36" height="36" /> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNEdge id="Flow_11o7ju9_di" bpmnElement="Flow_11o7ju9"> |
| <omgdi:waypoint x="220" y="115" /> |
| <omgdi:waypoint x="220" y="50" /> |
| <omgdi:waypoint x="280" y="50" /> |
| </bpmndi:BPMNEdge> |
| <bpmndi:BPMNEdge id="Flow_1fsbtjl_di" bpmnElement="Flow_1fsbtjl"> |
| <omgdi:waypoint x="150" y="140" /> |
| <omgdi:waypoint x="195" y="140" /> |
| </bpmndi:BPMNEdge> |
| <bpmndi:BPMNEdge id="Flow_1twaw3g_di" bpmnElement="Flow_1twaw3g"> |
| <omgdi:waypoint x="245" y="140" /> |
| <omgdi:waypoint x="422" y="140" /> |
| </bpmndi:BPMNEdge> |
| <bpmndi:BPMNEdge id="Flow_023qygd_di" bpmnElement="Flow_023qygd"> |
| <omgdi:waypoint x="380" y="50" /> |
| <omgdi:waypoint x="440" y="50" /> |
| <omgdi:waypoint x="440" y="122" /> |
| </bpmndi:BPMNEdge> |
| </bpmndi:BPMNPlane> |
| </bpmndi:BPMNDiagram> |
| </definitions> |
| </bpmnio> |
| |
===== Исключения ===== | <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_0ovu1hu"> |
| <exclusiveGateway id="Gateway_0appi3v"> |
| <incoming>Flow_1fsbtjl</incoming> |
| <outgoing>Flow_11o7ju9</outgoing> |
| <outgoing>Flow_1twaw3g</outgoing> |
| </exclusiveGateway> |
| <task id="Activity_0g79paa"> |
| <incoming>Flow_11o7ju9</incoming> |
| <outgoing>Flow_08k1716</outgoing> |
| </task> |
| <sequenceFlow id="Flow_11o7ju9" sourceRef="Gateway_0appi3v" targetRef="Activity_0g79paa" /> |
| <task id="Activity_1shfyzv"> |
| <outgoing>Flow_1fsbtjl</outgoing> |
| </task> |
| <sequenceFlow id="Flow_1fsbtjl" sourceRef="Activity_1shfyzv" targetRef="Gateway_0appi3v" /> |
| <sequenceFlow id="Flow_1twaw3g" sourceRef="Gateway_0appi3v" targetRef="Event_0fnzbqy" /> |
| <endEvent id="Event_0fnzbqy"> |
| <incoming>Flow_1twaw3g</incoming> |
| </endEvent> |
| <endEvent id="Event_1pl2djm"> |
| <incoming>Flow_08k1716</incoming> |
| </endEvent> |
| <sequenceFlow id="Flow_08k1716" sourceRef="Activity_0g79paa" targetRef="Event_1pl2djm" /> |
| </process> |
| <bpmndi:BPMNDiagram id="BpmnDiagram_1"> |
| <bpmndi:BPMNPlane id="BpmnPlane_1" bpmnElement="Process_0ovu1hu"> |
| <bpmndi:BPMNShape id="Gateway_0appi3v_di" bpmnElement="Gateway_0appi3v" isMarkerVisible="true"> |
| <omgdc:Bounds x="195" y="115" width="50" height="50" /> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNShape id="Activity_0g79paa_di" bpmnElement="Activity_0g79paa"> |
| <omgdc:Bounds x="280" y="10" width="100" height="80" /> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNShape id="Activity_1shfyzv_di" bpmnElement="Activity_1shfyzv"> |
| <omgdc:Bounds x="50" y="100" width="100" height="80" /> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNShape id="Event_0fnzbqy_di" bpmnElement="Event_0fnzbqy"> |
| <omgdc:Bounds x="422" y="122" width="36" height="36" /> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNShape id="Event_1pl2djm_di" bpmnElement="Event_1pl2djm"> |
| <omgdc:Bounds x="422" y="32" width="36" height="36" /> |
| </bpmndi:BPMNShape> |
| <bpmndi:BPMNEdge id="Flow_11o7ju9_di" bpmnElement="Flow_11o7ju9"> |
| <omgdi:waypoint x="220" y="115" /> |
| <omgdi:waypoint x="220" y="50" /> |
| <omgdi:waypoint x="280" y="50" /> |
| </bpmndi:BPMNEdge> |
| <bpmndi:BPMNEdge id="Flow_1fsbtjl_di" bpmnElement="Flow_1fsbtjl"> |
| <omgdi:waypoint x="150" y="140" /> |
| <omgdi:waypoint x="195" y="140" /> |
| </bpmndi:BPMNEdge> |
| <bpmndi:BPMNEdge id="Flow_1twaw3g_di" bpmnElement="Flow_1twaw3g"> |
| <omgdi:waypoint x="245" y="140" /> |
| <omgdi:waypoint x="422" y="140" /> |
| </bpmndi:BPMNEdge> |
| <bpmndi:BPMNEdge id="Flow_08k1716_di" bpmnElement="Flow_08k1716"> |
| <omgdi:waypoint x="380" y="50" /> |
| <omgdi:waypoint x="422" y="50" /> |
| </bpmndi:BPMNEdge> |
| </bpmndi:BPMNPlane> |
| </bpmndi:BPMNDiagram> |
| </definitions> |
| </bpmnio> |
| ===== Примечания ===== |
| |
| Комбинация расходящейся развилки, сходящаяся развилки и альтернативных маршрутов между ними образуют структурный блок, который воспринимается без усилий и без ошибок. |
===== Смотри также ===== | ===== Смотри также ===== |
| |