Вычисление

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

Создание узла

В интерфейсе настройки рабочего процесса нажмите кнопку плюса ("+") в потоке, чтобы добавить узел «Вычисление»:

Добавление узла вычисления

Настройка узла

Настройка узла вычисления

Движок вычислений

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

Совет

Важно: движки отличаются доступом к индексам массива. В Math.js индексация начинается с 1, в Formula.js — с 0.

Кроме того, если нужна простая конкатенация строк, можно использовать «Шаблон строки». Этот движок заменит переменные в выражении на соответствующие значения и вернет объединенную строку.

Выражение

Выражение — это строковое представление формулы вычисления, которое может состоять из переменных, констант, операторов и поддерживаемых функций. Можно использовать переменные из контекста потока, например результат предыдущего узла для узла «Вычисление» или локальные переменные цикла.

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

Пример

Рассчитать общую стоимость заказа

Заказ может содержать несколько позиций, и у каждой позиции свои цена и количество. Общая стоимость заказа должна быть суммой произведений цены и количества по всем позициям. После загрузки списка деталей заказа (набор данных связи «один-ко-многим») можно использовать узел «Вычисление» для расчета общей стоимости заказа:

Пример настройки узла вычисления

Здесь функция SUMPRODUCT из Formula.js вычисляет сумму произведений двух массивов одинаковой длины, что и дает общую стоимость заказа.