Код (Javascript)

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

Когда использовать

Используйте Код (JavaScript), когда стандартных компонентов недостаточно для решения задачи. Типичные примеры:

  • Сложные математические расчёты (статистика, аггрегация данных)

  • Глубокое преобразование массивов или объектов (фильтрация, сортировка, группировка)

  • Работа с датами в нестандартных форматах

  • Логика, которую проще написать на JS, чем собирать из десятка компонентов

Важно: код выполняется на сервере и ограничен 5 секундами. Асинхронные функции (setInterval, setTimeout, setImmediate) не поддерживаются.

Настройка компонента

Секция «Общие свойства»

Поле

Описание

Название

По умолчанию «Код (javascript)». Можно изменить на своё — например, «Рассчитать итоговую сумму» или «Преобразовать массив клиентов»

Описание

Необязательное поле. Можно добавить комментарий для себя или коллег

Секция «Код»

Входные переменные

Для безопасности код не имеет доступа ко всем переменным сценария по умолчанию. Входные переменные определяют, какие именно данные будут переданы в JS-код.

Формат: список пар «локальная переменная = значение / выражение»

Колонка

Что указывать

Имя переменной

Имя переменной, под которым данные будут доступны внутри кода

Значение

Текст (в кавычках: "Иванов"), число (42) или выражение ({Сумма})

Каждая новая пара добавляется кнопкой «Добавить...».

Пример: если указать price = {Цена товара}, то внутри кода можно обращаться к переменной price.

Код

Сюда пишется сам код на JavaScript. Правила:

  • Допустимо использовать локальные переменные, переданные через «Входные переменные»

  • Доступны встроенные объекты и функции JavaScript

  • Запрещены асинхронные функции: setInterval, setTimeout, setImmediate

  • Код должен возвращать результат через конструкцию return

Пример:

javascript

Секция «Результат»

Сохранить в

Выходной параметр. Сохраняет результат исполнения кода (возвращенные посредством return) в указанную переменную процесса. Формат: имя переменной.

circle-info

В поле «Сохранить в» можно указать ключ объекта и результат исполнения кода сохранится как значения этого ключа.

Чем компонент код отличается от выражений?

Компонент код — то же вычислимое выражение. Разница в том, что в компоненте код доступны вспомогательные JS-библиотеки, упрощающие работу с данными:

  • Lodasharrow-up-right (_) — набор расширенных функций для работы с массивами, объектами, строками

  • Momentarrow-up-right (Moment JS)— набор функций для работы с датами.

Пример:

В обычных выражениях этих библиотек нет.

Пограничные события

Компонент поддерживает 2 типа пограничных событий:

  • Ошибка — выход из компонента, если произошла какая-либо ошибка

  • Таймаут — выход из компонента, спустя заданное ограничение по времени

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

Last updated