Интеграция Событий в движок BPMN ================================ .. _bpmn_events_integrations: В ECOS могут происходить различные события, такие как: * создание нового документа; * смена статуса; * добавление комментария; * изменение свойств документа; * и т.д. В бизнес-процессе мы должны иметь возможность реагировать на эти события - отправлять уведомления, если был добавлен комментарий, или запускать подпроцесс, если были изменены определенные свойства документа. При этом, настройка реакции на события должна быть как можно более простой и удобной для пользователя. Были выдвинуты следующие требования к интеграции событий в движок BPMN: 1. Выбор типа события из списка доступных событий. 2. Поддержка сторонних "пользовательских" событий, в том числе возникающих в пользовательских модулях. 3. При реакции на события должна быть возможность получить информацию о событии и настраивать дополнительную модель на основе Records API. 4. Catch события должны поддерживать предикаты для определения необходимости реакции на событие. На основе этих требований был выполнен анализ возможностей **signal** и **message** в Camunda BPMN. В результате было решено использовать :ref:`signals ` как основу построения интеграции Событий в движок BPMN, так как messages имеют достаточно сильные ограничения и не позволяют реализовать необходимую гибкость. Базовая архитектура: .. image:: _static/bpmn_events_arch_shema.png :width: 900 :align: center