Действие SQL
Рабочий процесс: узел SQLCommunity Edition+Введение
В некоторых особых сценариях простые узлы действий с коллекцией, описанные выше, не справляются со сложными операциями. В таких случаях можно напрямую использовать узел «Действие SQL», чтобы база данных выполнила сложные SQL-операторы для обработки данных.
Отличие от прямого подключения к базе для SQL-операций вне приложения в том, что внутри рабочего процесса можно использовать переменные контекста процесса как параметры в SQL-операторе.
Установка
Встроенный плагин, установка не требуется.
Создание узла
В интерфейсе настройки рабочего процесса нажмите кнопку плюса («+») в потоке, чтобы добавить узел «Действие SQL»:

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

Источник данных
Выберите источник данных для выполнения SQL.
Источник данных должен быть типом базы данных, например основной источник данных, PostgreSQL или другие источники, совместимые с Sequelize.
Содержимое SQL
Отредактируйте SQL-оператор. Сейчас поддерживается только один SQL-оператор.
Начиная с версии v2.0.30, прямая текстовая подстановка переменных в SQL-запросах больше не поддерживается из соображений безопасности. Вместо неё необходимо использовать параметризованные запросы.
В SQL-запросах можно использовать переменные из контекста процесса, но их нужно указывать как заполнители в формате :variableName, например:
Список параметров
В приведённом выше SQL-запросе :userId является параметром. Значения параметров настраиваются в разделе «Список параметров». Имя параметра должно совпадать с именем, указанным в запросе, например userId, а значение можно выбрать из контекста процесса с помощью инструмента выбора переменных.
Результат выполнения узла
Начиная с v1.3.15-beta, результат выполнения узла «Действие SQL» — это массив «чистых» данных. До этого использовалась нативная структура возврата Sequelize с метаданными запроса (см.: sequelize.query()).
Например, следующий запрос:
Результат до v1.3.15-beta:
Результат после v1.3.15-beta:
Частые вопросы
Как использовать результат узла «Действие SQL»?
Если используется SELECT, результат запроса будет сохранён в узле в JSON-формате Sequelize. Его можно разобрать и использовать через плагин Вычисление JSON.
Запускает ли «Действие SQL» события коллекции?
Нет. «Действие SQL» отправ ляет SQL-оператор напрямую в базу данных для выполнения. Соответствующие CREATE / UPDATE / DELETE выполняются на стороне базы данных, а события коллекции происходят на уровне приложения Node.js (через ORM), поэтому события коллекции не запускаются.

