Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
ru:rule:check_subprocess_results [2023-08-19 13:27] – удалено - внешнее изменение (Дата неизвестна) 127.0.0.1ru:rule:check_subprocess_results [2024-09-19 22:05] (текущий) – [Исключения] Anatoly Belaychuk
Строка 1: Строка 1:
 +====== На выходе из подпроцесса проверяйте его результат ======
 +
 +{{tag>подпроцесс развилка}}
 +
 +===== ✔ Как надо =====
 +
 +<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_18m1du3">
 +    <subProcess id="Activity_1hd1dgq" name="Согласование условий договора">
 +      <incoming>Flow_017eh8n</incoming>
 +      <outgoing>Flow_1gmtur1</outgoing>
 +    </subProcess>
 +    <exclusiveGateway id="Gateway_08zcsvd" name="Согласовано?">
 +      <incoming>Flow_1gmtur1</incoming>
 +      <outgoing>Flow_0znuxn6</outgoing>
 +      <outgoing>Flow_0eaj2kq</outgoing>
 +    </exclusiveGateway>
 +    <sequenceFlow id="Flow_1gmtur1" sourceRef="Activity_1hd1dgq" targetRef="Gateway_08zcsvd" />
 +    <task id="Activity_0p0yxli" name="Продолжить">
 +      <incoming>Flow_0znuxn6</incoming>
 +      <outgoing>Flow_1pbytyb</outgoing>
 +    </task>
 +    <sequenceFlow id="Flow_0znuxn6" name="да" sourceRef="Gateway_08zcsvd" targetRef="Activity_0p0yxli" />
 +    <endEvent id="Event_1tr3rn1" name="Не согласовано">
 +      <incoming>Flow_0eaj2kq</incoming>
 +    </endEvent>
 +    <sequenceFlow id="Flow_0eaj2kq" name="нет" sourceRef="Gateway_08zcsvd" targetRef="Event_1tr3rn1" />
 +    <startEvent id="Event_1mad8sj">
 +      <outgoing>Flow_017eh8n</outgoing>
 +    </startEvent>
 +    <sequenceFlow id="Flow_017eh8n" sourceRef="Event_1mad8sj" targetRef="Activity_1hd1dgq" />
 +    <endEvent id="Event_0j7s04q" name="Успех">
 +      <incoming>Flow_1pbytyb</incoming>
 +    </endEvent>
 +    <sequenceFlow id="Flow_1pbytyb" sourceRef="Activity_0p0yxli" targetRef="Event_0j7s04q" />
 +  </process>
 +  <bpmndi:BPMNDiagram id="BpmnDiagram_1">
 +    <bpmndi:BPMNPlane id="BpmnPlane_1" bpmnElement="Process_18m1du3">
 +      <bpmndi:BPMNShape id="Activity_0s12n49_di" bpmnElement="Activity_1hd1dgq">
 +        <omgdc:Bounds x="190" y="90" width="100" height="80" />
 +        <bpmndi:BPMNLabel />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Gateway_08zcsvd_di" bpmnElement="Gateway_08zcsvd" isMarkerVisible="true">
 +        <omgdc:Bounds x="335" y="105" width="50" height="50" />
 +        <bpmndi:BPMNLabel>
 +          <omgdc:Bounds x="345" y="75" width="30" height="14" />
 +        </bpmndi:BPMNLabel>
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Activity_0p0yxli_di" bpmnElement="Activity_0p0yxli">
 +        <omgdc:Bounds x="440" y="90" width="100" height="80" />
 +        <bpmndi:BPMNLabel />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Event_1tr3rn1_di" bpmnElement="Event_1tr3rn1">
 +        <omgdc:Bounds x="342" y="212" width="36" height="36" />
 +        <bpmndi:BPMNLabel>
 +          <omgdc:Bounds x="341" y="255" width="38" height="14" />
 +        </bpmndi:BPMNLabel>
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Event_1mad8sj_di" bpmnElement="Event_1mad8sj">
 +        <omgdc:Bounds x="112" y="112" width="36" height="36" />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Event_0j7s04q_di" bpmnElement="Event_0j7s04q">
 +        <omgdc:Bounds x="582" y="112" width="36" height="36" />
 +        <bpmndi:BPMNLabel>
 +          <omgdc:Bounds x="579" y="155" width="42" height="14" />
 +        </bpmndi:BPMNLabel>
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNEdge id="Flow_1gmtur1_di" bpmnElement="Flow_1gmtur1">
 +        <omgdi:waypoint x="290" y="130" />
 +        <omgdi:waypoint x="335" y="130" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_0znuxn6_di" bpmnElement="Flow_0znuxn6">
 +        <omgdi:waypoint x="385" y="130" />
 +        <omgdi:waypoint x="440" y="130" />
 +        <bpmndi:BPMNLabel>
 +          <omgdc:Bounds x="404" y="112" width="17" height="14" />
 +        </bpmndi:BPMNLabel>
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_0eaj2kq_di" bpmnElement="Flow_0eaj2kq">
 +        <omgdi:waypoint x="360" y="155" />
 +        <omgdi:waypoint x="360" y="212" />
 +        <bpmndi:BPMNLabel>
 +          <omgdc:Bounds x="369" y="181" width="13" height="14" />
 +        </bpmndi:BPMNLabel>
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_017eh8n_di" bpmnElement="Flow_017eh8n">
 +        <omgdi:waypoint x="148" y="130" />
 +        <omgdi:waypoint x="190" y="130" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_1pbytyb_di" bpmnElement="Flow_1pbytyb">
 +        <omgdi:waypoint x="540" y="130" />
 +        <omgdi:waypoint x="582" y="130" />
 +      </bpmndi:BPMNEdge>
 +    </bpmndi:BPMNPlane>
 +  </bpmndi:BPMNDiagram>
 +  <bpmndi:BPMNDiagram id="BPMNDiagram_0k8h0e8">
 +    <bpmndi:BPMNPlane id="BPMNPlane_05v2aah" bpmnElement="Activity_1hd1dgq" />
 +  </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_18m1du3">
 +    <subProcess id="Activity_1hd1dgq" name="Согласование условий договора">
 +      <incoming>Flow_014fv7m</incoming>
 +      <outgoing>Flow_15xjhk7</outgoing>
 +    </subProcess>
 +    <sequenceFlow id="Flow_15xjhk7" sourceRef="Activity_1hd1dgq" targetRef="Activity_0xmeje2" />
 +    <subProcess id="Activity_0xmeje2" name="Подготовка и подписание договора">
 +      <incoming>Flow_15xjhk7</incoming>
 +      <outgoing>Flow_1pveezk</outgoing>
 +    </subProcess>
 +    <endEvent id="Event_096q8k8" name="Успех">
 +      <incoming>Flow_1pveezk</incoming>
 +    </endEvent>
 +    <sequenceFlow id="Flow_1pveezk" sourceRef="Activity_0xmeje2" targetRef="Event_096q8k8" />
 +    <startEvent id="Event_0u89g2q">
 +      <outgoing>Flow_014fv7m</outgoing>
 +    </startEvent>
 +    <sequenceFlow id="Flow_014fv7m" sourceRef="Event_0u89g2q" targetRef="Activity_1hd1dgq" />
 +  </process>
 +  <bpmndi:BPMNDiagram id="BpmnDiagram_1">
 +    <bpmndi:BPMNPlane id="BpmnPlane_1" bpmnElement="Process_18m1du3">
 +      <bpmndi:BPMNShape id="Event_096q8k8_di" bpmnElement="Event_096q8k8">
 +        <omgdc:Bounds x="482" y="112" width="36" height="36" />
 +        <bpmndi:BPMNLabel>
 +          <omgdc:Bounds x="479" y="155" width="42" height="14" />
 +        </bpmndi:BPMNLabel>
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Event_0u89g2q_di" bpmnElement="Event_0u89g2q">
 +        <omgdc:Bounds x="112" y="112" width="36" height="36" />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Activity_0s12n49_di" bpmnElement="Activity_1hd1dgq">
 +        <omgdc:Bounds x="190" y="90" width="100" height="80" />
 +        <bpmndi:BPMNLabel />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNShape id="Activity_1k3mm3u_di" bpmnElement="Activity_0xmeje2">
 +        <omgdc:Bounds x="340" y="90" width="100" height="80" />
 +      </bpmndi:BPMNShape>
 +      <bpmndi:BPMNEdge id="Flow_15xjhk7_di" bpmnElement="Flow_15xjhk7">
 +        <omgdi:waypoint x="290" y="130" />
 +        <omgdi:waypoint x="340" y="130" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_1pveezk_di" bpmnElement="Flow_1pveezk">
 +        <omgdi:waypoint x="440" y="130" />
 +        <omgdi:waypoint x="482" y="130" />
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="Flow_014fv7m_di" bpmnElement="Flow_014fv7m">
 +        <omgdi:waypoint x="148" y="130" />
 +        <omgdi:waypoint x="190" y="130" />
 +      </bpmndi:BPMNEdge>
 +    </bpmndi:BPMNPlane>
 +  </bpmndi:BPMNDiagram>
 +  <bpmndi:BPMNDiagram id="BPMNDiagram_0k8h0e8">
 +    <bpmndi:BPMNPlane id="BPMNPlane_05v2aah" bpmnElement="Activity_1hd1dgq" />
 +  </bpmndi:BPMNDiagram>
 +  <bpmndi:BPMNDiagram id="BPMNDiagram_1gsascs">
 +    <bpmndi:BPMNPlane id="BPMNPlane_0qs6irk" bpmnElement="Activity_0xmeje2" />
 +  </bpmndi:BPMNDiagram>
 +</definitions>
 +</bpmnio>
 +
 +===== Примечания =====
 +
 +  * Если за подпроцессом не следует развилка, то это означает, что он всегда заканчивается успехом. Как правило, это не так - подпроцесс может закончиться успехом, а может неудачей. Поэтому если на схеме процесса после подпроцесса отсутствует развилка, то это если и не ошибка, то повод присмотреться и задать вопрос - предусматриваем ли мы здесь возможность неудачи.
 +  * Данное правило справедливо как по отношению к встроенному подпроцессу, так и к процессу, вызываемому как подпроцесс.
 +
 +===== Исключения =====
 +
 +  * Согласование условий договора может всегда заканчиваться успехом, если договор заключается между юридическими лицами внутри одной группы компаний - например, бизнес-единицей и общим центром обслуживания. В этом случае развилка после подпроцесса не потребуется.
 +===== Смотри также =====
 +
 +  * [[ru:rule:business_exception_error]]
 +  * [[ru:rule:human_decision]]
 +===== Автор(ы) =====
 +
 + --- //[[user:bell|Анатолий Белайчук]] 2023-08-06 13:49//