Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
ru:rule:external_event [2024-08-27 17:36] – [Редактировать диаграмму] Anatoly Belaychukru:rule:external_event [2024-10-05 13:31] (текущий) – [Моделируйте обработку события, инициированного внешним участником, отдельным процессом] Anatoly Belaychuk
Строка 1: Строка 1:
-====== 0-TBD Моделируйте реакцию на событие, инициируемое внешним участником, отдельным процессом ======+====== Моделируйте обработку события, инициированного внешним участником, отдельным процессом ======
  
-{{tag>ru-процесс}}+{{tag>процесс-ru взаимодействие}}
  
-{{:ru:v_razrabotke.png?nolink&200|}} +В момент, когда происходит внешнее событие (например, приходит груз от поставщика), оно еще не привязано к контексту (заказ, по которому осуществляется доставка). 
- +Это значит, что внешнее событие нельзя обработать в рамках экземпляра уже запущенного процесса (у нас множество заказов, ожидающих доставки) -  
-Краткое описание правила.+следовательно, его следует обрабатывать стартовым событием отдельного процесса-обработчика (не путать с подпроцессом-обработчиком).
  
 ===== ✔ Как надо ===== ===== ✔ Как надо =====
Строка 11: Строка 11:
 <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:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" 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" +  <collaboration id="Collaboration_0g7t6mq"> 
-    xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" +    <participant id="Participant_144acff" name="От потребности до закупки" processRef="Process_1" /> 
-    xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" +    <participant id="Participant_04mf8ql" name="Приемка товара от поставщика" processRef="Process_0ath8fq" /> 
-    xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" +    <messageFlow id="Flow_06phhio" sourceRef="Event_12lad3v" targetRef="Event_1nu1su1" /> 
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +  </collaboration> 
-    id="sid-38422fae-e03e-43a3-bef4-bd33b32041b2" +  <process id="Process_1" isExecutable="false"> 
-    targetNamespace="http://bpmn.io/bpmn" exporter="http://bpmn.io" exporterVersion="0.10.1">Паттерны (диаграммы). +    <task id="Activity_0xko542" name="..."> 
-  <bpmn:process id="Process_1" isExecutable="false"> +      <incoming>Flow_0fqr94i</incoming> 
-    <bpmn:startEvent id="StartEvent_1" /> +      <outgoing>Flow_1qzqmrm</outgoing> 
-  </bpmn:process>+      <dataOutputAssociation id="DataOutputAssociation_1sbeyu0"> 
 +        <targetRef>DataStoreReference_0ptgekw</targetRef> 
 +      </dataOutputAssociation> 
 +    </task> 
 +    <sequenceFlow id="Flow_0fqr94i" sourceRef="Event_1ng94pf" targetRef="Activity_0xko542" /> 
 +    <sequenceFlow id="Flow_1qzqmrm" sourceRef="Activity_0xko542" targetRef="Event_1nu1su1" /> 
 +    <intermediateCatchEvent id="Event_1nu1su1" name="Товар принят"> 
 +      <incoming>Flow_1qzqmrm</incoming> 
 +      <outgoing>Flow_0mvecfq</outgoing> 
 +      <messageEventDefinition id="MessageEventDefinition_1lzzfm9" /> 
 +    </intermediateCatchEvent> 
 +    <startEvent id="Event_1ng94pf"
 +      <outgoing>Flow_0fqr94i</outgoing> 
 +    </startEvent> 
 +    <sequenceFlow id="Flow_0mvecfq" sourceRef="Event_1nu1su1" targetRef="Activity_1ashtyk" /> 
 +    <sequenceFlow id="Flow_1uu5pmf" sourceRef="Activity_1ashtyk" targetRef="Event_1kmjuhs" /> 
 +    <dataStoreReference id="DataStoreReference_0ptgekw" name="Заказы на закупку" /> 
 +    <task id="Activity_1ashtyk" name="..."> 
 +      <incoming>Flow_0mvecfq</incoming> 
 +      <outgoing>Flow_1uu5pmf</outgoing> 
 +    </task> 
 +    <endEvent id="Event_1kmjuhs"> 
 +      <incoming>Flow_1uu5pmf</incoming> 
 +    </endEvent> 
 +  </process> 
 +  <process id="Process_0ath8fq"> 
 +    <startEvent id="Event_0djxenp" name="Товар доставлен"> 
 +      <outgoing>Flow_0za1h4b</outgoing> 
 +    </startEvent> 
 +    <sequenceFlow id="Flow_0za1h4b" sourceRef="Event_0djxenp" targetRef="Activity_16ezjxr" /> 
 +    <sequenceFlow id="Flow_12cq0dp" sourceRef="Activity_16ezjxr" targetRef="Gateway_1gih9c0" /> 
 +    <sequenceFlow id="Flow_1or7fxn" name="нет" sourceRef="Gateway_1m9hhay" targetRef="Event_1lai5qt" /> 
 +    <task id="Activity_1eay84c" name="Проверить качество и количество"> 
 +      <incoming>Flow_0g7l5fa</incoming> 
 +      <outgoing>Flow_0xz7y35</outgoing> 
 +    </task> 
 +    <sequenceFlow id="Flow_0g7l5fa" name="да" sourceRef="Gateway_1gih9c0" targetRef="Activity_1eay84c" /> 
 +    <exclusiveGateway id="Gateway_1m9hhay" name="В порядке?"> 
 +      <incoming>Flow_0xz7y35</incoming> 
 +      <outgoing>Flow_1or7fxn</outgoing> 
 +      <outgoing>Flow_1l6vlkb</outgoing> 
 +    </exclusiveGateway> 
 +    <sequenceFlow id="Flow_0xz7y35" sourceRef="Activity_1eay84c" targetRef="Gateway_1m9hhay" /> 
 +    <endEvent id="Event_1lai5qt" name="Товар не принят"> 
 +      <incoming>Flow_1or7fxn</incoming> 
 +    </endEvent> 
 +    <sequenceFlow id="Flow_14lwxg3" name="нет" sourceRef="Gateway_1gih9c0" targetRef="Event_1xx98wd" /> 
 +    <sequenceFlow id="Flow_1l6vlkb" name="да" sourceRef="Gateway_1m9hhay" targetRef="Event_12lad3v" /> 
 +    <endEvent id="Event_12lad3v" name="Товар принят"> 
 +      <incoming>Flow_1l6vlkb</incoming> 
 +      <messageEventDefinition id="MessageEventDefinition_0ypnf1d" /> 
 +    </endEvent> 
 +    <task id="Activity_16ezjxr" name="Идентифицировать заказ"> 
 +      <incoming>Flow_0za1h4b</incoming> 
 +      <outgoing>Flow_12cq0dp</outgoing> 
 +      <property id="Property_1tojodc" name="__targetRef_placeholder" /> 
 +      <dataInputAssociation id="DataInputAssociation_0rbyde0"> 
 +        <sourceRef>DataStoreReference_0ptgekw</sourceRef> 
 +        <targetRef>Property_1tojodc</targetRef> 
 +      </dataInputAssociation> 
 +    </task> 
 +    <exclusiveGateway id="Gateway_1gih9c0" name="Есть заказ на закупку?"> 
 +      <incoming>Flow_12cq0dp</incoming> 
 +      <outgoing>Flow_0g7l5fa</outgoing> 
 +      <outgoing>Flow_14lwxg3</outgoing> 
 +    </exclusiveGateway> 
 +    <endEvent id="Event_1xx98wd" name="Ошибочная доставка"> 
 +      <incoming>Flow_14lwxg3</incoming> 
 +    </endEvent
 +  </process>
   <bpmndi:BPMNDiagram id="BPMNDiagram_1">   <bpmndi:BPMNDiagram id="BPMNDiagram_1">
-    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_1"> +    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Collaboration_0g7t6mq"> 
-      <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1"> +      <bpmndi:BPMNShape id="Participant_144acff_di" bpmnElement="Participant_144acff" isHorizontal="true"> 
-        <dc:Bounds x="156" y="82" width="36" height="36" />+        <omgdc:Bounds x="30" y="130" width="570" height="160" /> 
 +        <bpmndi:BPMNLabel /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Activity_0xko542_di" bpmnElement="Activity_0xko542"> 
 +        <omgdc:Bounds x="170" y="170" width="100" height="80" /> 
 +        <bpmndi:BPMNLabel /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Event_0r0qs2b_di" bpmnElement="Event_1nu1su1"> 
 +        <omgdc:Bounds x="312" y="192" width="36" height="36" /
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="289" y="168" width="81" height="14" /> 
 +        </bpmndi:BPMNLabel> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Event_1ng94pf_di" bpmnElement="Event_1ng94pf"> 
 +        <omgdc:Bounds x="92" y="192" width="36" height="36" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Activity_1ashtyk_di" bpmnElement="Activity_1ashtyk"> 
 +        <omgdc:Bounds x="390" y="170" width="100" height="80" /> 
 +        <bpmndi:BPMNLabel /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Event_1kmjuhs_di" bpmnElement="Event_1kmjuhs"> 
 +        <omgdc:Bounds x="532" y="192" width="36" height="36" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNEdge id="Flow_0fqr94i_di" bpmnElement="Flow_0fqr94i"> 
 +        <di:waypoint x="128" y="210" /> 
 +        <di:waypoint x="170" y="210" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_1qzqmrm_di" bpmnElement="Flow_1qzqmrm"> 
 +        <di:waypoint x="270" y="210" /> 
 +        <di:waypoint x="312" y="210" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_0mvecfq_di" bpmnElement="Flow_0mvecfq"> 
 +        <di:waypoint x="348" y="210" /> 
 +        <di:waypoint x="390" y="210" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_1uu5pmf_di" bpmnElement="Flow_1uu5pmf"> 
 +        <di:waypoint x="490" y="210" /> 
 +        <di:waypoint x="532" y="210" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNShape id="Participant_04mf8ql_di" bpmnElement="Participant_04mf8ql" isHorizontal="true"> 
 +        <omgdc:Bounds x="30" y="430" width="714" height="240" /> 
 +        <bpmndi:BPMNLabel /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Event_0djxenp_di" bpmnElement="Event_0djxenp"> 
 +        <omgdc:Bounds x="92" y="482" width="36" height="36" /> 
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="75" y="525" width="70" height="14" /> 
 +        </bpmndi:BPMNLabel> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Activity_1eay84c_di" bpmnElement="Activity_1eay84c"> 
 +        <omgdc:Bounds x="420" y="460" width="100" height="80" /> 
 +        <bpmndi:BPMNLabel /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Gateway_1m9hhay_di" bpmnElement="Gateway_1m9hhay" isMarkerVisible="true"> 
 +        <omgdc:Bounds x="565" y="475" width="50" height="50" /> 
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="578" y="451" width="23" height="14" /> 
 +        </bpmndi:BPMNLabel> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Event_1lai5qt_di" bpmnElement="Event_1lai5qt"> 
 +        <omgdc:Bounds x="572" y="572" width="36" height="36" /> 
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="564" y="615" width="52" height="27" /> 
 +        </bpmndi:BPMNLabel> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Event_1ipj0il_di" bpmnElement="Event_12lad3v"> 
 +        <omgdc:Bounds x="662" y="482" width="36" height="36" /> 
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="637" y="525" width="87" height="14" /> 
 +        </bpmndi:BPMNLabel> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Activity_16ezjxr_di" bpmnElement="Activity_16ezjxr"> 
 +        <omgdc:Bounds x="170" y="460" width="100" height="80" /> 
 +        <bpmndi:BPMNLabel /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Gateway_1gih9c0_di" bpmnElement="Gateway_1gih9c0" isMarkerVisible="true"> 
 +        <omgdc:Bounds x="305" y="475" width="50" height="50" /> 
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="285" y="451" width="89" height="14" /> 
 +        </bpmndi:BPMNLabel> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Event_1xx98wd_di" bpmnElement="Event_1xx98wd"> 
 +        <omgdc:Bounds x="312" y="572" width="36" height="36" /> 
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="294" y="615" width="73" height="14" /> 
 +        </bpmndi:BPMNLabel> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNEdge id="Flow_0za1h4b_di" bpmnElement="Flow_0za1h4b"> 
 +        <di:waypoint x="128" y="500" /> 
 +        <di:waypoint x="170" y="500" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_12cq0dp_di" bpmnElement="Flow_12cq0dp"> 
 +        <di:waypoint x="270" y="500" /> 
 +        <di:waypoint x="305" y="500" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_1or7fxn_di" bpmnElement="Flow_1or7fxn"> 
 +        <di:waypoint x="590" y="525" /> 
 +        <di:waypoint x="590" y="572" /> 
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="599" y="546" width="13" height="14" /> 
 +        </bpmndi:BPMNLabel> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_0g7l5fa_di" bpmnElement="Flow_0g7l5fa"> 
 +        <di:waypoint x="355" y="500" /> 
 +        <di:waypoint x="420" y="500" /> 
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="379" y="482" width="17" height="14" /> 
 +        </bpmndi:BPMNLabel> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_0xz7y35_di" bpmnElement="Flow_0xz7y35"> 
 +        <di:waypoint x="520" y="500" /> 
 +        <di:waypoint x="565" y="500" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_14lwxg3_di" bpmnElement="Flow_14lwxg3"> 
 +        <di:waypoint x="330" y="525" /> 
 +        <di:waypoint x="330" y="572" /> 
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="339" y="546" width="13" height="14" /> 
 +        </bpmndi:BPMNLabel> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_1l6vlkb_di" bpmnElement="Flow_1l6vlkb"> 
 +        <di:waypoint x="615" y="500" /> 
 +        <di:waypoint x="662" y="500" /> 
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="630" y="482" width="17" height="14" /> 
 +        </bpmndi:BPMNLabel> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNShape id="DataStoreReference_0ptgekw_di" bpmnElement="DataStoreReference_0ptgekw"> 
 +        <omgdc:Bounds x="195" y="345" width="50" height="50" /> 
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="103" y="363" width="82" height="14" /> 
 +        </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>       </bpmndi:BPMNShape>
 +      <bpmndi:BPMNEdge id="DataInputAssociation_0rbyde0_di" bpmnElement="DataInputAssociation_0rbyde0">
 +        <di:waypoint x="220" y="395" />
 +        <di:waypoint x="220" y="460" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_06phhio_di" bpmnElement="Flow_06phhio">
 +        <di:waypoint x="680" y="482" />
 +        <di:waypoint x="680" y="355" />
 +        <di:waypoint x="330" y="355" />
 +        <di:waypoint x="330" y="228" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="DataOutputAssociation_1sbeyu0_di" bpmnElement="DataOutputAssociation_1sbeyu0">
 +        <di:waypoint x="220" y="250" />
 +        <di:waypoint x="220" y="345" />
 +      </bpmndi:BPMNEdge>
     </bpmndi:BPMNPlane>     </bpmndi:BPMNPlane>
   </bpmndi:BPMNDiagram>   </bpmndi:BPMNDiagram>
Строка 36: Строка 250:
 <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: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" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="sid-38422fae-e03e-43a3-bef4-bd33b32041b2" targetNamespace="http://bpmn.io/bpmn" exporter="http://bpmn.io" exporterVersion="0.10.1">
   <collaboration id="Collaboration_0g7t6mq">   <collaboration id="Collaboration_0g7t6mq">
-    <participant id="Participant_144acff" name="Vacancy to probation" processRef="Process_1" /> +    <participant id="Participant_144acff" name="От потребности до закупки" processRef="Process_1" /> 
-    <participant id="Participant_11zfwr4" name="Applicant" />+    <participant id="Participant_0pa16ys" name="Поставщик" /> 
 +    <messageFlow id="Flow_0sp4o62" name="Доставленный товар" sourceRef="Participant_0pa16ys" targetRef="Event_1nu1su1" />
   </collaboration>   </collaboration>
-  <process id="Process_1" isExecutable="false" />+  <process id="Process_1" isExecutable="false"
 +    <task id="Activity_0xko542" name="..."> 
 +      <incoming>Flow_0fqr94i</incoming> 
 +      <outgoing>Flow_1qzqmrm</outgoing> 
 +    </task> 
 +    <sequenceFlow id="Flow_0fqr94i" sourceRef="Event_1ng94pf" targetRef="Activity_0xko542" /> 
 +    <sequenceFlow id="Flow_1qzqmrm" sourceRef="Activity_0xko542" targetRef="Event_1nu1su1" /> 
 +    <intermediateCatchEvent id="Event_1nu1su1" name="Товар доставлен"> 
 +      <incoming>Flow_1qzqmrm</incoming> 
 +      <outgoing>Flow_0mvecfq</outgoing> 
 +      <messageEventDefinition id="MessageEventDefinition_1lzzfm9" /> 
 +    </intermediateCatchEvent> 
 +    <startEvent id="Event_1ng94pf"> 
 +      <outgoing>Flow_0fqr94i</outgoing> 
 +    </startEvent> 
 +    <task id="Activity_0b0ddht" name="Принять товар"> 
 +      <incoming>Flow_0mvecfq</incoming> 
 +      <outgoing>Flow_0o10xoz</outgoing> 
 +    </task> 
 +    <sequenceFlow id="Flow_0mvecfq" sourceRef="Event_1nu1su1" targetRef="Activity_0b0ddht" /> 
 +    <task id="Activity_1ashtyk" name="..."> 
 +      <incoming>Flow_0o10xoz</incoming> 
 +      <outgoing>Flow_1uu5pmf</outgoing> 
 +    </task> 
 +    <sequenceFlow id="Flow_0o10xoz" sourceRef="Activity_0b0ddht" targetRef="Activity_1ashtyk" /> 
 +    <endEvent id="Event_1kmjuhs"> 
 +      <incoming>Flow_1uu5pmf</incoming> 
 +    </endEvent> 
 +    <sequenceFlow id="Flow_1uu5pmf" sourceRef="Activity_1ashtyk" targetRef="Event_1kmjuhs" /> 
 +  </process>
   <bpmndi:BPMNDiagram id="BPMNDiagram_1">   <bpmndi:BPMNDiagram id="BPMNDiagram_1">
     <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Collaboration_0g7t6mq">     <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Collaboration_0g7t6mq">
-      <bpmndi:BPMNShape id="Participant_1nz1lhd_di" bpmnElement="Participant_11zfwr4" isHorizontal="true"> +      <bpmndi:BPMNShape id="Participant_144acff_di" bpmnElement="Participant_144acff" isHorizontal="true"> 
-        <omgdc:Bounds x="370" y="-20" width="300" height="60" />+        <omgdc:Bounds x="30" y="130" width="700" height="160" />
         <bpmndi:BPMNLabel />         <bpmndi:BPMNLabel />
       </bpmndi:BPMNShape>       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="Participant_144acff_di" bpmnElement="Participant_144acff" isHorizontal="true"> +      <bpmndi:BPMNShape id="Activity_0xko542_di" bpmnElement="Activity_0xko542"> 
-        <omgdc:Bounds x="220" y="130" width="600" height="250" />+        <omgdc:Bounds x="170" y="170" width="100" height="80" />
         <bpmndi:BPMNLabel />         <bpmndi:BPMNLabel />
       </bpmndi:BPMNShape>       </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Event_0r0qs2b_di" bpmnElement="Event_1nu1su1">
 +        <omgdc:Bounds x="312" y="192" width="36" height="36" />
 +        <bpmndi:BPMNLabel>
 +          <omgdc:Bounds x="290" y="235" width="81" height="14" />
 +        </bpmndi:BPMNLabel>
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Event_1ng94pf_di" bpmnElement="Event_1ng94pf">
 +        <omgdc:Bounds x="92" y="192" width="36" height="36" />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Activity_0b0ddht_di" bpmnElement="Activity_0b0ddht">
 +        <omgdc:Bounds x="380" y="170" width="100" height="80" />
 +        <bpmndi:BPMNLabel />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Activity_1ashtyk_di" bpmnElement="Activity_1ashtyk">
 +        <omgdc:Bounds x="530" y="170" width="100" height="80" />
 +        <bpmndi:BPMNLabel />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Event_1kmjuhs_di" bpmnElement="Event_1kmjuhs">
 +        <omgdc:Bounds x="662" y="192" width="36" height="36" />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNEdge id="Flow_0fqr94i_di" bpmnElement="Flow_0fqr94i">
 +        <di:waypoint x="128" y="210" />
 +        <di:waypoint x="170" y="210" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_1qzqmrm_di" bpmnElement="Flow_1qzqmrm">
 +        <di:waypoint x="270" y="210" />
 +        <di:waypoint x="312" y="210" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_0mvecfq_di" bpmnElement="Flow_0mvecfq">
 +        <di:waypoint x="348" y="210" />
 +        <di:waypoint x="380" y="210" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_0o10xoz_di" bpmnElement="Flow_0o10xoz">
 +        <di:waypoint x="480" y="210" />
 +        <di:waypoint x="530" y="210" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_1uu5pmf_di" bpmnElement="Flow_1uu5pmf">
 +        <di:waypoint x="630" y="210" />
 +        <di:waypoint x="662" y="210" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNShape id="Participant_0xjrlh6_di" bpmnElement="Participant_0pa16ys" isHorizontal="true">
 +        <omgdc:Bounds x="180" y="-10" width="300" height="60" />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNEdge id="Flow_0sp4o62_di" bpmnElement="Flow_0sp4o62">
 +        <di:waypoint x="330" y="50" />
 +        <di:waypoint x="330" y="192" />
 +        <bpmndi:BPMNLabel>
 +          <omgdc:Bounds x="286" y="103" width="87" height="14" />
 +        </bpmndi:BPMNLabel>
 +      </bpmndi:BPMNEdge>
     </bpmndi:BPMNPlane>     </bpmndi:BPMNPlane>
   </bpmndi:BPMNDiagram>   </bpmndi:BPMNDiagram>
Строка 59: Строка 353:
 ===== Примечания ===== ===== Примечания =====
  
-  * Дополнительные комментарии (опционально)+  * Обратите внимание на задачу "Идентифицировать доставку" на диаграмме [[#как надо]]. Эта задача имеет место в реальности: когда на наш склад прибывает фура от поставщика, то первое, что делает наш сотрудник - проверяет сопроводительные документы и выясняет, заказывали ли мы этот груз (возможно, он доставлен по ошибке). Но на диаграмме [[#как не надо]] для этой задачи нет места! 
 +  * Еще одно преимущество схемы [[#как надо]] - она предусматривает возможность, что груз не был принят (например, из-за претензий по качеству и/или количеству) с первой попытке, но был благополучно принят при повторной доставке поставщиком. В этом случае просто будет два экземпляра процесса приемки груза на один экземпляр процесса закупки. 
 +  * В приведенных примерах опущен таймер (процесс ждет доставки бесконечно) и другие подробности. 
 +  * На диаграмме [[#как надо]] изображены два развернутых процесса. При моделировании реальных (а не учебныхпроцессов лучше изображать каждый процесс [[single_process|на отдельной диаграмме]]. 
 +  * Для моделирования взаимодействия между процессами предпочтительнее использовать не событие-сообщение, а [[conditional_event_collaboration|событие-условие]].
  
 ===== Исключения ===== ===== Исключения =====
  
-  * Исключения из правила (если есть)+Процесс-обработчик может не потребоваться, если модель процесса является исполняемой, а внешний участник процесса - не человек, а робот (информационная система, веб-портал)
 +Поток сообщений в этом случае моделирует вызов веб-сервиса.
  
 ===== Смотри также ===== ===== Смотри также =====
  
-  * Ссылки на страницы со схожим контентом (опционально)+  * [[single_process]] 
 +  * [[conditional_event_collaboration]]
  
 ===== Автор(ы) ===== ===== Автор(ы) =====
  
  --- //[[user:bell|Anatoly Belaychuk]] 2024-08-27 17:17//  --- //[[user:bell|Anatoly Belaychuk]] 2024-08-27 17:17//