В ECOS могут происходить различные события, такие как:
- создание нового документа;
- смена статуса;
- добавление комментария;
- изменение свойств документа;
- и т.д.
В бизнес-процессе мы должны иметь возможность реагировать на эти события - отправлять уведомления, если был добавлен комментарий, или запускать подпроцесс, если были изменены определенные свойства документа. При этом, настройка реакции на события должна быть как можно более простой и удобной для пользователя.
Были выдвинуты следующие требования к интеграции событий в движок BPMN:
- Выбор типа события из списка доступных событий.
- Поддержка сторонних "пользовательских" событий, в том числе возникающих в пользовательских модулях.
- При реакции на события должна быть возможность получить информацию о событии и настраивать дополнительную модель на основе Records API.
- Catch события должны поддерживать предикаты для определения необходимости реакции на событие.
На основе этих требований был выполнен анализ возможностей signal и message в Camunda BPMN. В результате было решено использовать signals <ecos_bpmn_events>
как основу построения интеграции Событий в движок BPMN, так как messages имеют достаточно сильные ограничения и не позволяют реализовать необходимую гибкость.
Базовая архитектура: