Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
ru:rule:control_branch [2024-03-26 00:03] – [Примечания] Anatoly Belaychukru:rule:control_branch [2024-11-02 13:40] (текущий) – [✘ Как НЕ надо] Anatoly Belaychuk
Строка 1: Строка 1:
 ====== В качестве альтернативы прикрепленному обработчику можно использовать подпроцесс и контрольный поток управления ====== ====== В качестве альтернативы прикрепленному обработчику можно использовать подпроцесс и контрольный поток управления ======
  
-{{tag>подпроцесс событие прикрепленный_обработчик}}+{{tag>подпроцесс событие прикрепленный_обработчик событие-останов}}
  
 Для моделирования гибкой логики обработки событий используйте подпроцесс, содержащий основной и контрольный потоки управления. Для моделирования гибкой логики обработки событий используйте подпроцесс, содержащий основной и контрольный потоки управления.
 ===== ✔ Как надо ===== ===== ✔ Как надо =====
  
-Предположим, вам необходимо смоделировать ожидание поступления платежа от клиента с одновременным контролем срока оплаты и, в случае просрочки, выяснением причин. Используйте для этого следующие шаги:+Предположим, вам необходимо смоделировать ожидание поступления платежа от клиента с одновременным контролем срока оплаты и, в случае просрочки, выяснением причин. 
 +Для этого выполните следующие шаги:
  
   - Поместите задачу "Получить оплату" в подпроцесс.   - Поместите задачу "Получить оплату" в подпроцесс.
-  - Начните подпроцесса с параллельной развилки, из которой исходят две ветви, "рабочая" и "контрольная".+  - Начните подпроцесс с параллельной развилки, из которой исходят две ветви, "рабочая" и "контрольная".
   - Разместите задачу "Получить оплату" на рабочей ветви.   - Разместите задачу "Получить оплату" на рабочей ветви.
   - Разместите таймер на контрольной ветви.   - Разместите таймер на контрольной ветви.
Строка 253: Строка 254:
     <endEvent id="Event_1k1tn88" name="Оплачено">     <endEvent id="Event_1k1tn88" name="Оплачено">
       <incoming>Flow_0b5yo8b</incoming>       <incoming>Flow_0b5yo8b</incoming>
 +      <terminateEventDefinition id="TerminateEventDefinition_0jd5cs4" />
     </endEvent>     </endEvent>
     <sequenceFlow id="Flow_0b5yo8b" sourceRef="Activity_1mnvjuz" targetRef="Event_1k1tn88" />     <sequenceFlow id="Flow_0b5yo8b" sourceRef="Activity_1mnvjuz" targetRef="Event_1k1tn88" />
Строка 360: Строка 362:
   - Прикрепленный обработчик разрывает логику подпроцесса: часть логики оказывается внутри подпроцесса, часть - снаружи. Рассматриваемая альтернативная техника лишена этого недостатка.   - Прикрепленный обработчик разрывает логику подпроцесса: часть логики оказывается внутри подпроцесса, часть - снаружи. Рассматриваемая альтернативная техника лишена этого недостатка.
   - Как правило, предпочтительно [[ru:rule:collapsed_subprocess | изображать подпроцесс в свернутом виде ]], чтобы абстрагироваться от его внутреннего устройства, но в данном случае есть смысл показать подпроцесс развернутым, чтобы прояснить логику процесса.   - Как правило, предпочтительно [[ru:rule:collapsed_subprocess | изображать подпроцесс в свернутом виде ]], чтобы абстрагироваться от его внутреннего устройства, но в данном случае есть смысл показать подпроцесс развернутым, чтобы прояснить логику процесса.
-  - Как правило, [[ru:rule:one_outgoing_control_flow | из действия или события не должно выходить несколько потоков управления ]], но в данном случае допустимо изобразить основную и контрольную ветви выходящими непосредственно из стартового события:+  - Как правило, [[ru:rule:explicit_parallel_split| из действия или события не должно выходить несколько потоков управления ]], но в данном случае допустимо изобразить основную и контрольную ветви выходящими непосредственно из стартового события:
  
 <bpmnio type="bpmn"> <bpmnio type="bpmn">