Расширение типов триггеров
Каждый рабочий процесс должен быть настроен с конкретным триггером — это точка входа для запуска выполнения.
Тип триггера обычно соответствует конкретному событию в окружении системы. В течение жизненного цикла приложения для определения типа триггера можно использовать любую часть системы с подписываемыми событиями: приём запросов, операции с коллекциями, задачи по расписанию и т. д.
Типы триггеров регистрируются в таблице триггеров плагина по строковому идентификатору. В плагине «Рабочий процесс» есть несколько встроенных триггеров:
'collection': срабатывает при операциях с коллекциями;'schedule': срабатывает по расписанию;'action': срабатывает при событиях после действия;
Для добавляемых типов триггеров нужно обеспечивать уникальность идентификаторов. Реализация подписки и отписки регистрируется на сервере, а интерфейс настройки — на клиенте.
Серверная часть
Любой триггер наследует базовый класс Trigger и реализует методы on и off для подписки на события окружения и отписки от них соответственно. В методе on в обратном вызове нужного события нужно вызвать this.workflow.trigger(), чтобы запустить рабочий процесс. В методе off выполняется очистка при отписке.
this.workflow — экземпляр плагина рабочего процесса, передаваемый в конструктор базового класса Trigger.
Затем в плагине, расширяющем рабочий процесс, зарегистрируйте экземпляр триггера в движке рабочего процесса:
После старта и загрузки сервера триггер типа 'interval' можно добавить и выполнять.
Клиентская часть
На клиенте в основном задаётся интерфейс настройки по параметрам, которые требует тип триггера. Каждый тип триггера также должен зарегистрировать свою конфигурацию в плагине «Рабочий процесс».
Например, для триггера периодического запуска, упомянутого выше, в форме настройки задайте обязательный параметр интервала (interval):
После этого зарегистрируйте этот тип триггера в экземпляре плагина рабочего процесса внутри вашего расширяющего плагина:
После этого новый тип триггера появится в интерфейсе настройки рабочего процесса.
Идентификатор типа триггера, зарегистрированный на клиенте, должен совпадать с идентификатором на сервере, иначе возникнут ошибки.
Подробнее об определении типов триггеров см. Справочник API.

