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