Построение workflow шаблона миссии
Workflow — это граф выполнения миссии. Действия задают начало, условия, завершение и промежуточные операции, а соединения — порядок переходов. Редактор сохраняет не только состав действий, но и их настройки, связи и положение на схеме.
Основные элементы редактора
- Рабочая область — место размещения и соединения действий.
- Управление шаблоном - кнопки запуска миссии, сохранения, восстановления сохраненой версии и меню с дополнительными действиями над шаблоном.
- Отмена / повтор — кнопки в левом верхнем углу.
- Масштаб и вписывание графа — стандартные кнопки в левом нижнем углу.
- Мини-карта — навигация по большой схеме в правом нижнем углу.
- Кнопка
+— выбор стартового триггера или открытие панели действий.
.png)
- Панель действий — группы доступных действий, поиск по названию и сервису. Назначение действий описано в статье «Справочник действий WorkFlow».

- Панель настроек — открывается при выборе действия.

1. Добавьте действие «Начало»
Каждый сохраняемый workflow должен содержать действие Начало. Действие «Начало» — обязательный узел схемы. Способ запуска шаблона задаётся его триггером.
- На пустой схеме нажмите «Добавить стартовое действие» или кнопку
+. - Выберите подходящий тип триггера.
.png)
- Выбор создаёт действие «Начало». Действие «Начало» в одном workflow используется только один раз. Если удалить «Начало», редактор снова предложит выбрать стартовый триггер. Без этого действия сохранение невозможно.
- Настройте триггер, если у выбранного типа триггера имеются настройки

5. При необходимости задайте входные параметры миссии.
.png)
2. Добавьте действия
После добавления действия «Начало» кнопка + открывает панель действий.
- Выберите группу или введите часть названия действия в строке поиска.
- Захватите нужное действие мышью.
- Перетащите его из панели действий в нужное место рабочей области.
- Повторите операцию для остальных действий.
Действия привязываются к сетке, поэтому их удобно выстраивать сверху вниз или слева направо. Большую схему можно перемещать и масштабировать; кнопка вписывания
показывает все размещённые на рабочей области действия.
.png)
3. Настройте действие
Подробнее о настройке действий смотрите в статье Параметры действий «Workflow». Состав обязательных полей и допустимые значения определяется типом действия. Ошибки формы и неизвестные переменные проверяются при сохранении.
4. Соедините действия
Чтобы создать переход, перетащите линию от выходного порта исходного действия к входному порту следующего.
Поддерживаются выходы:
- основной — успешное продолжение;
.png)
- if true и if false — результаты действия «Если»;
- error — переход при ошибке, если он предусмотрен действием.
.png)
Целевой порт обычного перехода — основной вход действия. Нельзя соединить действие само с собой или вести новое соединение из действия «Ошибка». Стрелка показывает направление выполнения.
Чтобы удалить связь, наведите указатель на линию и нажмите появившийся значок ×. После изменения проверьте, что каждая нужная ветка достижима от действия «Начало» и имеет понятное завершение.
.png)
5. Организуйте ветвление и завершение
Ошибочное завершение
Используйте действие Ошибка, когда ветка должна явно завершить миссию ошибкой. После «Ошибки» продолжение невозможно.
Успешный результат
Используйте действие Вернуть результат, чтобы штатно вернуть итог выполнения, в том числе вызывающему workflow с триггером Child.
.png)
Работа с ресурсами
Если workflow резервирует ресурс действием Зарезервировать..., предусмотрите соответствующее Освободить... во всех ветках, где ресурс больше не нужен, включая обработку ошибок.
.png)
Быстрые действия и горячие клавиши
При наведении на действие появляются кнопки:
- Дублировать — создаёт копию ниже исходного действия с новым ID; соединения не копируются;
- Удалить — удаляет действие и все связанные с ним линии.
.png)
Действие «Начало» дублировать нельзя.
Доступны горячие клавиши, когда курсор не находится в текстовом поле или редакторе выражений:
| Действие | Windows / Linux | macOS |
|---|---|---|
| Отменить | Ctrl+Z | Cmd+Z |
| Повторить | Ctrl+Y или Ctrl+Shift+Z | Cmd+Y или Cmd+Shift+Z |
| Сохранить | Ctrl+S | Cmd+S |
| Удалить выбранное действие | Delete или Backspace | Delete или Backspace |
Кнопки отмены и повтора становятся недоступными, если соответствующей операции нет в истории.
Пример: отправка робота с учётом приоритета
Предположим, действие «Начало» содержит параметры:
target_point— обязательный ID точки;priority— целое число от 1 до 10;notify— необязательное логическое значение.
Постройте схему:

- В действии «Если» задайте условие
$params.priority >= 8. - Выход if true подключите сразу к действию Транспортный ордер.
- Выход if false подключите к действию Пауза, а затем к Транспортный ордер.
- В поле точки назначения обоих действий «Транспортный ордер» включите режим выражения и укажите
$params.target_point. - Основные выходы «Транспортного ордера» подключите к действию «Вернуть результат».
- Если у действия доступен выход error, подключите его к действию «Сообщение в лог» и затем к «Ошибка» либо сразу к «Ошибка».
- Сохраните workflow и выполните тестовый запуск с высоким и обычным приоритетом.
Такой шаблон миссии отправляет срочное задание сразу, а обычное — после заданной задержки.
Сохранение
При сохранении редактор проверяет:
- наличие действия «Начало»;
- обязательные параметры действий и соответствие их схемам;
- допустимость имён входных параметров;
- известность переменных в выражениях.
Действия с ошибками выделяются. Откройте такое действие, исправьте перечисленные поля и повторите сохранение. Сервер может вернуть дополнительные ошибки; они также привязываются к соответствующим действиям, если это возможно.

Контрольный список
Перед активацией шаблона проверьте:
- действие «Начало» настроено и соответствует способу запуска;
- все обязательные параметры действий заполнены;
- у действия «Если» подключены нужные ветки;
- ошибки действий обработаны там, где это необходимо;
- зарезервированные ресурсы освобождаются во всех ветках;
- коды действий понятны, а
$nodesи$paramsне содержат неизвестных путей; - лишние и недостижимые действия удалены;
- схема сохранена и проверена тестовым запуском.