Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
ru:rule:structured_diagram [2024-08-25 18:22] – [✘ Как НЕ надо] Anatoly Belaychukru:rule:structured_diagram [2024-11-27 15:47] (текущий) – [✘ Как НЕ надо] Anatoly Belaychuk
Строка 1: Строка 1:
-====== 0-TBD Используйте структурные блоки ======+====== Следуйте правилам структурного моделирования ======
  
-{{tag>untagged}} +{{tag>подпроцесс развилка цикл}}
- +
-{{:ru:v_razrabotke.png?nolink&200|}} +
- +
-Тут описание правила+
  
 +Используйте структурные блоки и подпроцессы.
 ===== ✔ Как надо ===== ===== ✔ Как надо =====
  
Строка 304: Строка 301:
 </bpmnio> </bpmnio>
 ===== ✘ Как НЕ надо ===== ===== ✘ Как НЕ надо =====
 +
 +Процесс зависнет на сходящейся параллельной развилке:
  
 <bpmnio type="bpmn"> <bpmnio type="bpmn">
 <?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
-<definitions +<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"> 
-    xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" +  <process id="Process_02spwhn"> 
-    xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" +    <parallelGateway id="Gateway_078sx6b"
-    xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" +      <outgoing>Flow_0e02mrs</outgoing> 
-    xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" +      <outgoing>Flow_0mh672n</outgoing
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +    </parallelGateway
-    id="sid-38422fae-e03e-43a3-bef4-bd33b32041b2" +    <task id="Activity_0aai754"> 
-    targetNamespace="http://bpmn.io/bpmn" exporter="http://bpmn.io" exporterVersion="0.10.1"> +      <incoming>Flow_0e02mrs</incoming
-    <collaboration id="Collaboration_1oh70al"> +      <outgoing>Flow_05ddike</outgoing> 
-        <participant id="Participant_1r8g02m" name="Добавить диаграмму BPMN" processRef="Process_1" /> +    </task
-    </collaboration+    <sequenceFlow id="Flow_0e02mrssourceRef="Gateway_078sx6b" targetRef="Activity_0aai754" /> 
-    <process id="Process_1" isExecutable="false"> +    <task id="Activity_120ghig"
-        <startEvent id="StartEvent_1" name="Start"+      <incoming>Flow_0mh672n</incoming> 
-        <outgoing>SequenceFlow_1</outgoing> +      <outgoing>Flow_0ny7lm8</outgoing> 
-        </startEvent+    </task> 
-        <task id="Task_1name="Do Something"+    <sequenceFlow id="Flow_0mh672nsourceRef="Gateway_078sx6btargetRef="Activity_120ghig/
-        <incoming>SequenceFlow_1</incoming+    <exclusiveGateway id="Gateway_1w2e8qr"> 
-        <incoming>SequenceFlow_121ul2c</incoming+      <incoming>Flow_0ny7lm8</incoming> 
-        <incoming>SequenceFlow_0nuwads</incoming> +      <outgoing>Flow_0s1uvcp</outgoing> 
-        <outgoing>SequenceFlow_2</outgoing> +      <outgoing>Flow_0j1b3ve</outgoing> 
-        </task> +    </exclusiveGateway> 
-        <exclusiveGateway id="ExclusiveGateway_1name="Result OKgatewayDirection="Diverging"> +    <sequenceFlow id="Flow_0ny7lm8sourceRef="Activity_120ghig" targetRef="Gateway_1w2e8qr" /> 
-        <incoming>SequenceFlow_2</incoming> +    <task id="Activity_0fkht20"> 
-        <outgoing>SequenceFlow_0snv4kp</outgoing> +      <incoming>Flow_0s1uvcp</incoming> 
-        <outgoing>SequenceFlow_0nuwads</outgoing> +      <outgoing>Flow_0fniklm</outgoing
-        </exclusiveGateway> +    </task> 
-        <task id="Task_17knw8lname="Monitor"+    <sequenceFlow id="Flow_0s1uvcp" sourceRef="Gateway_1w2e8qr" targetRef="Activity_0fkht20" /> 
-        <outgoing>SequenceFlow_121ul2c</outgoing+    <sequenceFlow id="Flow_05ddike" sourceRef="Activity_0aai754" targetRef="Gateway_1ueoerv" /> 
-        </task+    <sequenceFlow id="Flow_0j1b3ve" sourceRef="Gateway_1w2e8qr" targetRef="Gateway_1ueoerv" /> 
-        <endEvent id="EndEvent_0oj7l6x" name="End"> +    <sequenceFlow id="Flow_0fniklm" sourceRef="Activity_0fkht20" targetRef="Gateway_1ueoerv" /> 
-        <incoming>SequenceFlow_0snv4kp</incoming> +    <parallelGateway id="Gateway_1ueoerv"
-        </endEvent+      <incoming>Flow_05ddike</incoming> 
-        <sequenceFlow id="SequenceFlow_1" name="" sourceRef="StartEvent_1" targetRef="Task_1" /> +      <incoming>Flow_0j1b3ve</incoming> 
-        <sequenceFlow id="SequenceFlow_121ul2c" sourceRef="Task_17knw8l" targetRef="Task_1" /> +      <incoming>Flow_0fniklm</incoming
-        <sequenceFlow id="SequenceFlow_0nuwads" name="No" sourceRef="ExclusiveGateway_1" targetRef="Task_1" /> +    </parallelGateway> 
-        <sequenceFlow id="SequenceFlow_2" sourceRef="Task_1" targetRef="ExclusiveGateway_1" /> +  </process> 
-        <sequenceFlow id="SequenceFlow_0snv4kp" name="Yes" sourceRef="ExclusiveGateway_1" targetRef="EndEvent_0oj7l6x" /> +  <bpmndi:BPMNDiagram id="BpmnDiagram_1"> 
-    </process> +    <bpmndi:BPMNPlane id="BpmnPlane_1" bpmnElement="Process_02spwhn"> 
-        <bpmndi:BPMNDiagram id="BpmnDiagram_1"> +      <bpmndi:BPMNShape id="Gateway_15k0q64_di" bpmnElement="Gateway_078sx6b"> 
-        <bpmndi:BPMNPlane id="BpmnPlane_1" bpmnElement="Collaboration_1oh70al"> +        <omgdc:Bounds x="245" y="135" width="50" height="50" /> 
-        <bpmndi:BPMNShape id="Participant_1r8g02m_di" bpmnElement="Participant_1r8g02m"> +      </bpmndi:BPMNShape> 
-            <omgdc:Bounds x="104" y="78" width="668" height="297" /> +      <bpmndi:BPMNShape id="Activity_120ghig_di" bpmnElement="Activity_120ghig"> 
-        </bpmndi:BPMNShape> +        <omgdc:Bounds x="320" y="230" width="100" height="80" /> 
-        <bpmndi:BPMNShape id="StartEvent_1_gui" bpmnElement="StartEvent_1"> +      </bpmndi:BPMNShape> 
-            <omgdc:Bounds x="242" y="187" width="30" height="30" /> +      <bpmndi:BPMNShape id="Gateway_1w2e8qr_di" bpmnElement="Gateway_1w2e8qrisMarkerVisible="true"> 
-            <bpmndi:BPMNLabel> +        <omgdc:Bounds x="465" y="245" width="50" height="50" /> 
-            <omgdc:Bounds x="212" y="219" width="90" height="22" /> +      </bpmndi:BPMNShape> 
-            </bpmndi:BPMNLabel> +      <bpmndi:BPMNShape id="Activity_0fkht20_di" bpmnElement="Activity_0fkht20"> 
-        </bpmndi:BPMNShape> +        <omgdc:Bounds x="560" y="230" width="100" height="80" /> 
-        <bpmndi:BPMNShape id="Task_1_gui" bpmnElement="Task_1"+      </bpmndi:BPMNShape
-            <omgdc:Bounds x="340y="162" width="100" height="80" /+      <bpmndi:BPMNShape id="Gateway_17pm0bl_di" bpmnElement="Gateway_1ueoerv"> 
-            <bpmndi:BPMNLabel> +        <omgdc:Bounds x="585" y="135" width="50" height="50" /> 
-            <omgdc:Bounds x="118.85714721679688" y="47" width="82.28570556640625" height="12" /> +      </bpmndi:BPMNShape> 
-            </bpmndi:BPMNLabel> +      <bpmndi:BPMNShape id="Activity_0aai754_di" bpmnElement="Activity_0aai754"> 
-        </bpmndi:BPMNShape> +        <omgdc:Bounds x="320" y="50" width="100" height="80" /> 
-        <bpmndi:BPMNShape id="ExclusiveGateway_1_gui" bpmnElement="ExclusiveGateway_1" isMarkerVisible="true"> +      </bpmndi:BPMNShape> 
-            <omgdc:Bounds x="508" y="182" width="40" height="40" /> +      <bpmndi:BPMNEdge id="Flow_0e02mrs_di" bpmnElement="Flow_0e02mrs"> 
-            <bpmndi:BPMNLabel+        <omgdi:waypoint x="270" y="135/> 
-            <omgdc:Bounds x="483" y="234" width="90" height="24" /> +        <omgdi:waypoint x="270y="90" /> 
-            </bpmndi:BPMNLabel> +        <omgdi:waypoint x="320" y="90" /> 
-        </bpmndi:BPMNShape> +      </bpmndi:BPMNEdge
-        <bpmndi:BPMNShape id="Task_17knw8l_di" bpmnElement="Task_17knw8l"> +      <bpmndi:BPMNEdge id="Flow_0mh672n_di" bpmnElement="Flow_0mh672n"> 
-            <omgdc:Bounds x="340" y="275" width="100" height="80" /> +        <omgdi:waypoint x="270" y="185" /> 
-        </bpmndi:BPMNShape> +        <omgdi:waypoint x="270" y="270" /> 
-        <bpmndi:BPMNShape id="EndEvent_0oj7l6x_di" bpmnElement="EndEvent_0oj7l6x"> +        <omgdi:waypoint x="320" y="270" /> 
-            <omgdc:Bounds x="648" y="184width="36height="36" /> +      </bpmndi:BPMNEdge> 
-            <bpmndi:BPMNLabel> +      <bpmndi:BPMNEdge id="Flow_0ny7lm8_di" bpmnElement="Flow_0ny7lm8"> 
-            <omgdc:Bounds x="621" y="220" width="90" height="20" /> +        <omgdi:waypoint x="420" y="270" /> 
-            </bpmndi:BPMNLabel+        <omgdi:waypoint x="465" y="270" /> 
-        </bpmndi:BPMNShape> +      </bpmndi:BPMNEdge> 
-        <bpmndi:BPMNEdge id="SequenceFlow_1_gui" bpmnElement="SequenceFlow_1"> +      <bpmndi:BPMNEdge id="Flow_0s1uvcp_di" bpmnElement="Flow_0s1uvcp"> 
-            <omgdi:waypoint xsi:type="omgdc:Point" x="272" y="202" /> +        <omgdi:waypoint x="515" y="270" /> 
-            <omgdi:waypoint xsi:type="omgdc:Point" x="340" y="202" /> +        <omgdi:waypoint x="560" y="270" /> 
-            <bpmndi:BPMNLabel> +      </bpmndi:BPMNEdge> 
-            <omgdc:Bounds x="225" y="140" width="90" height="20" /> +      <bpmndi:BPMNEdge id="Flow_05ddike_dibpmnElement="Flow_05ddike"> 
-            </bpmndi:BPMNLabel> +        <omgdi:waypoint x="420" y="90" /> 
-        </bpmndi:BPMNEdge> +        <omgdi:waypoint x="610" y="90" /> 
-        <bpmndi:BPMNEdge id="SequenceFlow_121ul2c_di" bpmnElement="SequenceFlow_121ul2c"> +        <omgdi:waypoint x="610" y="135" /> 
-            <omgdi:waypoint xsi:type="omgdc:Point" x="390" y="275" /> +      </bpmndi:BPMNEdge> 
-            <omgdi:waypoint xsi:type="omgdc:Point" x="390" y="242" /> +      <bpmndi:BPMNEdge id="Flow_0j1b3ve_di" bpmnElement="Flow_0j1b3ve"> 
-            <bpmndi:BPMNLabel> +        <omgdi:waypoint x="490" y="245" /> 
-            <omgdc:Bounds x="358" y="273" width="90" height="20" /> +        <omgdi:waypoint x="490" y="160" /> 
-            </bpmndi:BPMNLabel> +        <omgdi:waypoint x="585" y="160" /> 
-        </bpmndi:BPMNEdge> +      </bpmndi:BPMNEdge> 
-        <bpmndi:BPMNEdge id="SequenceFlow_0nuwads_di" bpmnElement="SequenceFlow_0nuwads"> +      <bpmndi:BPMNEdge id="Flow_0fniklm_di" bpmnElement="Flow_0fniklm"> 
-            <omgdi:waypoint xsi:type="omgdc:Point" x="528" y="182" /> +        <omgdi:waypoint x="610" y="230" /> 
-            <omgdi:waypoint xsi:type="omgdc:Point" x="528" y="110" /> +        <omgdi:waypoint x="610" y="185" /> 
-            <omgdi:waypoint xsi:type="omgdc:Point" x="390" y="110" /> +      </bpmndi:BPMNEdge> 
-            <omgdi:waypoint xsi:type="omgdc:Point" x="390" y="162" /> +    </bpmndi:BPMNPlane> 
-            <bpmndi:BPMNLabel> +  </bpmndi:BPMNDiagram>
-            <omgdc:Bounds x="495" y="140" width="90" height="20" /> +
-            </bpmndi:BPMNLabel> +
-        </bpmndi:BPMNEdge> +
-        <bpmndi:BPMNEdge id="SequenceFlow_2_di" bpmnElement="SequenceFlow_2"> +
-            <omgdi:waypoint xsi:type="omgdc:Point" x="440" y="202" /> +
-            <omgdi:waypoint xsi:type="omgdc:Point" x="508" y="202" /> +
-            <bpmndi:BPMNLabel> +
-            <omgdc:Bounds x="433" y="192" width="90" height="20" /> +
-            </bpmndi:BPMNLabel> +
-        </bpmndi:BPMNEdge> +
-        <bpmndi:BPMNEdge id="SequenceFlow_0snv4kp_di" bpmnElement="SequenceFlow_0snv4kp"> +
-            <omgdi:waypoint xsi:type="omgdc:Point" x="548" y="202" /> +
-            <omgdi:waypoint xsi:type="omgdc:Point" x="648" y="202" /> +
-            <bpmndi:BPMNLabel> +
-            <omgdc:Bounds x="550" y="183" width="90" height="20" /> +
-            </bpmndi:BPMNLabel> +
-        </bpmndi:BPMNEdge> +
-        </bpmndi:BPMNPlane> +
-    </bpmndi:BPMNDiagram>+
 </definitions> </definitions>
 </bpmnio> </bpmnio>
Строка 421: Строка 401:
 ===== Примечания ===== ===== Примечания =====
  
-Фундаментом разработки программного обеспечения является [[https://ru.wikipedia.org/wiki/Структурное_программирование|структурное программирование]] - +Фундаментом разработки программного обеспечения является [[wpru>Структурное программирование]] - 
-набор правил, позволивший значительно облегчить понимание программного кода, сократить число ошибок, упростить отладку и последующую модификацию.+набор правил, благодаря которым облегчается понимание программного кода, сокращается число ошибок, упрощается отладка и последующая модификация.
 Структурное программирование запрещает произвольную передачу управления (оператор goto),  Структурное программирование запрещает произвольную передачу управления (оператор goto), 
-требуя компоновать программный код из структурных блоков последовательность, ветвление, цикл, которые могут вкладываться друг в друга.+требуя компоновать программный код из структурных блоков (последовательность, ветвление, цикл), которые могут вкладываться друг в друга.
 Кроме того, к принципам структурного программирования относится разработка сверху вниз и выделение повторяющихся фрагментов в подпрограммы (процедуры, функции). Кроме того, к принципам структурного программирования относится разработка сверху вниз и выделение повторяющихся фрагментов в подпрограммы (процедуры, функции).
  
-Модель бизнес-процесса является своего рода "программой", только не для компьютера, а для организации, и исходно существующей в виде диаграммы, а не сплошного кода. +Модель бизнес-процесса тоже является своего рода "программой", но только не для компьютера, а для организации, и существующей в виде диаграммы, а не текста программного кода. 
-Проблемы читаемости, легкости тестирования и последующей модификации для моделей процессов даже более актуальны, +Но проблемы читаемости, легкости тестирования и последующей модификации для моделей процессов даже более актуальны, 
 поскольку они должны быть понятны не только профессионалам (как в случае программного кода), но и людям бизнеса - владельцам, участникам и другим заинтересованным сторонам. поскольку они должны быть понятны не только профессионалам (как в случае программного кода), но и людям бизнеса - владельцам, участникам и другим заинтересованным сторонам.
  
-Принципы структурного программирования, доказавшие свою эффективность, можно и нужно применять и к моделированию процессов:+Поэтому принципы структурного программирования следует применять и к моделированию процессов, с учетом некоторых особенностей:
  
-  * аналогом goto здесь является поток управления, не следующий +  * набор структурных блоков здесь шире, см. [[#как надо]] 
-  * +  * аналогом goto здесь является поток управления, не являющийся элементом какого-либо структурного блока 
 +  * как и в структурном программировании, блоки могут вкладываться друг в друга 
 +  * как и в структурном программировании, моделировать процессы следует сверху вниз с использованием подпроцессов и вызовов повторно-используемых действий
  
 +В отличие от программирования, принципы структурного моделирования - это рекомендация, а не требования.
 +Бывают сценарии, когда от них можно отступить, если это позволяет адекватно отобразить сложную логику, сделать схему процесса более компактной и понятной, см. [[#исключения]].
 +Принципы структурного моделирования очерчивают для аналитика "безопасную зону": пока вы им следуете - 
 +в частности, у каждой расходящейся развилки есть парная к ней сходящаяся, и развилки аккуратно вложены одна в другую - вы можете быть уверены, что схема корректна.
 +Если приходится от этих принципах отступать, то ответственность за корректность и читаемость диаграммы полностью ложиться на вас, как на автора.
 +Такая гибкость является сильной стороной BPMN.
 +
 +Для сравнения, в нотации BPEL принципы структурного моделирования реализованы жестко - отступить от них невозможно технически.
 +Например, если у расходящейся развилки нет парной сходящейся, то такая модель в этой нотации будет синтаксически некорректной.
 +Из-за такой жесткости BPEL проиграл в популярности BPMN.
 +Оказалось, что авторы и пользователи графических схем процессов ценят возможность соединить потоком управления произвольные элементы на диаграмме, которую предоставляет BPMN.
 +Главное этой возможностью не злоупотреблять.
 ===== Исключения ===== ===== Исключения =====
  
-Исключения из указанного выше правила (если есть)+<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_1i233bj"> 
 +    <startEvent id="Event_163b7zd"> 
 +      <outgoing>Flow_0n8m9ix</outgoing> 
 +    </startEvent> 
 +    <task id="Activity_0hrif2x"> 
 +      <incoming>Flow_0n8m9ix</incoming> 
 +      <incoming>Flow_1xhg72f</incoming> 
 +      <outgoing>Flow_17pu7ob</outgoing> 
 +    </task> 
 +    <sequenceFlow id="Flow_0n8m9ix" sourceRef="Event_163b7zd" targetRef="Activity_0hrif2x" /> 
 +    <exclusiveGateway id="Gateway_16o8o9p"> 
 +      <incoming>Flow_17pu7ob</incoming> 
 +      <outgoing>Flow_13c21vj</outgoing> 
 +      <outgoing>Flow_0tg8ddl</outgoing> 
 +    </exclusiveGateway> 
 +    <sequenceFlow id="Flow_17pu7ob" sourceRef="Activity_0hrif2x" targetRef="Gateway_16o8o9p" /> 
 +    <task id="Activity_1clpbmc"> 
 +      <incoming>Flow_13c21vj</incoming> 
 +      <outgoing>Flow_0ehog1r</outgoing> 
 +    </task> 
 +    <sequenceFlow id="Flow_13c21vj" sourceRef="Gateway_16o8o9p" targetRef="Activity_1clpbmc" /> 
 +    <exclusiveGateway id="Gateway_14dqayh"> 
 +      <incoming>Flow_0ehog1r</incoming> 
 +      <outgoing>Flow_1gx84dc</outgoing> 
 +      <outgoing>Flow_106bg20</outgoing> 
 +    </exclusiveGateway> 
 +    <sequenceFlow id="Flow_0ehog1r" sourceRef="Activity_1clpbmc" targetRef="Gateway_14dqayh" /> 
 +    <endEvent id="Event_06rmoif"> 
 +      <incoming>Flow_1gx84dc</incoming> 
 +    </endEvent> 
 +    <sequenceFlow id="Flow_1gx84dc" sourceRef="Gateway_14dqayh" targetRef="Event_06rmoif" /> 
 +    <exclusiveGateway id="Gateway_1bkljxx"> 
 +      <incoming>Flow_0tg8ddl</incoming> 
 +      <incoming>Flow_106bg20</incoming> 
 +      <outgoing>Flow_1xhg72f</outgoing> 
 +    </exclusiveGateway> 
 +    <sequenceFlow id="Flow_0tg8ddl" sourceRef="Gateway_16o8o9p" targetRef="Gateway_1bkljxx" /> 
 +    <sequenceFlow id="Flow_106bg20" sourceRef="Gateway_14dqayh" targetRef="Gateway_1bkljxx" /> 
 +    <sequenceFlow id="Flow_1xhg72f" sourceRef="Gateway_1bkljxx" targetRef="Activity_0hrif2x" /> 
 +  </process> 
 +  <bpmndi:BPMNDiagram id="BpmnDiagram_1"> 
 +    <bpmndi:BPMNPlane id="BpmnPlane_1" bpmnElement="Process_1i233bj"> 
 +      <bpmndi:BPMNShape id="Activity_0hrif2x_di" bpmnElement="Activity_0hrif2x"> 
 +        <omgdc:Bounds x="320" y="80" width="100" height="80" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Gateway_16o8o9p_di" bpmnElement="Gateway_16o8o9p" isMarkerVisible="true"> 
 +        <omgdc:Bounds x="465" y="95" width="50" height="50" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Activity_1clpbmc_di" bpmnElement="Activity_1clpbmc"> 
 +        <omgdc:Bounds x="550" y="80" width="100" height="80" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Gateway_14dqayh_di" bpmnElement="Gateway_14dqayh" isMarkerVisible="true"> 
 +        <omgdc:Bounds x="685" y="95" width="50" height="50" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Event_06rmoif_di" bpmnElement="Event_06rmoif"> 
 +        <omgdc:Bounds x="772" y="102" width="36" height="36" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Gateway_1bkljxx_di" bpmnElement="Gateway_1bkljxx" isMarkerVisible="true"> 
 +        <omgdc:Bounds x="465" y="5" width="50" height="50" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Event_163b7zd_di" bpmnElement="Event_163b7zd"> 
 +        <omgdc:Bounds x="242" y="102" width="36" height="36" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNEdge id="Flow_0n8m9ix_di" bpmnElement="Flow_0n8m9ix"> 
 +        <omgdi:waypoint x="278" y="120" /> 
 +        <omgdi:waypoint x="320" y="120" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_17pu7ob_di" bpmnElement="Flow_17pu7ob"> 
 +        <omgdi:waypoint x="420" y="120" /> 
 +        <omgdi:waypoint x="465" y="120" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_13c21vj_di" bpmnElement="Flow_13c21vj"> 
 +        <omgdi:waypoint x="515" y="120" /> 
 +        <omgdi:waypoint x="550" y="120" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_0ehog1r_di" bpmnElement="Flow_0ehog1r"> 
 +        <omgdi:waypoint x="650" y="120" /> 
 +        <omgdi:waypoint x="685" y="120" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_1gx84dc_di" bpmnElement="Flow_1gx84dc"> 
 +        <omgdi:waypoint x="735" y="120" /> 
 +        <omgdi:waypoint x="772" y="120" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_0tg8ddl_di" bpmnElement="Flow_0tg8ddl"> 
 +        <omgdi:waypoint x="490" y="95" /> 
 +        <omgdi:waypoint x="490" y="55" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_106bg20_di" bpmnElement="Flow_106bg20"> 
 +        <omgdi:waypoint x="710" y="95" /> 
 +        <omgdi:waypoint x="710" y="30" /> 
 +        <omgdi:waypoint x="515" y="30" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_1xhg72f_di" bpmnElement="Flow_1xhg72f"> 
 +        <omgdi:waypoint x="465" y="30" /> 
 +        <omgdi:waypoint x="370" y="30" /> 
 +        <omgdi:waypoint x="370" y="80" /> 
 +      </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_1i233bj"> 
 +    <parallelGateway id="Gateway_0oi9i0o"> 
 +      <outgoing>Flow_0lj9dyc</outgoing> 
 +      <outgoing>Flow_00jrems</outgoing> 
 +    </parallelGateway> 
 +    <task id="Activity_1hal76q"> 
 +      <incoming>Flow_0lj9dyc</incoming> 
 +      <outgoing>Flow_071haj2</outgoing> 
 +    </task> 
 +    <sequenceFlow id="Flow_0lj9dyc" sourceRef="Gateway_0oi9i0o" targetRef="Activity_1hal76q" /> 
 +    <sequenceFlow id="Flow_071haj2" sourceRef="Activity_1hal76q" targetRef="Gateway_1l1jd6x" /> 
 +    <parallelGateway id="Gateway_1l1jd6x"> 
 +      <incoming>Flow_071haj2</incoming> 
 +      <outgoing>Flow_0f5trtv</outgoing> 
 +      <outgoing>Flow_0chqe1h</outgoing> 
 +    </parallelGateway> 
 +    <task id="Activity_0bj6qfa"> 
 +      <incoming>Flow_0f5trtv</incoming> 
 +      <outgoing>Flow_0enxt25</outgoing> 
 +    </task> 
 +    <sequenceFlow id="Flow_0f5trtv" sourceRef="Gateway_1l1jd6x" targetRef="Activity_0bj6qfa" /> 
 +    <sequenceFlow id="Flow_0enxt25" sourceRef="Activity_0bj6qfa" targetRef="Gateway_00n1v4l" /> 
 +    <parallelGateway id="Gateway_00n1v4l"> 
 +      <incoming>Flow_0enxt25</incoming> 
 +      <incoming>Flow_0k7r1mv</incoming> 
 +    </parallelGateway> 
 +    <task id="Activity_1lpdz6f"> 
 +      <incoming>Flow_00jrems</incoming> 
 +      <outgoing>Flow_1g2lqx6</outgoing> 
 +    </task> 
 +    <sequenceFlow id="Flow_00jrems" sourceRef="Gateway_0oi9i0o" targetRef="Activity_1lpdz6f" /> 
 +    <sequenceFlow id="Flow_1g2lqx6" sourceRef="Activity_1lpdz6f" targetRef="Gateway_0t27naq" /> 
 +    <parallelGateway id="Gateway_0t27naq"> 
 +      <incoming>Flow_1g2lqx6</incoming> 
 +      <incoming>Flow_0chqe1h</incoming> 
 +      <outgoing>Flow_05h70bw</outgoing> 
 +    </parallelGateway> 
 +    <task id="Activity_1w0cvhy"> 
 +      <incoming>Flow_05h70bw</incoming> 
 +      <outgoing>Flow_0k7r1mv</outgoing> 
 +    </task> 
 +    <sequenceFlow id="Flow_05h70bw" sourceRef="Gateway_0t27naq" targetRef="Activity_1w0cvhy" /> 
 +    <sequenceFlow id="Flow_0k7r1mv" sourceRef="Activity_1w0cvhy" targetRef="Gateway_00n1v4l" /> 
 +    <sequenceFlow id="Flow_0chqe1h" sourceRef="Gateway_1l1jd6x" targetRef="Gateway_0t27naq" /> 
 +  </process> 
 +  <bpmndi:BPMNDiagram id="BpmnDiagram_1"> 
 +    <bpmndi:BPMNPlane id="BpmnPlane_1" bpmnElement="Process_1i233bj"> 
 +      <bpmndi:BPMNShape id="Gateway_0dswxnz_di" bpmnElement="Gateway_0oi9i0o"> 
 +        <omgdc:Bounds x="255" y="125" width="50" height="50" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Gateway_0qpi0u3_di" bpmnElement="Gateway_00n1v4l"> 
 +        <omgdc:Bounds x="685" y="125" width="50" height="50" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Activity_1lpdz6f_di" bpmnElement="Activity_1lpdz6f"> 
 +        <omgdc:Bounds x="330" y="40" width="100" height="80" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Gateway_1i2ei57_di" bpmnElement="Gateway_0t27naq"> 
 +        <omgdc:Bounds x="475" y="55" width="50" height="50" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Activity_1w0cvhy_di" bpmnElement="Activity_1w0cvhy"> 
 +        <omgdc:Bounds x="560" y="40" width="100" height="80" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Activity_1hal76q_di" bpmnElement="Activity_1hal76q"> 
 +        <omgdc:Bounds x="330" y="180" width="100" height="80" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Gateway_0hggxgh_di" bpmnElement="Gateway_1l1jd6x"> 
 +        <omgdc:Bounds x="475" y="195" width="50" height="50" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Activity_0bj6qfa_di" bpmnElement="Activity_0bj6qfa"> 
 +        <omgdc:Bounds x="560" y="180" width="100" height="80" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNEdge id="Flow_00jrems_di" bpmnElement="Flow_00jrems"> 
 +        <omgdi:waypoint x="280" y="125" /> 
 +        <omgdi:waypoint x="280" y="80" /> 
 +        <omgdi:waypoint x="330" y="80" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_0k7r1mv_di" bpmnElement="Flow_0k7r1mv"> 
 +        <omgdi:waypoint x="660" y="80" /> 
 +        <omgdi:waypoint x="710" y="80" /> 
 +        <omgdi:waypoint x="710" y="125" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_0chqe1h_di" bpmnElement="Flow_0chqe1h"> 
 +        <omgdi:waypoint x="500" y="195" /> 
 +        <omgdi:waypoint x="500" y="105" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_0lj9dyc_di" bpmnElement="Flow_0lj9dyc"> 
 +        <omgdi:waypoint x="280" y="175" /> 
 +        <omgdi:waypoint x="280" y="220" /> 
 +        <omgdi:waypoint x="330" y="220" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_0enxt25_di" bpmnElement="Flow_0enxt25"> 
 +        <omgdi:waypoint x="660" y="220" /> 
 +        <omgdi:waypoint x="710" y="220" /> 
 +        <omgdi:waypoint x="710" y="175" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_1g2lqx6_di" bpmnElement="Flow_1g2lqx6"> 
 +        <omgdi:waypoint x="430" y="80" /> 
 +        <omgdi:waypoint x="475" y="80" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_05h70bw_di" bpmnElement="Flow_05h70bw"> 
 +        <omgdi:waypoint x="525" y="80" /> 
 +        <omgdi:waypoint x="560" y="80" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_071haj2_di" bpmnElement="Flow_071haj2"> 
 +        <omgdi:waypoint x="430" y="220" /> 
 +        <omgdi:waypoint x="475" y="220" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_0f5trtv_di" bpmnElement="Flow_0f5trtv"> 
 +        <omgdi:waypoint x="525" y="220" /> 
 +        <omgdi:waypoint x="560" y="220" /> 
 +      </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_1i233bj"> 
 +    <parallelGateway id="Gateway_0oi9i0o"> 
 +      <outgoing>Flow_0lj9dyc</outgoing> 
 +      <outgoing>Flow_00jrems</outgoing> 
 +    </parallelGateway> 
 +    <task id="Activity_1hal76q"> 
 +      <incoming>Flow_0lj9dyc</incoming> 
 +      <outgoing>Flow_071haj2</outgoing> 
 +    </task> 
 +    <sequenceFlow id="Flow_0lj9dyc" sourceRef="Gateway_0oi9i0o" targetRef="Activity_1hal76q" /> 
 +    <sequenceFlow id="Flow_071haj2" sourceRef="Activity_1hal76q" targetRef="Gateway_1l1jd6x" /> 
 +    <task id="Activity_1lpdz6f"> 
 +      <incoming>Flow_00jrems</incoming> 
 +      <outgoing>Flow_1g2lqx6</outgoing> 
 +    </task> 
 +    <sequenceFlow id="Flow_00jrems" sourceRef="Gateway_0oi9i0o" targetRef="Activity_1lpdz6f" /> 
 +    <sequenceFlow id="Flow_1g2lqx6" sourceRef="Activity_1lpdz6f" targetRef="Gateway_0t27naq" /> 
 +    <exclusiveGateway id="Gateway_1l1jd6x"> 
 +      <incoming>Flow_071haj2</incoming> 
 +      <outgoing>Flow_1dzriz5</outgoing> 
 +      <outgoing>Flow_1xcw0k4</outgoing> 
 +    </exclusiveGateway> 
 +    <exclusiveGateway id="Gateway_0t27naq"> 
 +      <incoming>Flow_1g2lqx6</incoming> 
 +      <outgoing>Flow_1w4p2q1</outgoing> 
 +      <outgoing>Flow_1ppaez3</outgoing> 
 +    </exclusiveGateway> 
 +    <sequenceFlow id="Flow_1w4p2q1" sourceRef="Gateway_0t27naq" targetRef="Event_1w42t7g" /> 
 +    <endEvent id="Event_1w42t7g"> 
 +      <incoming>Flow_1w4p2q1</incoming> 
 +      <incoming>Flow_1dzriz5</incoming> 
 +      <terminateEventDefinition id="TerminateEventDefinition_1unxigt" /> 
 +    </endEvent> 
 +    <sequenceFlow id="Flow_1dzriz5" sourceRef="Gateway_1l1jd6x" targetRef="Event_1w42t7g" /> 
 +    <sequenceFlow id="Flow_1ppaez3" sourceRef="Gateway_0t27naq" targetRef="Gateway_0k1m3o9" /> 
 +    <parallelGateway id="Gateway_0k1m3o9"> 
 +      <incoming>Flow_1ppaez3</incoming> 
 +      <incoming>Flow_1xcw0k4</incoming> 
 +    </parallelGateway> 
 +    <sequenceFlow id="Flow_1xcw0k4" sourceRef="Gateway_1l1jd6x" targetRef="Gateway_0k1m3o9" /> 
 +  </process> 
 +  <bpmndi:BPMNDiagram id="BpmnDiagram_1"> 
 +    <bpmndi:BPMNPlane id="BpmnPlane_1" bpmnElement="Process_1i233bj"> 
 +      <bpmndi:BPMNShape id="Gateway_0dswxnz_di" bpmnElement="Gateway_0oi9i0o"> 
 +        <omgdc:Bounds x="255" y="125" width="50" height="50" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Activity_1hal76q_di" bpmnElement="Activity_1hal76q"> 
 +        <omgdc:Bounds x="330" y="180" width="100" height="80" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Activity_1lpdz6f_di" bpmnElement="Activity_1lpdz6f"> 
 +        <omgdc:Bounds x="330" y="40" width="100" height="80" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Gateway_1yo9xyz_di" bpmnElement="Gateway_1l1jd6x" isMarkerVisible="true"> 
 +        <omgdc:Bounds x="475" y="195" width="50" height="50" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Gateway_0k3jdwc_di" bpmnElement="Gateway_0t27naq" isMarkerVisible="true"> 
 +        <omgdc:Bounds x="475" y="55" width="50" height="50" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Event_1syedrw_di" bpmnElement="Event_1w42t7g"> 
 +        <omgdc:Bounds x="482" y="132" width="36" height="36" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Gateway_1fuwhec_di" bpmnElement="Gateway_0k1m3o9"> 
 +        <omgdc:Bounds x="565" y="125" width="50" height="50" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNEdge id="Flow_0lj9dyc_di" bpmnElement="Flow_0lj9dyc"> 
 +        <omgdi:waypoint x="280" y="175" /> 
 +        <omgdi:waypoint x="280" y="220" /> 
 +        <omgdi:waypoint x="330" y="220" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_071haj2_di" bpmnElement="Flow_071haj2"> 
 +        <omgdi:waypoint x="430" y="220" /> 
 +        <omgdi:waypoint x="475" y="220" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_00jrems_di" bpmnElement="Flow_00jrems"> 
 +        <omgdi:waypoint x="280" y="125" /> 
 +        <omgdi:waypoint x="280" y="80" /> 
 +        <omgdi:waypoint x="330" y="80" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_1g2lqx6_di" bpmnElement="Flow_1g2lqx6"> 
 +        <omgdi:waypoint x="430" y="80" /> 
 +        <omgdi:waypoint x="475" y="80" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_1w4p2q1_di" bpmnElement="Flow_1w4p2q1"> 
 +        <omgdi:waypoint x="500" y="105" /> 
 +        <omgdi:waypoint x="500" y="132" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_1dzriz5_di" bpmnElement="Flow_1dzriz5"> 
 +        <omgdi:waypoint x="500" y="195" /> 
 +        <omgdi:waypoint x="500" y="168" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_1ppaez3_di" bpmnElement="Flow_1ppaez3"> 
 +        <omgdi:waypoint x="525" y="80" /> 
 +        <omgdi:waypoint x="590" y="80" /> 
 +        <omgdi:waypoint x="590" y="125" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_1xcw0k4_di" bpmnElement="Flow_1xcw0k4"> 
 +        <omgdi:waypoint x="525" y="220" /> 
 +        <omgdi:waypoint x="590" y="220" /> 
 +        <omgdi:waypoint x="590" y="175" /> 
 +      </bpmndi:BPMNEdge> 
 +    </bpmndi:BPMNPlane> 
 +  </bpmndi:BPMNDiagram> 
 +</definitions> 
 +</bpmnio>
  
 ===== Смотри также ===== ===== Смотри также =====
  
-Тут ссылки на страницы со схожим контентом (этот раздел опционален)+  * [[do_not_save_on_gateways]]
  
 ===== Автор(ы) ===== ===== Автор(ы) =====
  
-Тут подпись + --- //[[user:bell|Anatoly Belaychuk]] 2024-08-25 19:54//