Интеграция Событий в движок BPMN

В ECOS могут происходить различные события, такие как:

  • создание нового документа;

  • смена статуса;

  • добавление комментария;

  • изменение свойств документа;

  • и т.д.

В бизнес-процессе мы должны иметь возможность реагировать на эти события - отправлять уведомления, если был добавлен комментарий, или запускать подпроцесс, если были изменены определенные свойства документа.
При этом, настройка реакции на события должна быть как можно более простой и удобной для пользователя.

Были выдвинуты следующие требования к интеграции событий в движок BPMN:

  1. Выбор типа события из списка доступных событий.

  2. Поддержка сторонних «пользовательских» событий, в том числе возникающих в пользовательских модулях.

  3. При реакции на события должна быть возможность получить информацию о событии и настраивать дополнительную модель на основе Records API.

  4. Catch события должны поддерживать предикаты для определения необходимости реакции на событие.

На основе этих требований был выполнен анализ возможностей signal и message в Camunda BPMN. В результате было решено использовать signals как основу построения интеграции Событий в движок BPMN, так как messages имеют достаточно сильные ограничения и не позволяют реализовать необходимую гибкость.

Базовая архитектура:

../../../_images/bpmn_events_arch_shema.png