Перейти к содержимому

Бизнес-процессы

Бизнес-процессы в Corta позволяют реализовать пользовательскую бизнес-логику без необходимости владения навыками программирования.

Этот раздел посвящён основным аспектам системы. Если вы хотите узнать больше о конкретной теме, обратитесь к подразделам в Руководстве разработчика Low-Code платформы → Автоматизация → Рабочие процессы.

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

Создание нового бизнес-процесса

Как включить рабочий процесс через панель администратора?

Чтобы создать рабочий процесс, перейдите в вашу инстанцию Corta и откройте приложение "Бизнес-процессы" (Workflows).

На экране отобразятся все доступные рабочие процессы. Здесь вы можете:

  • создать новый рабочий процесс, нажав кнопку Новый бизнес-процесс (New Workflow),

  • редактировать существующие рабочие процессы, кликнув по ним,

  • управлять глобальными разрешениями, нажав кнопку Разрешения (Permissions),

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

  • импортировать/экспортировать рабочие процессы, используя кнопки Импорт/Экспорт (Import/Export).

Как настроить новый бизнес-процесс

После нажатия на кнопку Новый бизнес-процесс (New Workflow) откроется новый экран с модальным окном, где нужно указать начальные параметры для описания рабочего процесса:

  • Метка

    пользовательский идентификатор рабочего процесса, например, "Тестовый процесс". Метка не накладывает никаких ограничений.

  • Идентификатор

    уникальное значение, которое можно использовать вместо системного идентификатора для упрощения ссылок.

  • Описание

    подробное описание рабочего процесса, чтобы лучше объяснить его назначение.

  • Выполнять от имени

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

Ограничения для идентификатора (Handle):

  • должно начинаться с буквы,
  • содержать не более 64 символов,
  • может включать только буквы, цифры, символы _(подчёркивание), - (дефис) или . (точка),
  • должно заканчиваться буквой или цифрой.

О редакторе бизнес-процессов

Редактор бизнес-процесса состоит из четырёх основных частей: экрана конфигурации рабочего процесса, панели инструментов, холста и конфигуратора шагов.

  • Конфигурация рабочего процесса

    доступна через значок шестерёнки в заголовке. Здесь задаются основные настройки рабочего процесса.

  • Панель инструментов

    содержит все доступные шаги.

  • Холст

    место, где вы создаёте и настраиваете рабочий процесс.

  • Конфигуратор шагов

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

Как построить бизнес-процесс

Чтобы начать создание бизнес-процесса, просто перетащите различные элементы (далее называемые шагами) с панели инструментов на холст. Если вы используете похожие шаги с одинаковыми настройками, можно ускорить процесс с помощью копирования и вставки (cmd+c и cmd+v).

Для определения последовательности бизнес-процесса соедините шаги, нарисовав соединитель между ними.

Чтобы изменить начальную или конечную точку соединителя, кликните на него, чтобы увидеть точки соединения, затем наведите курсор на точку и перетащите её к другому соединителю.

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

Управление жестами

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

Важно

  • Каждый рабочий процесс должен начинаться с триггера.
  • Шаг завершения является необязательным, но может повысить ясность.
  • Один рабочий процесс может содержать несколько триггеров и несколько шагов завершения.

Когда вы будете довольны своим рабочим процессом или захотите сохранить прогресс, нажмите кнопку Сохранить в нижней части экрана или используйте сочетание клавиш ctrl+s.

Как настроить бизнес-процесс

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

Чтобы настроить определённый шаг, нажмите на значок шестерёнки в заголовке шага. Чтобы настроить конкретный соединитель, кликните на его метку или дважды щёлкните по нему.

Настройки автоматически сохраняются для шага. Однако для применения изменений необходимо сохранить весь рабочий процесс.

Управление выполнением

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

Триггеры

Триггер определяет, когда запускается рабочий процесс и какие шаги должны быть выполнены в процессе его выполнения.

  • Один рабочий процесс может содержать несколько триггеров.

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

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

Пример

Если клиент подписывается на вашу рассылку, система находит все рабочие процессы, где триггер настроен на событие "пользователь зарегистрировался".

Триггер состоит из четырёх основных компонентов (настройки доступны через значок шестерёнки в заголовке):

  • Ресурс

    указывает, на какой объект системы реагирует триггер (например, запись, пользователь, документ).

  • Событие

    указывает, на какое событие реагирует триггер (например, создание записи, обновление данных, удаление).

  • Ограничения

    задают условия, при которых триггер срабатывает.

    • Пример: можно настроить триггер, чтобы он реагировал только на событие "создание записи" для модуля "Лиды" в пространстве CRM.
  • Начальная область

    определяет, какие данные будут доступны рабочему процессу сразу после его запуска.

    • Например, при работе с записями это могут быть: текущая запись, её предыдущая версия, связанный модуль, пространство (namespace) и ошибки валидации записи.

Совет

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

Завершение

Шаг завершения завершает выполнение рабочего процесса.

Шаг завершения завершает весь рабочий процесс, независимо от других ветвей выполнения.

Пример

Если одна из долгосрочных задач завершится, весь рабочий процесс будет остановлен, а другая долгосрочная задача будет отменена.

Подробнее о параллельных процессах см. в разделе Параллелизм.

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

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

  • Несколько шагов завершения позволяют намеренно завершить выполнение рабочего процесса.

Выражения

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

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

Подробнее о создании выражений см. в разделе Выражения.

Примеры использования:

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

Настройка шага выражений:

Нажмите на значок шестерёнки в заголовке шага выражений.

Чтобы добавить новое выражение, нажмите кнопку + Добавить. Кликните на выражение, чтобы развернуть или свернуть интерфейс редактирования.

Функции

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

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

Примеры использования:

  • создание нового коммерческого предложения для клиента,
  • отправка уведомления по электронной почте группе пользователей,
  • удаление заблокированного пользователя.

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

Настройка шага функции:

Нажмите на значок шестерёнки в заголовке шага функции.

В выпадающем меню в разделе "Тип" выберите функцию, которую вы хотите выполнить.

После выбора функции появится список аргументов функции.

Аргументы функции определяют, какие данные используются для выполнения операции.

Пример: параметр сообщения в функции "log debug message" определяет сообщение, отображаемое в журнале отладки.

Шаг функции в примере: создаёт запись в журнале на основе предоставленных аргументов сообщения и полей

Аргументы функции могут передаваться двумя способами:

  • Константные значения

    передаются в функцию в неизменном виде. Используйте их, если данные не должны изменяться.

  • Выражения

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

Обработка нескольких элементов

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

Итератор позволяет последовательно обрабатывать серию элементов один за другим.

Итератор состоит из двух основных частей:

  • Конфигурация итератора

    Для доступа к настройкам итератора нажмите на значок шестерёнки в заголовке.

    • Конфигурация включает три части: тип, аргументы и результаты.
  • Тело итератора

    Здесь вы определяете, как именно обрабатываются элементы.

Типы итераторов

  • Условные итераторы

    Условный итератор выполняет повторение до тех пор, пока заданное условие остаётся истинным.

    • Пример: Если условие счетчик < 10, итератор будет повторяться до тех пор, пока значение счетчика меньше 10.
  • Итераторы по элементам

    Итератор по элементам последовательно обрабатывает каждый элемент из предоставленного набора данных.

    • Пример: Если передано 10 записей, итератор выполнится 10 раз, по одному разу для каждой записи.

    Большинство итераторов по элементам могут не только обрабатывать элементы, но и получать их из источника данных.

  • Итераторы по потокам

    Итератор по потокам обрабатывает данные из файла построчно.

    • Пример: Если передан текстовый документ с 10 строками (например, список email-адресов), итератор выполнится 10 раз, по одному разу для каждой строки.

    Важно: При использовании итераторов по потокам с произвольными типами файлов будьте осторожны. Несоответствие типов файлов или кодировок может привести к некорректной обработке данных.

Аргументы итераторов

Аргументы итераторов определяют, с какими данными итератор будет работать. Они могут быть переданы двумя способами:

  • Константы

    Константные значения передаются в итератор в неизменном виде. Используйте этот способ, если данные не должны изменяться в процессе выполнения.

    • Пример: Передача фиксированного числа записей.
  • Выражения

    Выражения вычисляются перед передачей в итератор, и в него передается результат. Это удобно, если необходимо динамически изменять входные данные без добавления дополнительных шагов.

    • Пример: Увеличение значения переменной на каждом шаге итерации.

Результаты итераторов

Во время выполнения итератора на каждом шаге генерируются результаты, которые зависят от типа итератора. Эти результаты можно использовать для дальнейшей обработки данных.

Тело итератора

Тело итератора определяется первым выходящим соединением. Второе соединение указывает, куда переходит выполнение после завершения итератора.

  • Тело итератора (body): Здесь вы задаете действия, которые необходимо выполнить для каждого элемента.

    • Пример: Отправка email-уведомлений на каждом шаге итерации.

  • Завершение тела итератора (end): Итератор завершается автоматически, если не используются специальные шаги управления (continue или break).

Не создавайте бесконечные циклы, используя соединения. Для завершения итерации используйте шаги continue или break.

Управление выполнением итератора

Иногда может потребоваться досрочно завершить текущую итерацию или весь процесс итератора. Для этого в Corta предусмотрены шаги continue и break.

Шаг continue:

Прерывает текущую итерацию и переходит к следующей (если она есть).

  • Пример: Используется, если текущий элемент не соответствует условиям обработки.

Шаг break:

Полностью завершает выполнение итератора.

  • Пример: Применяется, если достигнута цель выполнения (например, найден нужный элемент) или произошла ошибка.

Обработка ошибок

При работе с динамическими данными или внешними сервисами всегда существует риск возникновения ошибок. В Corta предусмотрены два подхода для обработки ошибок:

Обработка ошибок

Позволяет перехватывать и обрабатывать ошибки, возникающие в процессе выполнения итератора.

Пример

Если в процессе обработки записи происходит сбой, выполнение переходит в шаг обработки ошибок.

Вызов ошибки

Позволяет вручную инициировать ошибку, чтобы остановить выполнение процесса.

Пример

Используется, если обнаружены некорректные данные.

Использование шлюзов

Шлюзы позволяют реализовать условное выполнение шагов в зависимости от состояния процесса. В Corta доступны три типа шлюзов:

Эксклюзивные шлюзы

Определяют несколько условий, но выполняется только первое из них, которое соответствует истине.

Пример

Если пользователь уже подписан, отправить запрос на продление подписки.

Инклюзивные шлюзы

Определяют несколько условий, и выполняются все условия, которые соответствуют истине.

Пример

Отправка уведомлений сразу нескольким группам пользователей.

Параллельные шлюзы

Позволяют выполнять несколько веток параллельно.

Пример

Одновременная отправка данных в несколько систем.

Важно

Все параллельные ветки должны быть объединены с использованием второго параллельного шлюза.

Инклюзивные и объединяющие шлюзы

Шаг объединения ожидает завершения всех входящих путей. Если хотя бы один из инклюзивных путей не завершится, объединяющий шлюз никогда не завершится, и рабочий процесс будет выполняться бесконечно.

Рабочие процессы в Corta, по умолчанию, не имеют тайм-аута и продолжаются до тех пор, пока не будут принудительно остановлены.

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

Взаимодействие с пользователем

Шаги взаимодействия с пользователем в рабочих процессах Corta обрабатываются асинхронно. Это означает, что выполнение процесса приостанавливается до получения ответа от пользователя.

Шаг prompt позволяет запросить у пользователя дополнительное подтверждение или данные, например, адрес электронной почты получателя или недостающие параметры.

Основные типы prompt

  • Внешняя переадресация

    Перенаправляет пользователя на указанный URL в интернете.

    • Пример: Используется для загрузки файлов.
  • Внутренняя переадресация

    Перенаправляет пользователя на определенный маршрут внутри текущего веб-приложения Corta.

    • Пример: Список маршрутов доступен в файле /src/views/routes.js веб-приложения Corta.