Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
ru:rule:disconnected-flows [2024-01-30 01:21] – [Отредактирована диаграмма] Anatoly Belaychukru:rule:disconnected-flows [2024-08-22 20:40] (текущий) – [Несвязанные потоки управления не допускаются] Anatoly Belaychuk
Строка 1: Строка 1:
-====== 0-TBD Несвязанные потоки управления не допускаются ======+====== Несвязанные потоки управления не допускаются ======
  
-{{tag>поток_управления}} +{{tag>поток_управления пул}}
- +
-{{:ru:v_razrabotke.png?nolink&200|}} +
- +
-Тут описание правила+
  
 +Пул (если это не "черный ящик") изображает целостный поток работ одного процесса.
 ===== ✔ Как надо ===== ===== ✔ Как надо =====
  
Строка 86: Строка 83:
         <omgdi:waypoint x="480" y="145" />         <omgdi:waypoint x="480" y="145" />
         <omgdi:waypoint x="480" y="190" />         <omgdi:waypoint x="480" y="190" />
 +      </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_0iqa3w4">
 +    <subProcess id="Activity_09kp4hv">
 +      <startEvent id="Event_0p06cx8">
 +        <outgoing>Flow_14yr9cw</outgoing>
 +      </startEvent>
 +      <sequenceFlow id="Flow_14yr9cw" sourceRef="Event_0p06cx8" targetRef="Gateway_0jjot3n" />
 +      <parallelGateway id="Gateway_0jjot3n">
 +        <incoming>Flow_14yr9cw</incoming>
 +        <outgoing>Flow_0pal0rf</outgoing>
 +        <outgoing>Flow_1ahf9k9</outgoing>
 +        <outgoing>Flow_1bdy9co</outgoing>
 +      </parallelGateway>
 +      <task id="Activity_1g1octh">
 +        <incoming>Flow_0pal0rf</incoming>
 +        <outgoing>Flow_1rsbsvz</outgoing>
 +      </task>
 +      <sequenceFlow id="Flow_0pal0rf" sourceRef="Gateway_0jjot3n" targetRef="Activity_1g1octh" />
 +      <task id="Activity_17zmcwc">
 +        <incoming>Flow_1ahf9k9</incoming>
 +        <outgoing>Flow_0ht242j</outgoing>
 +      </task>
 +      <sequenceFlow id="Flow_1ahf9k9" sourceRef="Gateway_0jjot3n" targetRef="Activity_17zmcwc" />
 +      <task id="Activity_0lg8asy">
 +        <incoming>Flow_1bdy9co</incoming>
 +        <outgoing>Flow_02jnx7f</outgoing>
 +      </task>
 +      <sequenceFlow id="Flow_1bdy9co" sourceRef="Gateway_0jjot3n" targetRef="Activity_0lg8asy" />
 +      <sequenceFlow id="Flow_0ht242j" sourceRef="Activity_17zmcwc" targetRef="Gateway_03eb39x" />
 +      <parallelGateway id="Gateway_03eb39x">
 +        <incoming>Flow_0ht242j</incoming>
 +        <incoming>Flow_02jnx7f</incoming>
 +        <incoming>Flow_1rsbsvz</incoming>
 +        <outgoing>Flow_1upag9f</outgoing>
 +      </parallelGateway>
 +      <sequenceFlow id="Flow_02jnx7f" sourceRef="Activity_0lg8asy" targetRef="Gateway_03eb39x" />
 +      <sequenceFlow id="Flow_1rsbsvz" sourceRef="Activity_1g1octh" targetRef="Gateway_03eb39x" />
 +      <endEvent id="Event_1bdrdma">
 +        <incoming>Flow_1upag9f</incoming>
 +      </endEvent>
 +      <sequenceFlow id="Flow_1upag9f" sourceRef="Gateway_03eb39x" targetRef="Event_1bdrdma" />
 +    </subProcess>
 +  </process>
 +  <bpmndi:BPMNDiagram id="BpmnDiagram_1">
 +    <bpmndi:BPMNPlane id="BpmnPlane_1" bpmnElement="Process_0iqa3w4">
 +      <bpmndi:BPMNShape id="Activity_09kp4hv_di" bpmnElement="Activity_09kp4hv" isExpanded="true">
 +        <omgdc:Bounds x="270" y="30" width="450" height="380" />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Event_0p06cx8_di" bpmnElement="Event_0p06cx8">
 +        <omgdc:Bounds x="300" y="202" width="36" height="36" />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Gateway_1t00t6l_di" bpmnElement="Gateway_0jjot3n">
 +        <omgdc:Bounds x="365" y="195" width="50" height="50" />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Activity_17zmcwc_di" bpmnElement="Activity_17zmcwc">
 +        <omgdc:Bounds x="440" y="180" width="100" height="80" />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Activity_1g1octh_di" bpmnElement="Activity_1g1octh">
 +        <omgdc:Bounds x="440" y="70" width="100" height="80" />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Gateway_0jzklte_di" bpmnElement="Gateway_03eb39x">
 +        <omgdc:Bounds x="575" y="195" width="50" height="50" />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Event_1bdrdma_di" bpmnElement="Event_1bdrdma">
 +        <omgdc:Bounds x="652" y="202" width="36" height="36" />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Activity_0lg8asy_di" bpmnElement="Activity_0lg8asy">
 +        <omgdc:Bounds x="440" y="290" width="100" height="80" />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNEdge id="Flow_14yr9cw_di" bpmnElement="Flow_14yr9cw">
 +        <omgdi:waypoint x="336" y="220" />
 +        <omgdi:waypoint x="365" y="220" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_0pal0rf_di" bpmnElement="Flow_0pal0rf">
 +        <omgdi:waypoint x="390" y="195" />
 +        <omgdi:waypoint x="390" y="110" />
 +        <omgdi:waypoint x="440" y="110" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_1ahf9k9_di" bpmnElement="Flow_1ahf9k9">
 +        <omgdi:waypoint x="415" y="220" />
 +        <omgdi:waypoint x="440" y="220" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_1bdy9co_di" bpmnElement="Flow_1bdy9co">
 +        <omgdi:waypoint x="390" y="245" />
 +        <omgdi:waypoint x="390" y="330" />
 +        <omgdi:waypoint x="440" y="330" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_0ht242j_di" bpmnElement="Flow_0ht242j">
 +        <omgdi:waypoint x="540" y="220" />
 +        <omgdi:waypoint x="575" y="220" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_02jnx7f_di" bpmnElement="Flow_02jnx7f">
 +        <omgdi:waypoint x="540" y="330" />
 +        <omgdi:waypoint x="600" y="330" />
 +        <omgdi:waypoint x="600" y="245" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_1rsbsvz_di" bpmnElement="Flow_1rsbsvz">
 +        <omgdi:waypoint x="540" y="110" />
 +        <omgdi:waypoint x="600" y="110" />
 +        <omgdi:waypoint x="600" y="195" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_1upag9f_di" bpmnElement="Flow_1upag9f">
 +        <omgdi:waypoint x="625" y="220" />
 +        <omgdi:waypoint x="652" y="220" />
       </bpmndi:BPMNEdge>       </bpmndi:BPMNEdge>
     </bpmndi:BPMNPlane>     </bpmndi:BPMNPlane>
Строка 177: Строка 286:
         <omgdi:waypoint x="562" y="230" />         <omgdi:waypoint x="562" y="230" />
       </bpmndi:BPMNEdge>       </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: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_0as7h54">
 +    <subProcess id="Activity_1n7dwt1">
 +      <task id="Activity_0gegco7" />
 +      <task id="Activity_0zlljal" />
 +      <task id="Activity_1t3yfc3" />
 +    </subProcess>
 +  </process>
 +  <bpmndi:BPMNDiagram id="BpmnDiagram_1">
 +    <bpmndi:BPMNPlane id="BpmnPlane_1" bpmnElement="Process_0as7h54">
 +      <bpmndi:BPMNShape id="Activity_1n7dwt1_di" bpmnElement="Activity_1n7dwt1" isExpanded="true">
 +        <omgdc:Bounds x="150" y="10" width="200" height="380" />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Activity_0gegco7_di" bpmnElement="Activity_0gegco7">
 +        <omgdc:Bounds x="200" y="50" width="100" height="80" />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Activity_0zlljal_di" bpmnElement="Activity_0zlljal">
 +        <omgdc:Bounds x="200" y="160" width="100" height="80" />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Activity_1t3yfc3_di" bpmnElement="Activity_1t3yfc3">
 +        <omgdc:Bounds x="200" y="270" width="100" height="80" />
 +      </bpmndi:BPMNShape>
     </bpmndi:BPMNPlane>     </bpmndi:BPMNPlane>
   </bpmndi:BPMNDiagram>   </bpmndi:BPMNDiagram>
Строка 183: Строка 321:
  
 ===== Примечания ===== ===== Примечания =====
 +
 +Хотя спецификация 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//