SignalsGuide
Генерация и обработка событий
Версия 4.6.0
© 2015-2023, ООО "Процессные технологии"
# Общее описание и настройка
До версии 4.3.0 в RunaWFE для межпроцессного взаимодействия использовались такие элементы как "Отправить/Получить сообщение" (отправить сообщение/получить сообщение, пример использования механизма сообщений), близкими аналогами которых в BPMN являются сигналы и сообщения. В настоящий момент данные элементы заменены (с поддержкой обратной совместимости) на события обработки и генерации, которые делятся на следующие типы:
- сообщение
- сигнал
- отмена
- ошибка
В палитру графических элементов добавлены соответственно "Генерация события", "Обработка событий" (иконки в палитре соответствуют сообщениям до версии RunaWFE 4.3.0)
Тип события выбирается в свойствах элемента. Каждому типу соответствует свой значок.
События обработки можно использовать как в виде отдельного элемента так и помещать в: узел-действие, мультидействие, задачу сценария, подпроцесс (композицию), мультиподпроцесс. Генерация события используется только как отдельный элемент.
По умолчанию элемент помещенный на схему бизнес-процесса имеет тип "сообщение", в узел - "сигнал".
К элементу "Обработка события" помещенному в узел можно присоединить исходящий переход. В случае получения события на присоединенном переходе генерируется новая точка управления. При этом старая точка управления может оставаться. За данное поведение отвечает свойство "Прерывающий" - Да/Нет. По умолчанию установлено в значение "Да" т.е. при переходе старая точка управления удаляется.
Если событие не прерывающее, то значок обводится пунктиром.
Сообщение.
Отправить сообщение/получить сообщение, Пример использования механизма сообщений, Практическое занятие "Межпроцессное взаимодействие"
# Сигнал
Используются преимущественно для межпроцессного взаимодействия.
# Отмена
Инициируют или реагируют на отмену транзакции.
На примере ниже видно, что выполняется мультиподпроцесс в рамках которого запущено два подпроцесса. В мультиподпроцесс помещена обработка события "Отмена", событие прерывающее (т.к. значок не обведен пунктиром).
Если выполнить задачу "Отменить заявки", то сгенерированное сообщение будет обработано элементом "Обработка события" в мультиподпроцессе, в результате чего управление пойдет по исходящему переходу, а подпроцессы автоматически завершатся.
Если использовать свойство "Прерывающий" со значением "нет", то подпроцессы завершены не будут
# Ошибка
Позволяют сымитировать ошибку, а также выполнить обработку бизнес-исключения в процессе.
Замечание. Обработка исключений поддерживается только в задаче сценария (скрипте) и задаче бота..
Рассмотрим пример использования обработки бизнес-исключения.
В задачу-сценария помещен элемент "обработка события-ошибка", к которому присоединен исходящий переход в узел-действие "Task1". В сценарии используется SQL обработчик с намеренно некорректной конфигурацией.
В свойствах маршрутизации события используется переменная сообщения - "error_event_message", содержащая текст ошибки в случае возникновения исключения.
Запустим данный процесс на выполнение
Скрипт выполнился с ошибкой и точка управления пошла по исходящему из события-ошибки переходу в задачу Task1.
В переменной error содержится текст ошибки: