Компонент Код JS

Описание

Осуществляет выполнение кода JS, заданного аргументом, в микросервисе продуктового слоя.

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

Пример: "return { a: x + y.name + z[0].caption };" для переданных переменных или параметров x = "abc", y = {"name": "def"}, z = [{"caption": "ghi"}] вернет "abcdefghi" и присвоит в существующую переменную сценария 'a', а также тело "{ a: "abcdefghi" }" в переменную возвращающую результат, если она задана.

При необходимости можно выполнять асинхронный запрос: "return async function() { await GlobalUtils.wait(500); return { a: 1, b: x }; }".

Table 1. Системные характеристики

Индекс

154

Краткое название

js

Типы сценариев

Все

Стартовый модуль

era_script_component_js

Режим

Асинхронный

Иконка

154

Характер разветвления

Разветвляющий

Ограничения

  • Если срабатывает таймаут, то сценарий прекращает ожидание ответа и передает управление следующему компоненту, выполняемый метод не завершается.

Свойства

Table 2. Свойства
Спецификация Описание

Название: Код JS
Код: code
Усл. видимости: нет
По умолчанию: — 

Код JS функции для исполнения в node.js в окружении микросервиса продуктового слоя.

Название: Способ задания параметров
Код: argsMode
Усл. видимости: нет
По умолчанию: vars

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

Возможные значения:

  • Все переменные (allvars,0) - передаются все переменные с их значениями. В коде JS можно обращаться к ним напрямую по именам.

  • Заданные аргументы (args,1) - свойством 'Аргументы' задается перечень именованных передаваемых параметрах. В коде JS можно обращаться к ним по указанным именам.

При передаче значений JSON-строки представляющие собой объекты доступны в коде как объекты, JSON-массивы - как массивы, строки и числа по умолчанию, даты в виде строки, а незаполненные значения остаются незаполненными (null).

Название: Аргументы
Код: args
Усл. видимости: да
По умолчанию: — 

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

Если значение представляет собой JSON-строку с объектом или массивом, то в коде JS при обращении к соответсвующей переменной будет доступен непосредственно объект или массив.

Название: Таймаут, сек
Код: timeoutSec
Усл. видимости: нет
По умолчанию: 5

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

Название: Результат в переменную
Код: resultVar
Усл. видимости: нет
По умолчанию: — 

Переменная, куда сохраняется полное тело результата выполнения.
Если код JS возвращает объект или массив, то в переменной сохраняется его строковое JSON-представление.

Название: Ошибка в переменную
Код: errorVar
Усл. видимости: нет
По умолчанию: — 

Переменная, куда сохраняется строка с кодом и текстом ошибки.
Некоторые развернутые ошибки сохраняются в лог журнал.

Название: Переход
Код: transfer
Усл. видимости: нет
По умолчанию: — 

Компонент, которому передается управление.

Название: Переход, время
Код: transferTimeout
Усл. видимости: нет
По умолчанию: — 

Компонент, которому передается управление в случае таймаута.

Название: Переход, ошибка
Код: transferError
Усл. видимости: нет
По умолчанию: — 

Компонент, которому передается управление в случае ошибки.

См. также