Epsilon MetricsДокументация

Переменные

Одно значение на весь процесс: как завести переменную, как сослаться на неё в SQL, какие переменные платформа подставляет сама.

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

Панель Переменные открывается в редакторе процесса.

Как завести

У переменной четыре поля:

  • Имя — латиницей, с буквы или подчёркивания, дальше буквы, цифры и подчёркивания;
  • Тип — строка или число;
  • Значение по умолчанию — то, что подставится, если значение не передали снаружи;
  • Параметр — флажок, открывающий переменную для внешнего вызова.

Порядок переменных в списке можно менять: он определяет порядок аргументов при вызове процесса через API.

Как сослаться

В настройках шага имя переменной пишется после собачки:

SELECT * FROM events WHERE tenant_id = @tenantId AND amount > @minAmount

Подстановка параметризованная: платформа заменяет ссылку на параметр запроса и передаёт значение отдельно от текста SQL. Кавычки расставлять не нужно, экранировать тоже — значение с апострофом или точкой с запятой не сломает запрос и не превратится в его часть.

Если переменной с таким именем нет, ссылка остаётся в запросе как есть, а в журнал выполнения попадает предупреждение. Ошибки при этом не будет — запрос уйдёт в базу с @varName внутри и упадёт уже там, поэтому опечатку в имени ищите в журнале, а не в тексте ошибки базы.

Системные переменные

Семь имён платформа заполняет сама. Их нельзя переопределить своей переменной: системное значение всегда побеждает.

ПеременнаяЧто содержит
@SYS_API_URLБазовый адрес API той площадки, где идёт выполнение
@SYS_WORKFLOW_IDИдентификатор процесса
@SYS_EXECUTION_IDИдентификатор текущего запуска
@SYS_USER_IDИдентификатор пользователя, от имени которого идёт запуск
@SYS_ACCOUNT_IDИдентификатор организации
@SYS_TRIGGER_TYPEЧем запущен процесс: вручную, по расписанию, вебхуком
@SYS_NOWМомент запуска в формате ISO 8601

Главное применение — переносимость. Процесс, собирающий ссылку через @SYS_API_URL, одинаково работает на рабочей площадке и на тестовой: адрес подставит та, на которой он выполняется, и править SQL при переносе не придётся.

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

Префикс SYS_ зарезервирован — не заводите свои переменные с ним.

Передача значения снаружи

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

Так один процесс обслуживает много случаев: отчёт с параметром «период» вызывается то за день, то за месяц, а цепочка узлов остаётся одна.

Подробности вызова — в разделе Запуск workflow через API.

Полезна ли страница?

На этой странице