Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
ru:rule:disconnected-flows [2024-08-21 21:14] – [✔ Как надо] Anatoly Belaychukru:rule:disconnected-flows [2024-08-22 20:40] (текущий) – [Несвязанные потоки управления не допускаются] Anatoly Belaychuk
Строка 1: Строка 1:
-====== 0-TBD Несвязанные потоки управления не допускаются ======+====== Несвязанные потоки управления не допускаются ======
  
 {{tag>поток_управления пул}} {{tag>поток_управления пул}}
  
-{{:ru:v_razrabotke.png?nolink&200|}} +Пул (если это не "черный ящик") изображает целостный поток работ одного процесса.
- +
-Пул (если это не "черный ящик") изображает неразрывный поток работ одного процесса.+
 ===== ✔ Как надо ===== ===== ✔ Как надо =====
  
Строка 93: Строка 91:
 <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_0iqa3w4"> 
-    xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" +    <subProcess id="Activity_09kp4hv"> 
-    xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" +      <startEvent id="Event_0p06cx8"> 
-    xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" +        <outgoing>Flow_14yr9cw</outgoing> 
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +      </startEvent> 
-    id="sid-38422fae-e03e-43a3-bef4-bd33b32041b2" +      <sequenceFlow id="Flow_14yr9cwsourceRef="Event_0p06cx8" targetRef="Gateway_0jjot3n" /> 
-    targetNamespace="http://bpmn.io/bpmn" exporter="http://bpmn.io" exporterVersion="0.10.1"> +      <parallelGateway id="Gateway_0jjot3n"> 
-    <collaboration id="Collaboration_1oh70al"+        <incoming>Flow_14yr9cw</incoming> 
-        <participant id="Participant_1r8g02m" name="Добавить диаграмму BPMN" processRef="Process_1" /+        <outgoing>Flow_0pal0rf</outgoing
-    </collaboration> +        <outgoing>Flow_1ahf9k9</outgoing
-    <process id="Process_1" isExecutable="false"> +        <outgoing>Flow_1bdy9co</outgoing> 
-        <startEvent id="StartEvent_1" name="Start"> +      </parallelGateway
-        <outgoing>SequenceFlow_1</outgoing> +      <task id="Activity_1g1octh"> 
-        </startEvent> +        <incoming>Flow_0pal0rf</incoming> 
-        <task id="Task_1name="Do Something"> +        <outgoing>Flow_1rsbsvz</outgoing> 
-        <incoming>SequenceFlow_1</incoming> +      </task
-        <incoming>SequenceFlow_121ul2c</incoming+      <sequenceFlow id="Flow_0pal0rf" sourceRef="Gateway_0jjot3n" targetRef="Activity_1g1octh" /> 
-        <incoming>SequenceFlow_0nuwads</incoming+      <task id="Activity_17zmcwc"
-        <outgoing>SequenceFlow_2</outgoing> +        <incoming>Flow_1ahf9k9</incoming
-        </task+        <outgoing>Flow_0ht242j</outgoing> 
-        <exclusiveGateway id="ExclusiveGateway_1" name="Result OK" gatewayDirection="Diverging"> +      </task> 
-        <incoming>SequenceFlow_2</incoming> +      <sequenceFlow id="Flow_1ahf9k9sourceRef="Gateway_0jjot3n" targetRef="Activity_17zmcwc" /> 
-        <outgoing>SequenceFlow_0snv4kp</outgoing> +      <task id="Activity_0lg8asy"> 
-        <outgoing>SequenceFlow_0nuwads</outgoing+        <incoming>Flow_1bdy9co</incoming> 
-        </exclusiveGateway+        <outgoing>Flow_02jnx7f</outgoing
-        <task id="Task_17knw8l" name="Monitor"> +      </task> 
-        <outgoing>SequenceFlow_121ul2c</outgoing> +      <sequenceFlow id="Flow_1bdy9co" sourceRef="Gateway_0jjot3n" targetRef="Activity_0lg8asy" /> 
-        </task> +      <sequenceFlow id="Flow_0ht242j" sourceRef="Activity_17zmcwc" targetRef="Gateway_03eb39x" /> 
-        <endEvent id="EndEvent_0oj7l6xname="End"> +      <parallelGateway id="Gateway_03eb39x"
-        <incoming>SequenceFlow_0snv4kp</incoming> +        <incoming>Flow_0ht242j</incoming> 
-        </endEvent+        <incoming>Flow_02jnx7f</incoming> 
-        <sequenceFlow id="SequenceFlow_1" name="" sourceRef="StartEvent_1" targetRef="Task_1" /> +        <incoming>Flow_1rsbsvz</incoming> 
-        <sequenceFlow id="SequenceFlow_121ul2c" sourceRef="Task_17knw8l" targetRef="Task_1" /> +        <outgoing>Flow_1upag9f</outgoing> 
-        <sequenceFlow id="SequenceFlow_0nuwadsname="No" sourceRef="ExclusiveGateway_1" targetRef="Task_1" /> +      </parallelGateway> 
-        <sequenceFlow id="SequenceFlow_2" sourceRef="Task_1" targetRef="ExclusiveGateway_1" /> +      <sequenceFlow id="Flow_02jnx7f" sourceRef="Activity_0lg8asy" targetRef="Gateway_03eb39x" /> 
-        <sequenceFlow id="SequenceFlow_0snv4kpname="Yes" sourceRef="ExclusiveGateway_1" targetRef="EndEvent_0oj7l6x" /> +      <sequenceFlow id="Flow_1rsbsvz" sourceRef="Activity_1g1octh" targetRef="Gateway_03eb39x" /> 
-    </process> +      <endEvent id="Event_1bdrdma"
-        <bpmndi:BPMNDiagram id="BpmnDiagram_1"> +        <incoming>Flow_1upag9f</incoming> 
-        <bpmndi:BPMNPlane id="BpmnPlane_1" bpmnElement="Collaboration_1oh70al"> +      </endEvent> 
-        <bpmndi:BPMNShape id="Participant_1r8g02m_di" bpmnElement="Participant_1r8g02m"> +      <sequenceFlow id="Flow_1upag9f" sourceRef="Gateway_03eb39x" targetRef="Event_1bdrdma" /> 
-            <omgdc:Bounds x="104" y="78" width="668" height="297" /> +    </subProcess> 
-        </bpmndi:BPMNShape> +  </process> 
-        <bpmndi:BPMNShape id="StartEvent_1_gui" bpmnElement="StartEvent_1"> +  <bpmndi:BPMNDiagram id="BpmnDiagram_1"> 
-            <omgdc:Bounds x="242" y="187" width="30" height="30" /> +    <bpmndi:BPMNPlane id="BpmnPlane_1" bpmnElement="Process_0iqa3w4"> 
-            <bpmndi:BPMNLabel+      <bpmndi:BPMNShape id="Activity_09kp4hv_di" bpmnElement="Activity_09kp4hv" isExpanded="true"> 
-            <omgdc:Bounds x="212" y="219" width="90" height="22" /> +        <omgdc:Bounds x="270" y="30" width="450" height="380" /> 
-            </bpmndi:BPMNLabel> +      </bpmndi:BPMNShape> 
-        </bpmndi:BPMNShape> +      <bpmndi:BPMNShape id="Event_0p06cx8_di" bpmnElement="Event_0p06cx8"> 
-        <bpmndi:BPMNShape id="Task_1_gui" bpmnElement="Task_1"> +        <omgdc:Bounds x="300" y="202" width="36" height="36" /> 
-            <omgdc:Bounds x="340" y="162" width="100" height="80" /> +      </bpmndi:BPMNShape
-            <bpmndi:BPMNLabel+      <bpmndi:BPMNShape id="Gateway_1t00t6l_di" bpmnElement="Gateway_0jjot3n"> 
-            <omgdc:Bounds x="118.85714721679688" y="47" width="82.28570556640625" height="12" /> +        <omgdc:Bounds x="365" y="195" width="50" height="50" /> 
-            </bpmndi:BPMNLabel> +      </bpmndi:BPMNShape> 
-        </bpmndi:BPMNShape> +      <bpmndi:BPMNShape id="Activity_17zmcwc_di" bpmnElement="Activity_17zmcwc"> 
-        <bpmndi:BPMNShape id="ExclusiveGateway_1_gui" bpmnElement="ExclusiveGateway_1" isMarkerVisible="true"> +        <omgdc:Bounds x="440" y="180" width="100" height="80" /> 
-            <omgdc:Bounds x="508" y="182" width="40" height="40" /> +      </bpmndi:BPMNShape
-            <bpmndi:BPMNLabel+      <bpmndi:BPMNShape id="Activity_1g1octh_di" bpmnElement="Activity_1g1octh"> 
-            <omgdc:Bounds x="483" y="234" width="90" height="24" /> +        <omgdc:Bounds x="440" y="70" width="100" height="80" /> 
-            </bpmndi:BPMNLabel> +      </bpmndi:BPMNShape> 
-        </bpmndi:BPMNShape> +      <bpmndi:BPMNShape id="Gateway_0jzklte_di" bpmnElement="Gateway_03eb39x"> 
-        <bpmndi:BPMNShape id="Task_17knw8l_di" bpmnElement="Task_17knw8l"> +        <omgdc:Bounds x="575" y="195" width="50" height="50" /> 
-            <omgdc:Bounds x="340" y="275" width="100" height="80" /> +      </bpmndi:BPMNShape
-        </bpmndi:BPMNShape> +      <bpmndi:BPMNShape id="Event_1bdrdma_di" bpmnElement="Event_1bdrdma"> 
-        <bpmndi:BPMNShape id="EndEvent_0oj7l6x_di" bpmnElement="EndEvent_0oj7l6x"> +        <omgdc:Bounds x="652" y="202" width="36" height="36" /> 
-            <omgdc:Bounds x="648" y="184" width="36" height="36" /> +      </bpmndi:BPMNShape> 
-            <bpmndi:BPMNLabel> +      <bpmndi:BPMNShape id="Activity_0lg8asy_di" bpmnElement="Activity_0lg8asy"> 
-            <omgdc:Bounds x="621" y="220" width="90" height="20" /> +        <omgdc:Bounds x="440" y="290" width="100" height="80" /> 
-            </bpmndi:BPMNLabel+      </bpmndi:BPMNShape> 
-        </bpmndi:BPMNShape> +      <bpmndi:BPMNEdge id="Flow_14yr9cw_di" bpmnElement="Flow_14yr9cw"> 
-        <bpmndi:BPMNEdge id="SequenceFlow_1_gui" bpmnElement="SequenceFlow_1"> +        <omgdi:waypoint x="336" y="220" /> 
-            <omgdi:waypoint xsi:type="omgdc:Point" x="272" y="202" /> +        <omgdi:waypoint x="365" y="220" /> 
-            <omgdi:waypoint xsi:type="omgdc:Point" x="340" y="202" /> +      </bpmndi:BPMNEdge
-            <bpmndi:BPMNLabel+      <bpmndi:BPMNEdge id="Flow_0pal0rf_di" bpmnElement="Flow_0pal0rf"> 
-            <omgdc:Bounds x="225y="140width="90height="20" /> +        <omgdi:waypoint x="390" y="195" /> 
-            </bpmndi:BPMNLabel+        <omgdi:waypoint x="390" y="110" /> 
-        </bpmndi:BPMNEdge> +        <omgdi:waypoint x="440" y="110" /> 
-        <bpmndi:BPMNEdge id="SequenceFlow_121ul2c_di" bpmnElement="SequenceFlow_121ul2c"> +      </bpmndi:BPMNEdge
-            <omgdi:waypoint xsi:type="omgdc:Point" x="390" y="275" /> +      <bpmndi:BPMNEdge id="Flow_1ahf9k9_dibpmnElement="Flow_1ahf9k9"
-            <omgdi:waypoint xsi:type="omgdc:Point" x="390" y="242" /> +        <omgdi:waypoint x="415y="220" /> 
-            <bpmndi:BPMNLabel> +        <omgdi:waypoint x="440" y="220" /> 
-            <omgdc:Bounds x="358" y="273" width="90" height="20" /> +      </bpmndi:BPMNEdge> 
-            </bpmndi:BPMNLabel> +      <bpmndi:BPMNEdge id="Flow_1bdy9co_di" bpmnElement="Flow_1bdy9co"> 
-        </bpmndi:BPMNEdge> +        <omgdi:waypoint x="390" y="245" /> 
-        <bpmndi:BPMNEdge id="SequenceFlow_0nuwads_di" bpmnElement="SequenceFlow_0nuwads"> +        <omgdi:waypoint x="390" y="330" /> 
-            <omgdi:waypoint xsi:type="omgdc:Point" x="528" y="182" /> +        <omgdi:waypoint x="440" y="330" /> 
-            <omgdi:waypoint xsi:type="omgdc:Point" x="528" y="110" /> +      </bpmndi:BPMNEdge> 
-            <omgdi:waypoint xsi:type="omgdc:Point" x="390" y="110" /> +      <bpmndi:BPMNEdge id="Flow_0ht242j_di" bpmnElement="Flow_0ht242j"> 
-            <omgdi:waypoint xsi:type="omgdc:Point" x="390" y="162" /> +        <omgdi:waypoint x="540" y="220" /> 
-            <bpmndi:BPMNLabel> +        <omgdi:waypoint x="575" y="220" /> 
-            <omgdc:Bounds x="495" y="140" width="90" height="20" /> +      </bpmndi:BPMNEdge> 
-            </bpmndi:BPMNLabel> +      <bpmndi:BPMNEdge id="Flow_02jnx7f_di" bpmnElement="Flow_02jnx7f"> 
-        </bpmndi:BPMNEdge> +        <omgdi:waypoint x="540" y="330" /> 
-        <bpmndi:BPMNEdge id="SequenceFlow_2_di" bpmnElement="SequenceFlow_2"> +        <omgdi:waypoint x="600" y="330" /> 
-            <omgdi:waypoint xsi:type="omgdc:Point" x="440" y="202" /> +        <omgdi:waypoint x="600" y="245" /> 
-            <omgdi:waypoint xsi:type="omgdc:Point" x="508" y="202" /> +      </bpmndi:BPMNEdge> 
-            <bpmndi:BPMNLabel> +      <bpmndi:BPMNEdge id="Flow_1rsbsvz_di" bpmnElement="Flow_1rsbsvz"> 
-            <omgdc:Bounds x="433" y="192" width="90" height="20" /> +        <omgdi:waypoint x="540" y="110" /> 
-            </bpmndi:BPMNLabel> +        <omgdi:waypoint x="600" y="110" /> 
-        </bpmndi:BPMNEdge> +        <omgdi:waypoint x="600" y="195" /> 
-        <bpmndi:BPMNEdge id="SequenceFlow_0snv4kp_di" bpmnElement="SequenceFlow_0snv4kp"> +      </bpmndi:BPMNEdge> 
-            <omgdi:waypoint xsi:type="omgdc:Point" x="548" y="202" /> +      <bpmndi:BPMNEdge id="Flow_1upag9f_di" bpmnElement="Flow_1upag9f"> 
-            <omgdi:waypoint xsi:type="omgdc:Point" x="648" y="202" /> +        <omgdi:waypoint x="625" y="220" /> 
-            <bpmndi:BPMNLabel> +        <omgdi:waypoint x="652" y="220" /> 
-            <omgdc:Bounds x="550" y="183" width="90" height="20" /> +      </bpmndi:BPMNEdge> 
-            </bpmndi:BPMNLabel> +    </bpmndi:BPMNPlane> 
-        </bpmndi:BPMNEdge> +  </bpmndi:BPMNDiagram>
-        </bpmndi:BPMNPlane> +
-    </bpmndi:BPMNDiagram>+
 </definitions> </definitions>
 </bpmnio> </bpmnio>
Строка 326: Строка 322:
 ===== Примечания ===== ===== Примечания =====
  
 +Хотя спецификация BPMN 2.0 не запрещает несвязные потоки управления в рамках одного пула, это плохая практика.
  
 У процесса может быть больше одного начального и больше одного конечного события, но все они должны быть связаны потокам управления в единый поток работ. У процесса может быть больше одного начального и больше одного конечного события, но все они должны быть связаны потокам управления в единый поток работ.
  
 +Подпроцесс "параллельный блок" ("как не надо", внизу) лучше не использовать, а явно показывать параллельное расхождение и схождение ("как надо", внизу).
 ===== Исключения ===== ===== Исключения =====
 +
 +Подпроцесс "для данного случая" (ad-hoc):
  
 <bpmnio type="bpmn"> <bpmnio type="bpmn">
 <?xml version="1.0" encoding="UTF-8"?> <?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">+<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/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_04qhr60">   <process id="Process_04qhr60">
-    <subProcess id="Activity_0hvvgum"> +    <adHocSubProcess id="Activity_0hvvgum"> 
-      <task id="Activity_1o88uzt" name="A1" /> +      <task id="Activity_1o88uzt" /> 
-      <task id="Activity_09epmjb" name="B1"> +      <task id="Activity_09epmjb" /> 
-        <outgoing>Flow_0e0mlir</outgoing> +      <task id="Activity_06t8j73" /> 
-      </task+      <task id="Activity_0d33emt" /> 
-      <task id="Activity_102mcnaname="B2"> +    </adHocSubProcess>
-        <incoming>Flow_0e0mlir</incoming+
-      </task+
-      <sequenceFlow id="Flow_0e0mlir" sourceRef="Activity_09epmjb" targetRef="Activity_102mcna" /> +
-    </subProcess>+
   </process>   </process>
   <bpmndi:BPMNDiagram id="BpmnDiagram_1">   <bpmndi:BPMNDiagram id="BpmnDiagram_1">
     <bpmndi:BPMNPlane id="BpmnPlane_1" bpmnElement="Process_04qhr60">     <bpmndi:BPMNPlane id="BpmnPlane_1" bpmnElement="Process_04qhr60">
-      <bpmndi:BPMNShape id="Activity_0hvvgum_di" bpmnElement="Activity_0hvvgum" isExpanded="true"> +      <bpmndi:BPMNShape id="Activity_054xru4_di" bpmnElement="Activity_0hvvgum" isExpanded="true"> 
-        <omgdc:Bounds x="310" y="110" width="350" height="270" />+        <omgdc:Bounds x="330" y="110" width="320" height="270" />
       </bpmndi:BPMNShape>       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="Activity_1o88uzt_di" bpmnElement="Activity_1o88uzt">       <bpmndi:BPMNShape id="Activity_1o88uzt_di" bpmnElement="Activity_1o88uzt">
         <omgdc:Bounds x="370" y="150" width="100" height="80" />         <omgdc:Bounds x="370" y="150" width="100" height="80" />
-        <bpmndi:BPMNLabel /> 
       </bpmndi:BPMNShape>       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="Activity_09epmjb_di" bpmnElement="Activity_09epmjb">       <bpmndi:BPMNShape id="Activity_09epmjb_di" bpmnElement="Activity_09epmjb">
         <omgdc:Bounds x="370" y="260" width="100" height="80" />         <omgdc:Bounds x="370" y="260" width="100" height="80" />
-        <bpmndi:BPMNLabel /> 
       </bpmndi:BPMNShape>       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="Activity_102mcna_di" bpmnElement="Activity_102mcna">+      <bpmndi:BPMNShape id="Activity_06t8j73_di" bpmnElement="Activity_06t8j73"> 
 +        <omgdc:Bounds x="510" y="150" width="100" height="80" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Activity_0d33emt_di" bpmnElement="Activity_0d33emt">
         <omgdc:Bounds x="510" y="260" width="100" height="80" />         <omgdc:Bounds x="510" y="260" width="100" height="80" />
-        <bpmndi:BPMNLabel /> 
       </bpmndi:BPMNShape>       </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="Flow_0e0mlir_di" bpmnElement="Flow_0e0mlir"> 
-        <omgdi:waypoint x="470" y="300" /> 
-        <omgdi:waypoint x="510" y="300" /> 
-      </bpmndi:BPMNEdge> 
     </bpmndi:BPMNPlane>     </bpmndi:BPMNPlane>
   </bpmndi:BPMNDiagram>   </bpmndi:BPMNDiagram>
 </definitions> </definitions>
 </bpmnio> </bpmnio>
- 
-===== Смотри также ===== 
- 
-Тут ссылки на страницы со схожим контентом (этот раздел опционален) 
  
 ===== Автор(ы) ===== ===== Автор(ы) =====
  
 --- //[[user:bell|Anatoly Belaychuk]] 2024-02-23 19:05// --- //[[user:bell|Anatoly Belaychuk]] 2024-02-23 19:05//