Документация Corta
-
Аутентификация
-
Аутентификация внешних приложений
-
Аутентификация с использованием Corta
-
Модель безопасности
-
Управление приложениями
-
Настройка No Code
-
Макеты страниц
-
Версионность изменений
-
Настройка хранения записей
-
Открытие записей во всплывающих окнах
-
Импорт и экспорт приложений
-
Обнаружение дубликатов
-
Справочник типов полей
-
Справочник по блокам страницы
-
Доступ к системе Corta
-
Подключения к базам данных (DAL)
-
Управление подключениями
-
Конфиденциальность данных
-
Автоматизация
-
Детали выполнения автоматизации
-
Бизнес-процессы
-
Подпроцессы
-
Жизненный цикл выполнения
-
Руководство по стилю бизнес-процессов
-
Область видимости бизнес‑процесса: подробно
-
Обработка выбора записей
-
Работа с электронной почтой
-
Тестирование и отладка бизнес-процессов
-
Шлюз интеграции
-
Профайлер маршрутов интеграционного шлюза
-
Поисковый сервис
-
Отчётность
-
Предфильтры в Corta
-
Настройка интеграции данных в Corta
-
Обработка ошибки устаревших данных
Бизнес-процессы
Бизнес-процессы в 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.
-
Переход на страницу записи
Перенаправляет пользователя на страницу выбранной записи.
- Пример: Используется, чтобы направить пользователя на только что созданную запись.
-
Уведомление
Показывает пользователю краткое уведомление, которое автоматически скрывается после отображения.
- Пример: Используется для показа сообщений об успешном выполнении действий или информационных сообщений.
-
Алерт
Отображает пользователю важное уведомление, требующее внимания.
- Пример: Используется для отображения сообщений об ошибках или других важных событиях.
-
Подтверждение действия
Показывает уведомление с двумя кнопками для подтверждения или отказа от действия.
- Пример: Запрашивает дополнительное подтверждение перед выполнением операции или предлагает выбрать дальнейшее действие.
-
Ввод одного значения
Отображает поле для ввода значения пользователем.
- Пример: Используется для запроса недостающих данных, например, контактной информации или PIN-кода.
-
Выбор из списка
Показывает список опций в виде выпадающего меню или радиокнопок для выбора.
- Пример: Используется для более подробного запроса выбора по сравнению с подтверждением действия.
-
Выбор записи
Отображает окно для поиска и выбора записи из списка, которая передаётся далее в процесс.
- Пример: Позволяет пользователю выбрать запись, связанную с выполнением бизнес-процесса.
Задержка и расписание бизнес-процессов
В Corta вы можете запускать бизнес-процессы с задержкой или автоматически по расписанию. Это бывает очень полезно, когда нужно, чтобы действия выполнялись с определённой периодичностью (например, раз в месяц для продления подписки) или когда внешний сервис ограничивает количество обращений к своему API.
Для этого в платформе предусмотрены два специальных инструмента: шаг Задержка и триггер Запуск по расписанию.
Важно
Если в процессе используется шаг «Задержка» или шаг «Запрос к пользователю», процесс становится асинхронным, то есть его выполнение продолжится после паузы или после ответа пользователя. Имейте в виду, что в таком режиме нельзя отменить стандартные действия — например, отменить создание, обновление или удаление записи через этот процесс уже не получится.
Также внутри таких процессов пока нельзя реализовать подтверждение создания записи. Если вам нужно проверять или очищать данные, используйте для этого выражения на уровне полей.
Задержка выполнения процесса
С помощью шага «Задержка» можно сделать паузу в работе процесса на заданное время.
Это часто требуется при работе с сервисами, которые ограничивают количество запросов.
Например, если внешний сервис принимает только 10 запросов в минуту, а вам нужно обработать 100 объектов, процесс может работать так:
после обработки 10 объектов — сделать паузу (шаг «Задержка») на одну минуту, затем приступить к следующим 10, и так — пока не обработаются все.
Если же нужно дождаться от пользователя какого-либо действия (например, подтверждения), используйте шаг «Запрос к пользователю».

Планирование запуска процесса
Вы можете заранее настроить запуск процесса по расписанию — как с регулярным интервалом, так и по конкретным датам и времени.
Запуск по интервалу
Триггер по интервалу позволяет запускать процесс регулярно: каждый день, каждый час, каждые 30 минут и так далее. Это идеально подходит для автоматических задач или обработки больших объёмов данных частями.
Например, если у вашей компании есть платные подписки, и нужно каждый день проверять, кому пора продлить доступ — такой процесс можно настроить на ежедневный запуск. Он сам выберет нужных клиентов и продлит им доступ.

Для настройки такого расписания в свойствах триггера выберите ресурс Система и событие по интервалу.
Интервал задаётся с помощью cron-выражения — это стандартный формат для расписаний (например, «каждый час», «раз в неделю»). Перед использованием рекомендуем проверить cron-выражение на специальном сайте.
Наиболее часто используемые cron-выражения:
- каждый час, на нулевой минуте: 0 * * * *
- каждые 30 минут: 0/30 * * * *
- каждый день, в полночь: 0 0 * * *
- в начале каждого месяца: 0 0 1 * *
В одном триггере можно указать несколько разных интервалов.
Запуск по точному времени
Триггер с конкретным временем позволяет запускать процесс в заданную дату и время.
Например, если клиенту нужен отчёт по проекту в определённые даты, вы можете создать процесс, который будет запускаться в эти моменты, собирать нужные данные и отправлять их по почте.
В одном триггере можно добавить несколько таких временных меток.
