Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия |
ru:rule:disconnected-flows [2024-08-21 21:14] – [✔ Как надо] Anatoly Belaychuk | ru:rule:disconnected-flows [2024-08-22 20:40] (текущий) – [Несвязанные потоки управления не допускаются] Anatoly Belaychuk |
---|
====== 0-TBD Несвязанные потоки управления не допускаются ====== | ====== Несвязанные потоки управления не допускаются ====== |
| |
{{tag>поток_управления пул}} | {{tag>поток_управления пул}} |
| |
{{:ru:v_razrabotke.png?nolink&200|}} | Пул (если это не "черный ящик") изображает целостный поток работ одного процесса. |
| |
Пул (если это не "черный ящик") изображает неразрывный поток работ одного процесса. | |
===== ✔ Как надо ===== | ===== ✔ Как надо ===== |
| |
<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_14yr9cw" sourceRef="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_1" name="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_1ahf9k9" sourceRef="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_0oj7l6x" name="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_0nuwads" name="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_0snv4kp" name="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="225" y="140" width="90" height="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_di" bpmnElement="Flow_1ahf9k9"> |
<omgdi:waypoint xsi:type="omgdc:Point" x="390" y="242" /> | <omgdi:waypoint x="415" y="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> |
===== Примечания ===== | ===== Примечания ===== |
| |
| Хотя спецификация 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_102mcna" name="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// |