Процессы
Данный модуль предназначен для автоматизации бизнес процессов в системе. Позволяет отслеживать события происходящие в системе и запускать ряд операций, согласно заданной логике.
Для создания нового процесса необходимо иметь доступ к репозиторию с преднастроенной конфигурацией.
Предоставляет функционал:
- Проверка формата файлов при загрузке в корзину по шаблону файла.
- Изменение статусов файлов в процессе для отображения текущего состояния в системе.
- Отправка уведомлений при наступлении определённых событий.
Форма процессов доступна через пункт меню «Процессы». Через форму можно настроить, запустить инициализацию, просмотреть список экземпляров процессов. В дополнительных параметрах процесса доступна настройка подписок, токенов и просмотр атрибутов процесса.
Создание
Для добавления нового объекта требуется наличие в системе Репозитория, с настроенной конфигурацией.
- Для создания процесса, необходимо перейти на страницу «Управление процессами», используя пункт «Процессы» в левом меню, и нажать кнопку «Создать».

- Заполнить поля:

- Наименование: Указать наименование процесса
- Репозиторий: выбрать из списка доступных
- Статус - выбрать Активен
- Примечание - примечание, опционально, используется для описание для чего нужен процесс.
- Описание - описание процесса в диаграмме построения процесса
-
Параметры - описание параметров в формате JSON в конструкторе
-
Нажать кнопку "Создать"

Созданный процесс добавиться в список доступных процессов.
Подписки
Подписки обеспечивают возможность связывать системные события с запуском процессов.
Для добавления подписки перейдите в панель свойств и нажмите на кнопку "Управление подписками
".

-
Для создания подписки нажмите на кнопку создать и в мастере выберите:
-
Тип события: событие которое должен отслеживать процесс

- Тип объекта: К какому типу объекту должно принадлежать событие

- Объект: Объект на который отреагирует процесс

Нажмите кнопку "Сохранить" и далее "Завершить"

При поступлении указанного события на подписанный объект процесс будет инициирован с шага, обрабатывающего это событие.
Описание процесса
Для построения логики процесса используется графический редактор в виде диаграммы с блок-схемой.

Основные элементы диаграммы:
- Панель Функций
В панели функций доступно объявление функций для использования в блоке Операции. Доступны функции 2х видов
- Скрипты - позволять использовать функции скриптов описанных в объекте "Скрипты" Для объявления функции на основе скрипта нажмите на кнопку "Добавить" и заполните следующие поля:

- Скрипт - выберите доступный вам скрипт для использования из списка
- Функция - выберите необходимую функцию из списка
- Наименование - по умолчанию заполняется выбранной функцией, но доступно переопределение на заданное вами наименование, учтите, что для всех объявленных функций наименование является уникальным значением и не может повторяться.
Нажмите на кнопку создать, функция будет доступна для использования в шагах построения процесса
- Системные - системные функции, доступные для выполнения определенных действий в системе, не требующих описания функции в скрипте Для объявления функции включите переключатели требуемых для вас функций Доступные системные функции:
- ОбновитьСостояниеФайла - добавляет файлу статус для отображения в корзине и примечание
- ВыполнитьКонтрольКачества - запускает правило контроля, правило контроля определяется в параметрах
- ОтправитьУведомление - отправляет уведомление пользователю, уведомление для отправки определяется в параметрах

- Старт — начальный узел диаграммы, автоматически соединяется с первым добавленным блоком. Обязателен для сохранения.

- Событие — блок, реагирующий на определённое событие; предоставляет процессу данные из события для обработки. Событие может быть только начальным состоянием и не может находится в промежуточных узлах.

Панель свойств События

Позволяет настроить следующие параметры: - Наименование: наименование блока, определяющего события. Наименование отображается в блоке редактора - События: позволяет выбрать событие, которое ожидается. Доступные события для выбора: - ЗагрузкаФайлаВКорзину - реагирует на загрузку файла в облако, определие объекта корзин задается в Подписках
Ограничения: Наименование не должно содержать только числовые значения При возникновении ошибок с сохранением таких описаний требуется установить корректное наименование и сохранить процесс
- Операция — выполняет определённое действие; список доступных операций предоставлен системой. Аргументы операций обычно предопределены, при необходимости могут быть изменены пользователем.

Панель свойств Операции

Позволяет настроить следующие параметры: - Наименование: наименование блока, определяющего перечень действий. Наименование отображается в блоке редактора - Действия: позволяет выбрать действие, которое должно выполниться при переходе на этот блок Доступные события для выбора определяются объявленными функциями, заданными в панели "Функций"
Ограничения: Наименование не должно содержать только числовые значения
- Условие — ветвление процесса на основании логического выражения (jq), с обязательным шагом по умолчанию на случай, если ни одно условие не выполнено.

Панель свойств Условия

Позволяет настроить следующие параметры: - Наименование: наименование блока, определяющего перечень действий. Наименование отображается в блоке редактора
Ограничения: Наименование не должно содержать только числовые значения
Сами условия определяются в связях(стрелки)

Для добавления условия, нужно добавить связь к нужному блоку и при нажатии на стрелку откроется панель свойств связи - Наименование: наименование условия в текстовом виде - Условие: описывает логическое выражение jq - Переключатель: переключает в поведение по умолчанию и не имеет условий, используется если ни одно из условий не удовлетворено
Ограничения: Наименование не должно содержать только числовые значения
- Окончание — узел завершения процесса, может быть связан с разными шагами.

Параметры процесса
Параметры позволют описать и передать неоходимые данные для выполнения операций при выполнении процесса. Все параметры объявленные в параметрах являются входными параметрами процесса и могут использоваться на любом шаге, если есть атрибуты объявленные в операции ссылающиеся на параметр процесса (в формате jq, например ${ .slug })
Для выполнения процесса требуется получение аргументов, которые известны пользователю. Для удобства работы и возможностью переопределения этих параметров пользователь может использовать параметры при запуске процесса.
Токены
Токены процесса позволяют инициализировать запуск процесса пользователю, указанному в параметрах токена.
Примеры
Процесс "Контроля формата файла по шаблону"
Описание процесса
Данный процесс автоматизирует проверку структуры данных загружаемого файла и обновление его статуса с последующим уведомлением пользователей или администраторов в зависимости от результата проверки.
Инструкция по созданию процесса
Определить триггер запуска:
- Автоматический триггер по событию
Для автоматической обработки файлов требуется наличие подписки.
Подписки настраиваются в доп.свойствах процесса в блоке операции Подписки
- Ручной запуск (или по API)
При ручном запуске параметры определяются вручную и передаются при запуске процесса
Определить необходимые действия в процессе
-
Системные функции - доступны в процессе и не требуют дополнительной настройки
-
Скрипты - требуют настроенный скрипт в разделе Скрипты
Настройка описания процесса
- Открыть конструктор процессов в полноэкранном режиме

- Добавить функции в панели "Функции"
Перейдите во вкладку "Системные" и включите переключатель на всех доступных функциях

При необходимости использования дополнительных действий, перейдите во вкладку "Скрипты" и выполните следующие действия:

- Нажмите кнопку
+для добавления функции. В появившейся форме создания функции заполните следующие поля: - Скрипт: выбрать скрипт в котором описаны все необходимые действия
- Функция: выбрать функцию из списка доступных и описанных в декларации
-
Наименование: ввести уникальное наименование функции
-
Нажмите кнопку "Сохранить"
-
Добавьте все функции, которые планируете использовать в процессе
-
Добавить шаг «Событие»
-
Нажмите кнопку
+для создания нового шага. При добавлении первого шага он автоматически становится стартовой точкой процесса. - В панели свойств настройте название шага — «Загрузка файла».
- Добавьте обработчик событий и выберите событие «ЗагрузкаФайлаВКорзину».

-
Добавить шаг «Операция» для проверки структуры файла
-
Создайте операцию и свяжите её со «Загрузкой файла».
- Назовите шаг — «Проверить структуру данных в файле».
- В действиях выберите из списка: «ПроверитьФайлПоШаблону».
- Укажите параметры действия:
- Шаблон — передается через параметры процесса (
${.template_slug}). - Файл — передается из события (
${.slug}).

-
Добавить шаг «Условие» для обработки результатов проверки
-
Создайте условие, свяжите его с предыдущей операцией.
- Назовите шаг — «Обработать результаты контроля формата файла».
- Этот шаг будет анализировать результат проверки (параметр
passed).

-
Добавить операцию при успешной проверке — обновление статуса на «Прошел проверку»
-
Создайте операцию с названием — «Сменить статус файла на "Прошел проверку".
- В действиях выберите: «ОбновитьСостояниеФайла».
- Заполните параметры:
статус— выберите Прошел проверку,примечание— передается из контроля качества (${.note}),файл— передается из события (${.slug}).

-
Добавить операцию при неуспешной проверке — обновление статуса на «Не прошел проверку» и уведомление пользователя
-
Создайте операцию с названием — «Сменить статус файла на "Не прошел проверку" и уведомить пользователя».
- Добавьте действие «ОбновитьСостояниеФайла» с параметрами:
статус— Не прошел проверку,примечание— из проверки (${.note}),файл— из события (${.slug}).- Добавьте действие «ОтправитьУведомление» с параметрами:
уведомление— из параметров (${.alert}),сообщение— из контроля формата (${.note}),получатель— из события (${.author}).

-
Добавить операцию при ошибках процесса — смена статуса на «Ошибка» и уведомление автора
-
Создайте операцию — «Сменить статус файла на ошибку и уведомить автора процесса».
- Добавьте действие «ОбновитьСостояниеФайла» с параметрами:
статус— Ошибка проверки,примечание— из контроля качества (${.note}),файл— из события (${.slug}).- Добавьте действие «ОтправитьУведомление» с параметрами:
уведомление— из параметров (${.alert}),сообщение— из контроля формата (${.note}),получатель— указать вручную ID автора процесса (например,${.admin}).

- Настроить переходы по результатам условия
Выведите связи от блока условий: "Обработать результаты контроля формата файла" к добавленным операциям.

В панели свойств связей пропишите выражения:
- При успешной проверке:
${ .passed == true }→ к операции «Сменить статус файла на "Прошел проверку"».

- При неуспешной проверке:
${ .passed == false }→ к операции «Сменить статус файла на "Не прошел проверку" и уведомить пользователя».

- Для случая «Нет соответствий» (переключатель включен):
- Включить переключатель "Нет соответствий" → к операции «Сменить статус файла на "Ошибку проверки" и уведомить автора процесса».

- Соединить операции без исходящих связей с блоком «Окончание» процесса

Краткое описание ключевых этапов процесса
| Шаг | Действие |
|---|---|
| Событие «Загрузка файла» | Запускает процесс и передает параметры |
| Операция «Проверить структуру» | Запускает действие проверку файла по шаблону |
| Условие «Обработать результат» | Анализирует результат проверки (passed) |
| Операция смены статуса на валидный | Меняет статус файла и фиксирует в системе |
| Операция смены статуса на невалидный и уведомление | Меняет статус файла и уведомляет пользователя |
| Операция смены статуса на ошибку и уведомление | Меняет статус файла и уведомляет администратора |
Параметры процесса
Для выполнения процесса используются следующие параметры:
slug- получает данные из события, при ручном запуске требуется указывать в параметрахtemplate_slug- указывается пользователем, требуется указания значения по умолчаниюnote- получает результат контроля формата файлаalert- указывается пользователем, требуется указание значения по умолчаниюauthor- получает данные из события, необязательный атрибутadmin- указывается пользователем, требуется указание значения по умолчанию, необязательный атрибут
Параметры в текстовом режиме конструктора
{
"version": 2.0,
"groups": [
{
"label": "Основные параметры",
"fields": [
{
"name": "alert",
"label": "Уведомление",
"type": "text",
"default": " ID уведомления "
},
{
"name": "slug",
"label": "Идентификатор файла",
"type": "text"
},
{
"name": "author",
"label": "Автор файла",
"type": "text"
},
{
"name": "admin",
"label": "Администратор",
"type": "text",
"default": " ID администратора "
},
{
"name": "template_slug",
"label": "Идентификатор шаблона",
"type": "text",
"default": " ID файла "
}
]
}
]
}
Правило создания шаблона для проверки формата
- Поддерживаются файлы форматов
.xlsx,.xls. - Шаблон описывается с использованием управляющих символов:
Разделитель выражения :>
Поддерживаемы выражения:
- r - регулярное выражение
- o - обязательность
- Пример шаблонов для ячейки A1:
- Точное совпадение:
Header1(значение в файле должно быть ровно «Header1») - Регулярное выражение:
r:>Header\d(значения Header1, Header2 и т.п.) - Необязательное значение:
o:>Header1(ячейка может быть пустой или содержать Header1) - Комбинация:
o,r:>Header\d(ячейка необязательна, если заполнена — должна соответствовать регулярке)
При указании в файле для проверки формул, проверка будет вестись по формуле, а не по результату формулы.
API
Запуск процесса
mutation ($input: ExecuteTriggerWorkflowMutation) {
public {
workflow {
executeTrigger(input: $input) {
ok
}
}
}
}
{
"input": {
"token": ******,
"arguments": [
{
"name": "context",
"body": "{\"value\":{\"boo\":[1,2],\"foo\":1}}",
"type": "json"
}
]
}
}