Процессы

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

Для создания нового процесса необходимо иметь доступ к репозиторию с преднастроенной конфигурацией.

Предоставляет функционал:

  • Проверка формата файлов при загрузке в корзину по шаблону файла.
  • Изменение статусов файлов в процессе для отображения текущего состояния в системе.
  • Отправка уведомлений при наступлении определённых событий.

Форма процессов доступна через пункт меню «Процессы». Через форму можно настроить, запустить инициализацию, просмотреть список экземпляров процессов. В дополнительных параметрах процесса доступна настройка подписок, токенов и просмотр атрибутов процесса.

Создание

Для добавления нового объекта требуется наличие в системе Репозитория, с настроенной конфигурацией.

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

  1. Заполнить поля:

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

  • Нажать кнопку "Создать"

Созданный процесс добавиться в список доступных процессов.

Подписки

Подписки обеспечивают возможность связывать системные события с запуском процессов.

Для добавления подписки перейдите в панель свойств и нажмите на кнопку "Управление подписками ".

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

  2. Тип события: событие которое должен отслеживать процесс

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

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

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

При поступлении указанного события на подписанный объект процесс будет инициирован с шага, обрабатывающего это событие.

Описание процесса

Для построения логики процесса используется графический редактор в виде диаграммы с блок-схемой.

Основные элементы диаграммы:

  1. Панель Функций

В панели функций доступно объявление функций для использования в блоке Операции. Доступны функции 2х видов

  • Скрипты - позволять использовать функции скриптов описанных в объекте "Скрипты" Для объявления функции на основе скрипта нажмите на кнопку "Добавить" и заполните следующие поля:

  • Скрипт - выберите доступный вам скрипт для использования из списка
  • Функция - выберите необходимую функцию из списка
  • Наименование - по умолчанию заполняется выбранной функцией, но доступно переопределение на заданное вами наименование, учтите, что для всех объявленных функций наименование является уникальным значением и не может повторяться.

Нажмите на кнопку создать, функция будет доступна для использования в шагах построения процесса

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

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

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

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

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

Ограничения: Наименование не должно содержать только числовые значения При возникновении ошибок с сохранением таких описаний требуется установить корректное наименование и сохранить процесс

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

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

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

Ограничения: Наименование не должно содержать только числовые значения

  1. Условие — ветвление процесса на основании логического выражения (jq), с обязательным шагом по умолчанию на случай, если ни одно условие не выполнено.

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

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

Ограничения: Наименование не должно содержать только числовые значения

Сами условия определяются в связях(стрелки)

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

Ограничения: Наименование не должно содержать только числовые значения

  1. Окончание — узел завершения процесса, может быть связан с разными шагами.

Параметры процесса

Параметры позволют описать и передать неоходимые данные для выполнения операций при выполнении процесса. Все параметры объявленные в параметрах являются входными параметрами процесса и могут использоваться на любом шаге, если есть атрибуты объявленные в операции ссылающиеся на параметр процесса (в формате jq, например ${ .slug })

Для выполнения процесса требуется получение аргументов, которые известны пользователю. Для удобства работы и возможностью переопределения этих параметров пользователь может использовать параметры при запуске процесса.

Токены

Токены процесса позволяют инициализировать запуск процесса пользователю, указанному в параметрах токена.

Примеры

Процесс "Контроля формата файла по шаблону"

Описание процесса

Данный процесс автоматизирует проверку структуры данных загружаемого файла и обновление его статуса с последующим уведомлением пользователей или администраторов в зависимости от результата проверки.

Инструкция по созданию процесса

Определить триггер запуска:
  • Автоматический триггер по событию

Для автоматической обработки файлов требуется наличие подписки.

Подписки настраиваются в доп.свойствах процесса в блоке операции Подписки

  • Ручной запуск (или по API)

При ручном запуске параметры определяются вручную и передаются при запуске процесса

Определить необходимые действия в процессе
  • Системные функции - доступны в процессе и не требуют дополнительной настройки

  • Скрипты - требуют настроенный скрипт в разделе Скрипты

Настройка описания процесса
  1. Открыть конструктор процессов в полноэкранном режиме

  1. Добавить функции в панели "Функции"

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

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

  • Нажмите кнопку + для добавления функции. В появившейся форме создания функции заполните следующие поля:
  • Скрипт: выбрать скрипт в котором описаны все необходимые действия
  • Функция: выбрать функцию из списка доступных и описанных в декларации
  • Наименование: ввести уникальное наименование функции

  • Нажмите кнопку "Сохранить"

  • Добавьте все функции, которые планируете использовать в процессе

  • Добавить шаг «Событие»

  • Нажмите кнопку + для создания нового шага. При добавлении первого шага он автоматически становится стартовой точкой процесса.

  • В панели свойств настройте название шага — «Загрузка файла».
  • Добавьте обработчик событий и выберите событие «ЗагрузкаФайлаВКорзину».

  1. Добавить шаг «Операция» для проверки структуры файла

  2. Создайте операцию и свяжите её со «Загрузкой файла».

  3. Назовите шаг — «Проверить структуру данных в файле».
  4. В действиях выберите из списка: «ПроверитьФайлПоШаблону».
  5. Укажите параметры действия:
  6. Шаблон — передается через параметры процесса (${.template_slug}).
  7. Файл — передается из события (${.slug}).

  1. Добавить шаг «Условие» для обработки результатов проверки

  2. Создайте условие, свяжите его с предыдущей операцией.

  3. Назовите шаг — «Обработать результаты контроля формата файла».
  4. Этот шаг будет анализировать результат проверки (параметр passed).

  1. Добавить операцию при успешной проверке — обновление статуса на «Прошел проверку»

  2. Создайте операцию с названием — «Сменить статус файла на "Прошел проверку".

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

  1. Добавить операцию при неуспешной проверке — обновление статуса на «Не прошел проверку» и уведомление пользователя

  2. Создайте операцию с названием — «Сменить статус файла на "Не прошел проверку" и уведомить пользователя».

  3. Добавьте действие «ОбновитьСостояниеФайла» с параметрами:
  4. статусНе прошел проверку,
  5. примечание — из проверки (${.note}),
  6. файл — из события (${.slug}).
  7. Добавьте действие «ОтправитьУведомление» с параметрами:
  8. уведомление — из параметров (${.alert}),
  9. сообщение — из контроля формата (${.note}),
  10. получатель — из события (${.author}).

  1. Добавить операцию при ошибках процесса — смена статуса на «Ошибка» и уведомление автора

  2. Создайте операцию — «Сменить статус файла на ошибку и уведомить автора процесса».

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

  1. Настроить переходы по результатам условия

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

В панели свойств связей пропишите выражения:

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

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

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

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

Краткое описание ключевых этапов процесса

Шаг Действие
Событие «Загрузка файла» Запускает процесс и передает параметры
Операция «Проверить структуру» Запускает действие проверку файла по шаблону
Условие «Обработать результат» Анализирует результат проверки (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"
      }
    ]
  }
}