Различия

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

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

Следующая версия
Предыдущая версия
ru:rule:conditional_event_collaboration [2024-08-27 18:19] – создано Anatoly Belaychukru:rule:conditional_event_collaboration [2024-08-28 20:56] (текущий) – [Смотри также] Anatoly Belaychuk
Строка 1: Строка 1:
-====== 0-TBD Используйте для моделирования межпроцессного взаимодействия событие-условие ======+====== Используйте для моделирования межпроцессного взаимодействия событие-условие ======
  
-{{tag>взаимодействие}} +{{tag>взаимодействие событие-сообщение событие-условие промежуточное_событие}}
- +
-{{:ru:v_razrabotke.png?nolink&200|}} +
- +
-Краткое описание правила.+
  
 +Событие-сообщение создает тесную связь между процессами: процесс-отправитель сообщения должен знать внутреннее устройство процесса-получателя.
 +Событие-условие позволяет реализовать более технологичную слабосвязную процессную архитектуру.
 ===== ✔ Как надо ===== ===== ✔ Как надо =====
  
-Паттерны иаграммы).+<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"> 
 +  <collaboration id="Collaboration_1b1ot1c"> 
 +    <participant id="Participant_0izktdm" name="От заказа до оплаты" processRef="Process_1" /> 
 +    <participant id="Participant_0pfnmlo" name="Обработка выписки банка" processRef="Process_1wlf5ng" /> 
 +  </collaboration> 
 +  <process id="Process_1" isExecutable="false"> 
 +    <sequenceFlow id="Flow_09aipy9" sourceRef="Event_068gu40" targetRef="Activity_12gb2fh" /> 
 +    <sequenceFlow id="Flow_16kqfso" sourceRef="Activity_12gb2fh" targetRef="Gateway_0mu72rh" /> 
 +    <startEvent id="Event_068gu40"> 
 +      <outgoing>Flow_09aipy9</outgoing> 
 +    </startEvent> 
 +    <task id="Activity_12gb2fh" name="Согласовать заказ"> 
 +      <incoming>Flow_09aipy9</incoming> 
 +      <outgoing>Flow_16kqfso</outgoing> 
 +    </task> 
 +    <exclusiveGateway id="Gateway_0mu72rh"> 
 +      <incoming>Flow_16kqfso</incoming> 
 +      <outgoing>Flow_1s33fqb</outgoing> 
 +      <outgoing>Flow_008j1br</outgoing> 
 +    </exclusiveGateway> 
 +    <endEvent id="Event_0b3f4gw" name="Заказ не согласован"> 
 +      <incoming>Flow_1s33fqb</incoming> 
 +    </endEvent> 
 +    <task id="Activity_10zgl85" name="Выставить счет"> 
 +      <incoming>Flow_1ins0qh</incoming> 
 +      <outgoing>Flow_1lsywu4</outgoing> 
 +      <dataOutputAssociation id="DataOutputAssociation_17kcwns"> 
 +        <targetRef>DataStoreReference_1o133y4</targetRef> 
 +      </dataOutputAssociation> 
 +    </task> 
 +    <task id="Activity_1eyrek7" name="Доставить товар"> 
 +      <incoming>Flow_008j1br</incoming> 
 +      <outgoing>Flow_1ins0qh</outgoing> 
 +    </task> 
 +    <sequenceFlow id="Flow_1s33fqb" sourceRef="Gateway_0mu72rh" targetRef="Event_0b3f4gw" /> 
 +    <sequenceFlow id="Flow_008j1br" sourceRef="Gateway_0mu72rh" targetRef="Activity_1eyrek7" /> 
 +    <sequenceFlow id="Flow_1ins0qh" sourceRef="Activity_1eyrek7" targetRef="Activity_10zgl85" /> 
 +    <sequenceFlow id="Flow_1lsywu4" sourceRef="Activity_10zgl85" targetRef="Gateway_1gwnzbk" /> 
 +    <sequenceFlow id="Flow_0bg3trg" sourceRef="Gateway_1gwnzbk" targetRef="Event_142pbws" /> 
 +    <sequenceFlow id="Flow_0ea0g86" sourceRef="Event_142pbws" targetRef="Event_0hit4gl" /> 
 +    <sequenceFlow id="Flow_1wyen10" sourceRef="Gateway_1gwnzbk" targetRef="Event_02xkuze" /> 
 +    <sequenceFlow id="Flow_165lj3o" sourceRef="Event_02xkuze" targetRef="Event_1epbj0y" /> 
 +    <dataStoreReference id="DataStoreReference_1o133y4" name="Выставленные счета" /> 
 +    <eventBasedGateway id="Gateway_1gwnzbk"> 
 +      <incoming>Flow_1lsywu4</incoming> 
 +      <outgoing>Flow_0bg3trg</outgoing> 
 +      <outgoing>Flow_1wyen10</outgoing> 
 +    </eventBasedGateway> 
 +    <intermediateCatchEvent id="Event_02xkuze" name="Срок оплаты"> 
 +      <incoming>Flow_1wyen10</incoming> 
 +      <outgoing>Flow_165lj3o</outgoing> 
 +      <timerEventDefinition id="TimerEventDefinition_11t8z3p" /> 
 +    </intermediateCatchEvent> 
 +    <endEvent id="Event_0hit4gl" name="Заказ выполнен"> 
 +      <incoming>Flow_0ea0g86</incoming> 
 +    </endEvent> 
 +    <endEvent id="Event_1epbj0y" name="Заказ не оплачен"> 
 +      <incoming>Flow_165lj3o</incoming> 
 +      <signalEventDefinition id="SignalEventDefinition_0sujvcf" /> 
 +    </endEvent> 
 +    <intermediateCatchEvent id="Event_142pbws" name="Статус заказа изменился на &#39;оплачен&#39;"> 
 +      <incoming>Flow_0bg3trg</incoming> 
 +      <outgoing>Flow_0ea0g86</outgoing> 
 +      <conditionalEventDefinition id="ConditionalEventDefinition_0bnm98u"> 
 +        <condition xsi:type="tFormalExpression" /> 
 +      </conditionalEventDefinition> 
 +    </intermediateCatchEvent> 
 +  </process> 
 +  <process id="Process_1wlf5ng"> 
 +    <task id="Activity_0s6xn85" name="Получить выписку банка"> 
 +      <incoming>Flow_1xejeiu</incoming> 
 +      <outgoing>Flow_0uoc8i4</outgoing> 
 +    </task> 
 +    <startEvent id="Event_18dtgco"> 
 +      <outgoing>Flow_1xejeiu</outgoing> 
 +      <timerEventDefinition id="TimerEventDefinition_07wxqid" /> 
 +    </startEvent> 
 +    <subProcess id="Activity_0wt68c5"> 
 +      <incoming>Flow_0uoc8i4</incoming> 
 +      <outgoing>Flow_1w0i707</outgoing> 
 +      <multiInstanceLoopCharacteristics /> 
 +      <startEvent id="Event_0u09w02"> 
 +        <outgoing>Flow_1j3yt6b</outgoing> 
 +      </startEvent> 
 +      <sequenceFlow id="Flow_1j3yt6b" sourceRef="Event_0u09w02" targetRef="Activity_1qvaa6n" /> 
 +      <task id="Activity_1qvaa6n" name="Идентифицировать платеж"> 
 +        <incoming>Flow_1j3yt6b</incoming> 
 +        <outgoing>Flow_12i57do</outgoing> 
 +        <property id="Property_1irqq7e" name="__targetRef_placeholder" /> 
 +        <dataInputAssociation id="DataInputAssociation_0w9yq2y"> 
 +          <sourceRef>DataStoreReference_1o133y4</sourceRef> 
 +          <targetRef>Property_1irqq7e</targetRef> 
 +        </dataInputAssociation> 
 +      </task> 
 +      <exclusiveGateway id="Gateway_0r19iqd" name="Успешно?"> 
 +        <incoming>Flow_12i57do</incoming> 
 +        <outgoing>Flow_0kxrz4w</outgoing> 
 +        <outgoing>Flow_081u6je</outgoing> 
 +      </exclusiveGateway> 
 +      <sequenceFlow id="Flow_12i57do" sourceRef="Activity_1qvaa6n" targetRef="Gateway_0r19iqd" /> 
 +      <sequenceFlow id="Flow_0kxrz4w" sourceRef="Gateway_0r19iqd" targetRef="Event_1af95w7" /> 
 +      <sequenceFlow id="Flow_081u6je" sourceRef="Gateway_0r19iqd" targetRef="Activity_1q8w3kj" /> 
 +      <endEvent id="Event_1af95w7" name="Неопознанный платеж"> 
 +        <incoming>Flow_0kxrz4w</incoming> 
 +        <signalEventDefinition id="SignalEventDefinition_0ffic21" /> 
 +      </endEvent> 
 +      <task id="Activity_1q8w3kj" name="Изменить статус счета на &#39;оплачен&#39;"> 
 +        <incoming>Flow_081u6je</incoming> 
 +        <outgoing>Flow_0pavqii</outgoing> 
 +        <dataOutputAssociation id="DataOutputAssociation_0dl6k8x"> 
 +          <targetRef>DataStoreReference_1o133y4</targetRef> 
 +        </dataOutputAssociation> 
 +      </task> 
 +      <sequenceFlow id="Flow_0pavqii" sourceRef="Activity_1q8w3kj" targetRef="Event_10qt9l3" /> 
 +      <endEvent id="Event_10qt9l3" name="Счет оплачен"> 
 +        <incoming>Flow_0pavqii</incoming> 
 +      </endEvent> 
 +    </subProcess> 
 +    <sequenceFlow id="Flow_1xejeiu" sourceRef="Event_18dtgco" targetRef="Activity_0s6xn85" /> 
 +    <sequenceFlow id="Flow_0uoc8i4" sourceRef="Activity_0s6xn85" targetRef="Activity_0wt68c5" /> 
 +    <sequenceFlow id="Flow_1w0i707" sourceRef="Activity_0wt68c5" targetRef="Event_1djafiu" /> 
 +    <endEvent id="Event_1djafiu"> 
 +      <incoming>Flow_1w0i707</incoming> 
 +    </endEvent> 
 +    <textAnnotation id="TextAnnotation_1l2chg1"> 
 +      <text>для каждой строки</text> 
 +    </textAnnotation> 
 +    <association id="Association_12k4a5n" sourceRef="Activity_0wt68c5" targetRef="TextAnnotation_1l2chg1" /> 
 +  </process> 
 +  <bpmndi:BPMNDiagram id="BPMNDiagram_1"> 
 +    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Collaboration_1b1ot1c"> 
 +      <bpmndi:BPMNShape id="Participant_0izktdm_di" bpmnElement="Participant_0izktdm" isHorizontal="true"> 
 +        <omgdc:Bounds x="250" y="70" width="880" height="230" /> 
 +        <bpmndi:BPMNLabel /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Event_068gu40_di" bpmnElement="Event_068gu40"> 
 +        <omgdc:Bounds x="312" y="122" width="36" height="36" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Activity_12gb2fh_di" bpmnElement="Activity_12gb2fh"> 
 +        <omgdc:Bounds x="380" y="100" width="100" height="80" /> 
 +        <bpmndi:BPMNLabel /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Gateway_0mu72rh_di" bpmnElement="Gateway_0mu72rh" isMarkerVisible="true"> 
 +        <omgdc:Bounds x="515" y="115" width="50" height="50" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Event_0b3f4gw_di" bpmnElement="Event_0b3f4gw"> 
 +        <omgdc:Bounds x="522" y="202" width="36" height="36" /> 
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="509" y="245" width="62" height="27" /> 
 +        </bpmndi:BPMNLabel> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Activity_10zgl85_di" bpmnElement="Activity_10zgl85"> 
 +        <omgdc:Bounds x="740" y="100" width="100" height="80" /> 
 +        <bpmndi:BPMNLabel /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Activity_1eyrek7_di" bpmnElement="Activity_1eyrek7"> 
 +        <omgdc:Bounds x="600" y="100" width="100" height="80" /> 
 +        <bpmndi:BPMNLabel /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Gateway_06lx2sv_di" bpmnElement="Gateway_1gwnzbk"> 
 +        <omgdc:Bounds x="875" y="115" width="50" height="50" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Event_02xkuze_di" bpmnElement="Event_02xkuze"> 
 +        <omgdc:Bounds x="962" y="122" width="36" height="36" /> 
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="946" y="165" width="69" height="14" /> 
 +        </bpmndi:BPMNLabel> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Event_0hit4gl_di" bpmnElement="Event_0hit4gl"> 
 +        <omgdc:Bounds x="1052" y="202" width="36" height="36" /> 
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="1037" y="245" width="66" height="14" /> 
 +        </bpmndi:BPMNLabel> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Event_0uxehb2_di" bpmnElement="Event_1epbj0y"> 
 +        <omgdc:Bounds x="1052" y="122" width="36" height="36" /> 
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="1034" y="165" width="73" height="14" /> 
 +        </bpmndi:BPMNLabel> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Event_0bywtd4_di" bpmnElement="Event_142pbws"> 
 +        <omgdc:Bounds x="962" y="202" width="36" height="36" /> 
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="937" y="246" width="86" height="27" /> 
 +        </bpmndi:BPMNLabel> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNEdge id="Flow_09aipy9_di" bpmnElement="Flow_09aipy9"> 
 +        <omgdi:waypoint x="348" y="140" /> 
 +        <omgdi:waypoint x="380" y="140" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_16kqfso_di" bpmnElement="Flow_16kqfso"> 
 +        <omgdi:waypoint x="480" y="140" /> 
 +        <omgdi:waypoint x="515" y="140" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_1s33fqb_di" bpmnElement="Flow_1s33fqb"> 
 +        <omgdi:waypoint x="540" y="165" /> 
 +        <omgdi:waypoint x="540" y="202" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_008j1br_di" bpmnElement="Flow_008j1br"> 
 +        <omgdi:waypoint x="565" y="140" /> 
 +        <omgdi:waypoint x="600" y="140" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_1ins0qh_di" bpmnElement="Flow_1ins0qh"> 
 +        <omgdi:waypoint x="700" y="140" /> 
 +        <omgdi:waypoint x="740" y="140" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_1lsywu4_di" bpmnElement="Flow_1lsywu4"> 
 +        <omgdi:waypoint x="840" y="140" /> 
 +        <omgdi:waypoint x="875" y="140" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_0bg3trg_di" bpmnElement="Flow_0bg3trg"> 
 +        <omgdi:waypoint x="900" y="165" /> 
 +        <omgdi:waypoint x="900" y="220" /> 
 +        <omgdi:waypoint x="962" y="220" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_0ea0g86_di" bpmnElement="Flow_0ea0g86"> 
 +        <omgdi:waypoint x="998" y="220" /> 
 +        <omgdi:waypoint x="1052" y="220" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_1wyen10_di" bpmnElement="Flow_1wyen10"> 
 +        <omgdi:waypoint x="925" y="140" /> 
 +        <omgdi:waypoint x="962" y="140" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_165lj3o_di" bpmnElement="Flow_165lj3o"> 
 +        <omgdi:waypoint x="998" y="140" /> 
 +        <omgdi:waypoint x="1052" y="140" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNShape id="Participant_0pfnmlo_di" bpmnElement="Participant_0pfnmlo" isHorizontal="true"> 
 +        <omgdc:Bounds x="250" y="410" width="880" height="260" /> 
 +        <bpmndi:BPMNLabel /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="TextAnnotation_1l2chg1_di" bpmnElement="TextAnnotation_1l2chg1"> 
 +        <omgdc:Bounds x="1049" y="590" width="61" height="55" /> 
 +        <bpmndi:BPMNLabel /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Activity_0s6xn85_di" bpmnElement="Activity_0s6xn85"> 
 +        <omgdc:Bounds x="380" y="498" width="100" height="80" /> 
 +        <bpmndi:BPMNLabel /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Event_0l6bz8h_di" bpmnElement="Event_18dtgco"> 
 +        <omgdc:Bounds x="312" y="520" width="36" height="36" /> 
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="318" y="580" width="25" height="14" /> 
 +        </bpmndi:BPMNLabel> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Event_1djafiu_di" bpmnElement="Event_1djafiu"> 
 +        <omgdc:Bounds x="1062" y="520" width="36" height="36" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Activity_0wt68c5_di" bpmnElement="Activity_0wt68c5" isExpanded="true"> 
 +        <omgdc:Bounds x="520" y="435" width="510" height="205" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Event_0u09w02_di" bpmnElement="Event_0u09w02"> 
 +        <omgdc:Bounds x="552" y="477" width="36" height="36" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Activity_1qvaa6n_di" bpmnElement="Activity_1qvaa6n"> 
 +        <omgdc:Bounds x="620" y="455" width="100" height="80" /> 
 +        <bpmndi:BPMNLabel /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Gateway_0r19iqd_di" bpmnElement="Gateway_0r19iqd" isMarkerVisible="true"> 
 +        <omgdc:Bounds x="755" y="470" width="50" height="50" /> 
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="769" y="448" width="23" height="14" /> 
 +        </bpmndi:BPMNLabel> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Event_1hnds2j_di" bpmnElement="Event_1af95w7"> 
 +        <omgdc:Bounds x="762" y="557" width="36" height="36" /> 
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="751" y="600" width="59" height="27" /> 
 +        </bpmndi:BPMNLabel> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Activity_1q8w3kj_di" bpmnElement="Activity_1q8w3kj"> 
 +        <omgdc:Bounds x="840" y="455" width="100" height="80" /> 
 +        <bpmndi:BPMNLabel /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Event_0wkq4mg_di" bpmnElement="Event_10qt9l3"> 
 +        <omgdc:Bounds x="972" y="477" width="36" height="36" /> 
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="961" y="520" width="59" height="14" /> 
 +        </bpmndi:BPMNLabel> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNEdge id="Flow_1j3yt6b_di" bpmnElement="Flow_1j3yt6b"> 
 +        <omgdi:waypoint x="588" y="495" /> 
 +        <omgdi:waypoint x="620" y="495" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_12i57do_di" bpmnElement="Flow_12i57do"> 
 +        <omgdi:waypoint x="720" y="495" /> 
 +        <omgdi:waypoint x="755" y="495" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_0kxrz4w_di" bpmnElement="Flow_0kxrz4w"> 
 +        <omgdi:waypoint x="780" y="520" /> 
 +        <omgdi:waypoint x="780" y="557" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_081u6je_di" bpmnElement="Flow_081u6je"> 
 +        <omgdi:waypoint x="805" y="495" /> 
 +        <omgdi:waypoint x="840" y="495" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_0pavqii_di" bpmnElement="Flow_0pavqii"> 
 +        <omgdi:waypoint x="940" y="495" /> 
 +        <omgdi:waypoint x="972" y="495" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Association_12k4a5n_di" bpmnElement="Association_12k4a5n"> 
 +        <omgdi:waypoint x="1030" y="591" /> 
 +        <omgdi:waypoint x="1049" y="595" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_1xejeiu_di" bpmnElement="Flow_1xejeiu"> 
 +        <omgdi:waypoint x="348" y="538" /> 
 +        <omgdi:waypoint x="380" y="538" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_0uoc8i4_di" bpmnElement="Flow_0uoc8i4"> 
 +        <omgdi:waypoint x="480" y="538" /> 
 +        <omgdi:waypoint x="520" y="538" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_1w0i707_di" bpmnElement="Flow_1w0i707"> 
 +        <omgdi:waypoint x="1030" y="538" /> 
 +        <omgdi:waypoint x="1062" y="538" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNShape id="DataStoreReference_1o133y4_di" bpmnElement="DataStoreReference_1o133y4"> 
 +        <omgdc:Bounds x="765" y="325" width="50" height="50" /> 
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="752" y="383" width="76" height="14" /> 
 +        </bpmndi:BPMNLabel> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNEdge id="DataOutputAssociation_17kcwns_di" bpmnElement="DataOutputAssociation_17kcwns"> 
 +        <omgdi:waypoint x="790" y="180" /> 
 +        <omgdi:waypoint x="790" y="325" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="DataInputAssociation_0w9yq2y_di" bpmnElement="DataInputAssociation_0w9yq2y"> 
 +        <omgdi:waypoint x="765" y="350" /> 
 +        <omgdi:waypoint x="670" y="350" /> 
 +        <omgdi:waypoint x="670" y="455" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="DataOutputAssociation_0dl6k8x_di" bpmnElement="DataOutputAssociation_0dl6k8x"> 
 +        <omgdi:waypoint x="890" y="455" /> 
 +        <omgdi:waypoint x="890" y="350" /> 
 +        <omgdi:waypoint x="815" y="350" /> 
 +      </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"> 
 +  <collaboration id="Collaboration_1b1ot1c"> 
 +    <participant id="Participant_0izktdm" name="От заказа до оплаты" processRef="Process_1" /> 
 +    <participant id="Participant_0pfnmlo" name="Обработка выписки банка" processRef="Process_1wlf5ng" /> 
 +    <messageFlow id="Flow_00xbn5f" sourceRef="Event_10qt9l3" targetRef="Event_142pbws" /> 
 +  </collaboration> 
 +  <process id="Process_1" isExecutable="false"> 
 +    <sequenceFlow id="Flow_09aipy9" sourceRef="Event_068gu40" targetRef="Activity_12gb2fh" /> 
 +    <sequenceFlow id="Flow_16kqfso" sourceRef="Activity_12gb2fh" targetRef="Gateway_0mu72rh" /> 
 +    <startEvent id="Event_068gu40"> 
 +      <outgoing>Flow_09aipy9</outgoing> 
 +    </startEvent> 
 +    <task id="Activity_12gb2fh" name="Согласовать заказ"> 
 +      <incoming>Flow_09aipy9</incoming> 
 +      <outgoing>Flow_16kqfso</outgoing> 
 +    </task> 
 +    <exclusiveGateway id="Gateway_0mu72rh"> 
 +      <incoming>Flow_16kqfso</incoming> 
 +      <outgoing>Flow_1s33fqb</outgoing> 
 +      <outgoing>Flow_008j1br</outgoing> 
 +    </exclusiveGateway> 
 +    <endEvent id="Event_0b3f4gw" name="Заказ не согласован"> 
 +      <incoming>Flow_1s33fqb</incoming> 
 +    </endEvent> 
 +    <task id="Activity_10zgl85" name="Выставить счет"> 
 +      <incoming>Flow_1ins0qh</incoming> 
 +      <outgoing>Flow_1lsywu4</outgoing> 
 +      <dataOutputAssociation id="DataOutputAssociation_17kcwns"> 
 +        <targetRef>DataStoreReference_1o133y4</targetRef> 
 +      </dataOutputAssociation> 
 +    </task> 
 +    <task id="Activity_1eyrek7" name="Доставить товар"> 
 +      <incoming>Flow_008j1br</incoming> 
 +      <outgoing>Flow_1ins0qh</outgoing> 
 +    </task> 
 +    <sequenceFlow id="Flow_1s33fqb" sourceRef="Gateway_0mu72rh" targetRef="Event_0b3f4gw" /> 
 +    <sequenceFlow id="Flow_008j1br" sourceRef="Gateway_0mu72rh" targetRef="Activity_1eyrek7" /> 
 +    <sequenceFlow id="Flow_1ins0qh" sourceRef="Activity_1eyrek7" targetRef="Activity_10zgl85" /> 
 +    <sequenceFlow id="Flow_1lsywu4" sourceRef="Activity_10zgl85" targetRef="Gateway_1gwnzbk" /> 
 +    <sequenceFlow id="Flow_0bg3trg" sourceRef="Gateway_1gwnzbk" targetRef="Event_142pbws" /> 
 +    <sequenceFlow id="Flow_0ea0g86" sourceRef="Event_142pbws" targetRef="Event_0hit4gl" /> 
 +    <sequenceFlow id="Flow_1wyen10" sourceRef="Gateway_1gwnzbk" targetRef="Event_02xkuze" /> 
 +    <sequenceFlow id="Flow_165lj3o" sourceRef="Event_02xkuze" targetRef="Event_1epbj0y" /> 
 +    <dataStoreReference id="DataStoreReference_1o133y4" name="Выставленные счета" /> 
 +    <eventBasedGateway id="Gateway_1gwnzbk"> 
 +      <incoming>Flow_1lsywu4</incoming> 
 +      <outgoing>Flow_0bg3trg</outgoing> 
 +      <outgoing>Flow_1wyen10</outgoing> 
 +    </eventBasedGateway> 
 +    <intermediateCatchEvent id="Event_142pbws" name="Счет оплачен"> 
 +      <incoming>Flow_0bg3trg</incoming> 
 +      <outgoing>Flow_0ea0g86</outgoing> 
 +      <messageEventDefinition id="MessageEventDefinition_0jyfuoq" /> 
 +    </intermediateCatchEvent> 
 +    <intermediateCatchEvent id="Event_02xkuze" name="Срок оплаты"> 
 +      <incoming>Flow_1wyen10</incoming> 
 +      <outgoing>Flow_165lj3o</outgoing> 
 +      <timerEventDefinition id="TimerEventDefinition_11t8z3p" /> 
 +    </intermediateCatchEvent> 
 +    <endEvent id="Event_0hit4gl" name="Order fulfilled"> 
 +      <incoming>Flow_0ea0g86</incoming> 
 +    </endEvent> 
 +    <endEvent id="Event_1epbj0y" name="Заказ не оплачен"> 
 +      <incoming>Flow_165lj3o</incoming> 
 +      <signalEventDefinition id="SignalEventDefinition_0sujvcf" /> 
 +    </endEvent> 
 +  </process> 
 +  <process id="Process_1wlf5ng"> 
 +    <endEvent id="Event_1djafiu"> 
 +      <incoming>Flow_1w0i707</incoming> 
 +    </endEvent> 
 +    <task id="Activity_0s6xn85" name="Получить выписку банка"> 
 +      <incoming>Flow_1xejeiu</incoming> 
 +      <outgoing>Flow_0uoc8i4</outgoing> 
 +    </task> 
 +    <startEvent id="Event_18dtgco"> 
 +      <outgoing>Flow_1xejeiu</outgoing> 
 +      <timerEventDefinition id="TimerEventDefinition_07wxqid" /> 
 +    </startEvent> 
 +    <subProcess id="Activity_0wt68c5"> 
 +      <incoming>Flow_0uoc8i4</incoming> 
 +      <outgoing>Flow_1w0i707</outgoing> 
 +      <multiInstanceLoopCharacteristics /> 
 +      <startEvent id="Event_0u09w02"> 
 +        <outgoing>Flow_1j3yt6b</outgoing> 
 +      </startEvent> 
 +      <sequenceFlow id="Flow_1j3yt6b" sourceRef="Event_0u09w02" targetRef="Activity_1qvaa6n" /> 
 +      <task id="Activity_1qvaa6n" name="Идентифицировать платеж"> 
 +        <incoming>Flow_1j3yt6b</incoming> 
 +        <outgoing>Flow_12i57do</outgoing> 
 +        <property id="Property_1irqq7e" name="__targetRef_placeholder" /> 
 +        <dataInputAssociation id="DataInputAssociation_0w9yq2y"> 
 +          <sourceRef>DataStoreReference_1o133y4</sourceRef> 
 +          <targetRef>Property_1irqq7e</targetRef> 
 +        </dataInputAssociation> 
 +      </task> 
 +      <exclusiveGateway id="Gateway_0r19iqd" name="Успешно?"> 
 +        <incoming>Flow_12i57do</incoming> 
 +        <outgoing>Flow_0kxrz4w</outgoing> 
 +        <outgoing>Flow_081u6je</outgoing> 
 +      </exclusiveGateway> 
 +      <sequenceFlow id="Flow_12i57do" sourceRef="Activity_1qvaa6n" targetRef="Gateway_0r19iqd" /> 
 +      <sequenceFlow id="Flow_0kxrz4w" sourceRef="Gateway_0r19iqd" targetRef="Event_1af95w7" /> 
 +      <sequenceFlow id="Flow_081u6je" sourceRef="Gateway_0r19iqd" targetRef="Event_10qt9l3" /> 
 +      <endEvent id="Event_10qt9l3" name="Счет оплачен"> 
 +        <incoming>Flow_081u6je</incoming> 
 +        <messageEventDefinition id="MessageEventDefinition_15alkdx" /> 
 +      </endEvent> 
 +      <endEvent id="Event_1af95w7" name="Неопознанный платеж"> 
 +        <incoming>Flow_0kxrz4w</incoming> 
 +        <signalEventDefinition id="SignalEventDefinition_0ffic21" /> 
 +      </endEvent> 
 +    </subProcess> 
 +    <sequenceFlow id="Flow_1w0i707" sourceRef="Activity_0wt68c5" targetRef="Event_1djafiu" /> 
 +    <sequenceFlow id="Flow_1xejeiu" sourceRef="Event_18dtgco" targetRef="Activity_0s6xn85" /> 
 +    <sequenceFlow id="Flow_0uoc8i4" sourceRef="Activity_0s6xn85" targetRef="Activity_0wt68c5" /> 
 +    <textAnnotation id="TextAnnotation_1l2chg1"> 
 +      <text>для каждой строки</text> 
 +    </textAnnotation> 
 +    <association id="Association_12k4a5n" sourceRef="Activity_0wt68c5" targetRef="TextAnnotation_1l2chg1" /> 
 +  </process> 
 +  <bpmndi:BPMNDiagram id="BPMNDiagram_1"> 
 +    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Collaboration_1b1ot1c"> 
 +      <bpmndi:BPMNShape id="Participant_0izktdm_di" bpmnElement="Participant_0izktdm" isHorizontal="true"> 
 +        <omgdc:Bounds x="250" y="70" width="880" height="220" /> 
 +        <bpmndi:BPMNLabel /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Event_068gu40_di" bpmnElement="Event_068gu40"> 
 +        <omgdc:Bounds x="312" y="122" width="36" height="36" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Activity_12gb2fh_di" bpmnElement="Activity_12gb2fh"> 
 +        <omgdc:Bounds x="380" y="100" width="100" height="80" /> 
 +        <bpmndi:BPMNLabel /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Gateway_0mu72rh_di" bpmnElement="Gateway_0mu72rh" isMarkerVisible="true"> 
 +        <omgdc:Bounds x="515" y="115" width="50" height="50" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Event_0b3f4gw_di" bpmnElement="Event_0b3f4gw"> 
 +        <omgdc:Bounds x="522" y="202" width="36" height="36" /> 
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="509" y="245" width="62" height="27" /> 
 +        </bpmndi:BPMNLabel> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Activity_10zgl85_di" bpmnElement="Activity_10zgl85"> 
 +        <omgdc:Bounds x="740" y="100" width="100" height="80" /> 
 +        <bpmndi:BPMNLabel /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Activity_1eyrek7_di" bpmnElement="Activity_1eyrek7"> 
 +        <omgdc:Bounds x="600" y="100" width="100" height="80" /> 
 +        <bpmndi:BPMNLabel /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Gateway_06lx2sv_di" bpmnElement="Gateway_1gwnzbk"> 
 +        <omgdc:Bounds x="875" y="115" width="50" height="50" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Event_1av4kzg_di" bpmnElement="Event_142pbws"> 
 +        <omgdc:Bounds x="962" y="202" width="36" height="36" /> 
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="953" y="253" width="54" height="14" /> 
 +        </bpmndi:BPMNLabel> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Event_02xkuze_di" bpmnElement="Event_02xkuze"> 
 +        <omgdc:Bounds x="962" y="122" width="36" height="36" /> 
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="946" y="165" width="69" height="14" /> 
 +        </bpmndi:BPMNLabel> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Event_0hit4gl_di" bpmnElement="Event_0hit4gl"> 
 +        <omgdc:Bounds x="1052" y="202" width="36" height="36" /> 
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="1037" y="245" width="66" height="14" /> 
 +        </bpmndi:BPMNLabel> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Event_0uxehb2_di" bpmnElement="Event_1epbj0y"> 
 +        <omgdc:Bounds x="1052" y="122" width="36" height="36" /> 
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="1034" y="165" width="73" height="14" /> 
 +        </bpmndi:BPMNLabel> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNEdge id="Flow_09aipy9_di" bpmnElement="Flow_09aipy9"> 
 +        <omgdi:waypoint x="348" y="140" /> 
 +        <omgdi:waypoint x="380" y="140" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_16kqfso_di" bpmnElement="Flow_16kqfso"> 
 +        <omgdi:waypoint x="480" y="140" /> 
 +        <omgdi:waypoint x="515" y="140" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_1s33fqb_di" bpmnElement="Flow_1s33fqb"> 
 +        <omgdi:waypoint x="540" y="165" /> 
 +        <omgdi:waypoint x="540" y="202" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_008j1br_di" bpmnElement="Flow_008j1br"> 
 +        <omgdi:waypoint x="565" y="140" /> 
 +        <omgdi:waypoint x="600" y="140" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_1ins0qh_di" bpmnElement="Flow_1ins0qh"> 
 +        <omgdi:waypoint x="700" y="140" /> 
 +        <omgdi:waypoint x="740" y="140" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_1lsywu4_di" bpmnElement="Flow_1lsywu4"> 
 +        <omgdi:waypoint x="840" y="140" /> 
 +        <omgdi:waypoint x="875" y="140" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_0bg3trg_di" bpmnElement="Flow_0bg3trg"> 
 +        <omgdi:waypoint x="900" y="165" /> 
 +        <omgdi:waypoint x="900" y="220" /> 
 +        <omgdi:waypoint x="962" y="220" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_0ea0g86_di" bpmnElement="Flow_0ea0g86"> 
 +        <omgdi:waypoint x="998" y="220" /> 
 +        <omgdi:waypoint x="1052" y="220" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_1wyen10_di" bpmnElement="Flow_1wyen10"> 
 +        <omgdi:waypoint x="925" y="140" /> 
 +        <omgdi:waypoint x="962" y="140" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_165lj3o_di" bpmnElement="Flow_165lj3o"> 
 +        <omgdi:waypoint x="998" y="140" /> 
 +        <omgdi:waypoint x="1052" y="140" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNShape id="Participant_0pfnmlo_di" bpmnElement="Participant_0pfnmlo" isHorizontal="true"> 
 +        <omgdc:Bounds x="370" y="410" width="761" height="260" /> 
 +        <bpmndi:BPMNLabel /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="TextAnnotation_1l2chg1_di" bpmnElement="TextAnnotation_1l2chg1"> 
 +        <omgdc:Bounds x="1050" y="590" width="61" height="55" /> 
 +        <bpmndi:BPMNLabel /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Event_1djafiu_di" bpmnElement="Event_1djafiu"> 
 +        <omgdc:Bounds x="1072" y="520" width="36" height="36" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Activity_0s6xn85_di" bpmnElement="Activity_0s6xn85"> 
 +        <omgdc:Bounds x="500" y="498" width="100" height="80" /> 
 +        <bpmndi:BPMNLabel /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Event_0l6bz8h_di" bpmnElement="Event_18dtgco"> 
 +        <omgdc:Bounds x="432" y="520" width="36" height="36" /> 
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="318" y="580" width="25" height="14" /> 
 +        </bpmndi:BPMNLabel> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Activity_0wt68c5_di" bpmnElement="Activity_0wt68c5" isExpanded="true"> 
 +        <omgdc:Bounds x="640" y="435" width="390" height="205" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Event_0u09w02_di" bpmnElement="Event_0u09w02"> 
 +        <omgdc:Bounds x="672" y="477" width="36" height="36" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Activity_1qvaa6n_di" bpmnElement="Activity_1qvaa6n"> 
 +        <omgdc:Bounds x="740" y="455" width="100" height="80" /> 
 +        <bpmndi:BPMNLabel /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Gateway_0r19iqd_di" bpmnElement="Gateway_0r19iqd" isMarkerVisible="true"> 
 +        <omgdc:Bounds x="875" y="470" width="50" height="50" /> 
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="889" y="448" width="23" height="14" /> 
 +        </bpmndi:BPMNLabel> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Event_009c15s_di" bpmnElement="Event_10qt9l3"> 
 +        <omgdc:Bounds x="962" y="477" width="36" height="36" /> 
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="951" y="520" width="59" height="14" /> 
 +        </bpmndi:BPMNLabel> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Event_1hnds2j_di" bpmnElement="Event_1af95w7"> 
 +        <omgdc:Bounds x="882" y="557" width="36" height="36" /> 
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="871" y="600" width="59" height="27" /> 
 +        </bpmndi:BPMNLabel> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNEdge id="Flow_1j3yt6b_di" bpmnElement="Flow_1j3yt6b"> 
 +        <omgdi:waypoint x="708" y="495" /> 
 +        <omgdi:waypoint x="740" y="495" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_12i57do_di" bpmnElement="Flow_12i57do"> 
 +        <omgdi:waypoint x="840" y="495" /> 
 +        <omgdi:waypoint x="875" y="495" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_0kxrz4w_di" bpmnElement="Flow_0kxrz4w"> 
 +        <omgdi:waypoint x="900" y="520" /> 
 +        <omgdi:waypoint x="900" y="557" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_081u6je_di" bpmnElement="Flow_081u6je"> 
 +        <omgdi:waypoint x="925" y="495" /> 
 +        <omgdi:waypoint x="962" y="495" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Association_12k4a5n_di" bpmnElement="Association_12k4a5n"> 
 +        <omgdi:waypoint x="1030" y="587" /> 
 +        <omgdi:waypoint x="1050" y="592" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_1w0i707_di" bpmnElement="Flow_1w0i707"> 
 +        <omgdi:waypoint x="1030" y="538" /> 
 +        <omgdi:waypoint x="1072" y="538" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_1xejeiu_di" bpmnElement="Flow_1xejeiu"> 
 +        <omgdi:waypoint x="468" y="538" /> 
 +        <omgdi:waypoint x="500" y="538" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_0uoc8i4_di" bpmnElement="Flow_0uoc8i4"> 
 +        <omgdi:waypoint x="600" y="538" /> 
 +        <omgdi:waypoint x="640" y="538" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNShape id="DataStoreReference_1o133y4_di" bpmnElement="DataStoreReference_1o133y4"> 
 +        <omgdc:Bounds x="765" y="325" width="50" height="50" /> 
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="679" y="343" width="76" height="14" /> 
 +        </bpmndi:BPMNLabel> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNEdge id="DataOutputAssociation_17kcwns_di" bpmnElement="DataOutputAssociation_17kcwns"> 
 +        <omgdi:waypoint x="790" y="180" /> 
 +        <omgdi:waypoint x="790" y="325" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="DataInputAssociation_0w9yq2y_di" bpmnElement="DataInputAssociation_0w9yq2y"> 
 +        <omgdi:waypoint x="790" y="375" /> 
 +        <omgdi:waypoint x="790" y="455" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_00xbn5f_di" bpmnElement="Flow_00xbn5f"> 
 +        <omgdi:waypoint x="980" y="477" /> 
 +        <omgdi:waypoint x="980" y="238" /> 
 +      </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" 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"> 
 +  <process id="Process_1" isExecutable="false"> 
 +    <exclusiveGateway id="Gateway_04akzo7" name="Статус счета &#39;оплачен&#39;?"> 
 +      <incoming>Flow_158maf0</incoming> 
 +      <outgoing>Flow_0kylthe</outgoing> 
 +      <outgoing>Flow_14u27z9</outgoing> 
 +    </exclusiveGateway> 
 +    <task id="Activity_03e92gq" name="..."> 
 +      <incoming>Flow_0kylthe</incoming> 
 +    </task> 
 +    <sequenceFlow id="Flow_0kylthe" name="да" sourceRef="Gateway_04akzo7" targetRef="Activity_03e92gq" /> 
 +    <task id="Activity_0t18jdq" name="..."> 
 +      <outgoing>Flow_1afx0lh</outgoing> 
 +    </task> 
 +    <intermediateCatchEvent id="Event_1dsja6c"> 
 +      <incoming>Flow_14u27z9</incoming> 
 +      <incoming>Flow_1afx0lh</incoming> 
 +      <outgoing>Flow_158maf0</outgoing> 
 +      <timerEventDefinition id="TimerEventDefinition_0s6iums" /> 
 +    </intermediateCatchEvent> 
 +    <sequenceFlow id="Flow_14u27z9" name="нет" sourceRef="Gateway_04akzo7" targetRef="Event_1dsja6c" /> 
 +    <sequenceFlow id="Flow_158maf0" sourceRef="Event_1dsja6c" targetRef="Gateway_04akzo7" /> 
 +    <sequenceFlow id="Flow_1afx0lh" sourceRef="Activity_0t18jdq" targetRef="Event_1dsja6c" /> 
 +  </process> 
 +  <bpmndi:BPMNDiagram id="BPMNDiagram_1"> 
 +    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_1"> 
 +      <bpmndi:BPMNShape id="Gateway_04akzo7_di" bpmnElement="Gateway_04akzo7" isMarkerVisible="true"> 
 +        <omgdc:Bounds x="255" y="105" width="50" height="50" /> 
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="241" y="162" width="79" height="27" /> 
 +        </bpmndi:BPMNLabel> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Activity_03e92gq_di" bpmnElement="Activity_03e92gq"> 
 +        <omgdc:Bounds x="360" y="90" width="100" height="80" /> 
 +        <bpmndi:BPMNLabel /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Activity_0t18jdq_di" bpmnElement="Activity_0t18jdq"> 
 +        <omgdc:Bounds x="30" y="90" width="100" height="80" /> 
 +        <bpmndi:BPMNLabel /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNShape id="Event_1qdilzi_di" bpmnElement="Event_1dsja6c"> 
 +        <omgdc:Bounds x="182" y="112" width="36" height="36" /> 
 +      </bpmndi:BPMNShape> 
 +      <bpmndi:BPMNEdge id="Flow_0kylthe_di" bpmnElement="Flow_0kylthe"> 
 +        <di:waypoint x="305" y="130" /> 
 +        <di:waypoint x="360" y="130" /> 
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="324" y="112" width="17" height="14" /> 
 +        </bpmndi:BPMNLabel> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_14u27z9_di" bpmnElement="Flow_14u27z9"> 
 +        <di:waypoint x="280" y="105" /> 
 +        <di:waypoint x="280" y="70" /> 
 +        <di:waypoint x="200" y="70" /> 
 +        <di:waypoint x="200" y="112" /> 
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="293" y="73" width="13" height="14" /> 
 +        </bpmndi:BPMNLabel> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_158maf0_di" bpmnElement="Flow_158maf0"> 
 +        <di:waypoint x="218" y="130" /> 
 +        <di:waypoint x="255" y="130" /> 
 +      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_1afx0lh_di" bpmnElement="Flow_1afx0lh"> 
 +        <di:waypoint x="130" y="130" /> 
 +        <di:waypoint x="182" y="130" /> 
 +      </bpmndi:BPMNEdge> 
 +    </bpmndi:BPMNPlane> 
 +  </bpmndi:BPMNDiagram> 
 +</definitions> 
 +</bpmnio> 
 + 
 +В случае неисполняемой модели событие-условие моделирует действия сотрудника, который периодически нажимает клавишу F5 на странице информационной системы,  
 +отображающей перечень выставленных счетов с их статусом.
  
 ===== Исключения ===== ===== Исключения =====
  
-  * Исключения из правила (если есть)+Схема взаимодействия с помощью событий-сообщений приемлемаесли в нем участвуют ровно два процесса.
  
 ===== Смотри также ===== ===== Смотри также =====
  
-  * Ссылки на страницы со схожим контентом (опционально)+  * [[external_event]] 
 +  * [[event_gateway_warning]] 
 +  * [[collapsed_subprocess]] 
 +  * [[single_process]]
  
 ===== Автор(ы) ===== ===== Автор(ы) =====
  
  --- //[[user:bell|Anatoly Belaychuk]] 2024-08-27 18:18//  --- //[[user:bell|Anatoly Belaychuk]] 2024-08-27 18:18//