Триггеры шаблона миссии
Триггер определяет, каким способом запускается шаблон миссии. У каждого шаблона выбирается один триггер: ручной или API-запуск, вызов из другого шаблона, сообщение NATS или MQTT либо расписание Cron.
Действие «Начало» — обязательный узел на схеме workflow. Триггер — это настройка способа запуска, связанная с этим действием. Как добавить «Начало» на пустую схему, описано в статье «Построение workflow шаблона миссии».
Триггер задаёт источник запуска, а входные параметры — данные, которые миссия получает при запуске. Состав и правила проверки этих данных описаны в статье «Входные параметры шаблона миссии».
Где настраивается триггер
Тип и параметры триггера настраиваются в правой панели действия «Начало»:
- Откройте шаблон в редакторе workflow.
- Выберите действие «Начало».
- В правой панели выберите «Тип триггера».
- Заполните параметры выбранного типа.
- Сохраните шаблон.

При смене типа интерфейс предупреждает, что текущая конфигурация триггера будет удалена. После подтверждения параметры нового типа заполняются начальными значениями.
Выбор типа триггера
| Тип | Когда использовать |
|---|---|
| API | Миссию запускает пользователь из интерфейса либо внешняя система через API Execute |
| Child | Шаблон используется как часть другого workflow |
| NATS | Миссия должна запускаться при получении сообщения по одному из NATS subjects |
| MQTT | Миссия должна запускаться при публикации сообщения в один из MQTT topics |
| Cron | Миссия должна запускаться автоматически по расписанию |
API
Триггер API поддерживает два способа запуска:
- вручную из интерфейса WCS;
- запросом к API Execute.
Дополнительных параметров у триггера нет. Его конфигурация должна оставаться пустой.
Выберите API, если запуск инициирует оператор или внешняя система напрямую. Это единственный тип триггера, для которого интерфейс показывает команду ручного запуска миссии.
Данные запуска должны соответствовать схеме входных параметров шаблона.
.png)
Child
Триггер Child предназначен для шаблона, который вызывается из другого workflow действием «Выполнить шаблон миссии». Такой шаблон нельзя запустить вручную или запросом к API Execute.
Дополнительных параметров у триггера нет. Его конфигурация должна оставаться пустой.
Входные значения дочернего шаблона задаются в параметрах действия «Выполнить шаблон миссии» родительского workflow. Используйте Child для повторно используемых фрагментов сценария, которые не должны запускаться самостоятельно.
.png)
NATS
Триггер NATS запускает шаблон при получении сообщения по одному из настроенных subjects.
Подключение
| Параметр | Обязательный | Как заполнить |
|---|---|---|
| Host | Да | Сетевое имя или IP-адрес NATS-сервера без протокола. Например, nats.example.local |
| Port | Да | Порт NATS-сервера. Начальное значение — 4222. Допустимо целое число от 1 до 65535 |
| Использовать TLS | Нет | Включите, если подключение к серверу должно быть защищено TLS. Настройка должна соответствовать конфигурации NATS-сервера |
| Аутентификация | Нет | Выберите «Нет», «Имя пользователя / пароль» или «Токен» в соответствии с настройками сервера |
| Имя пользователя | Для выбранной аутентификации | Учётная запись NATS. Если указано имя, необходимо заполнить и пароль |
| Пароль | Для выбранной аутентификации | Пароль выбранной учётной записи. Не используется одновременно с токеном |
| Токен | Для выбранной аутентификации | Токен доступа NATS. Не используется одновременно с именем пользователя и паролем |
Subjects
Добавьте хотя бы один subject. Пустые и повторяющиеся значения сохранить нельзя.
В шаблонах subjects поддерживаются символы NATS:
*заменяет один сегмент имени, напримерorders.*.events;>заменяет оставшуюся часть имени и ставится в конце, напримерorders.>.
Добавляйте несколько subjects, если один шаблон должен реагировать на разные каналы сообщений. Перед сохранением проверьте, что слишком широкий шаблон не запускает лишние миссии.
.png)
MQTT
Триггер MQTT запускает шаблон при публикации сообщения в один из настроенных topics.
Подключение
Параметры Host, Port, TLS и аутентификации заполняются так же, как для NATS. Начальное значение Port для MQTT — 1883. Порт должен быть целым числом от 1 до 65535.
Доступны способы аутентификации «Нет», «Имя пользователя / пароль» и «Токен». Имя пользователя и пароль указываются вместе. Токен нельзя использовать одновременно с ними.
Topics
Добавьте хотя бы один topic. Пустые и повторяющиеся значения сохранить нельзя.
В фильтрах topics поддерживаются символы MQTT:
+заменяет один уровень, напримерwarehouse/+/events;#заменяет все оставшиеся уровни и ставится в конце, напримерwarehouse/#.
Параметр «Shared subscription» включает общую подписку. В таком режиме сообщения распределяются между подписчиками общей группы вместо доставки каждому из них. Включайте параметр только в том случае, если используемый MQTT-брокер поддерживает shared subscriptions и для контура настроена соответствующая группа.

Cron
Триггер Cron запускает шаблон автоматически по расписанию.
| Параметр | Обязательный | Как заполнить |
|---|---|---|
| Cron-выражения | Да | Добавьте минимум одно уникальное выражение из 5 или 6 полей. Например, 0 * * * * — каждый час в начале часа |
| Часовой пояс | Нет | Укажите часовой пояс IANA, например UTC или Europe/Moscow. Если параметр не задан, расписание интерпретируется в часовом поясе, настроенном для сервиса |
| Параметры миссии по расписанию | Нет | JSON-объект со значениями входных параметров для каждого запуска по расписанию. Имена и типы значений должны соответствовать схеме шаблона |
Редактор принимает стандартные cron-выражения из 5 или 6 полей, а также сокращения @yearly, @annually, @monthly, @weekly, @daily, @hourly и @reboot. Пустые, повторяющиеся и синтаксически некорректные выражения сохранить нельзя.
Если «Параметры миссии по расписанию» не нужны, оставьте пустой JSON-объект {}. Пример для схемы с параметрами target_point и priority:
{
"target_point": "STATION_05",
"priority": 5
}.png)
Активность шаблона
После настройки активируйте шаблон, когда он будет готов к использованию.
Для неактивного шаблона обработчики NATS и MQTT не прослушивают сообщения, а расписание Cron не запускает миссии. Неактивные шаблоны также не предлагаются как доступные для обычного ручного запуска или выбора в действии «Выполнить шаблон миссии».
Если триггер настроен правильно, но миссия не запускается, сначала проверьте статус шаблона в реестре.
Проверка перед сохранением
Интерфейс не сохранит конфигурацию, если:
- для NATS или MQTT не указан Host;
- Port не является целым числом от 1 до 65535;
- заполнена только одна часть пары «Имя пользователя / пароль»;
- одновременно заданы имя пользователя с паролем и токен;
- не добавлен ни один subject, topic или Cron-выражение;
- в списке есть повторяющиеся значения;
- Cron-выражение или часовой пояс IANA имеют некорректный формат;
- JSON параметров Cron содержит синтаксическую ошибку.
После сохранения проверьте в реестре шаблонов тип триггера и статус шаблона. Для NATS, MQTT и Cron выполните контролируемый тестовый запуск на тестовом контуре.