---
pkg: '@nocobase/plugin-workflow-variable'
---


# Переменная

## Введение

Вы можете объявлять переменные в рабочем процессе или присваивать значения уже объявленным переменным. Обычно это используется для временного хранения данных внутри рабочего процесса.

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

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

![Добавить узел Переменная](https://static-docs.nocobase/53b1e48e777bfff7f2a08271526ef3ee.png)

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

### Режим

Узел переменной похож на переменные в программировании: её необходимо сначала объявить, прежде чем её можно будет использовать и присваивать ей значения. Поэтому при создании узла переменной вам нужно выбрать её режим. Доступны два режима:

![Выбор режима](https://static-docs.nocobase.com/49d8b7b501de6faef6f303262aa14550.png)

- Объявить новую переменную: Создаёт новую переменную.
- Присвоить значение существующей переменной: Присваивает значение переменной, которая была объявлена ранее в рабочем процессе. Это эквивалентно изменению значения переменной.

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

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

![Выбор переменной для присвоения значения](https://static-docs.nocobase.com/1ce8911548d7347e693d8cc8ac1953eb.png)

### Значение

Значение переменной может быть любого типа. Это может быть константа, например, строка, число, логическое значение или дата, либо другая переменная из рабочего процесса.

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

![Объявление начального значения](https://static-docs.nocobase.com/4ce2c508986565ad537343013758c6a4.png)

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

![Присвоение переменной триггера объявленной переменной](https://static-docs.nocobase.com/858bae180712ad279ae6a964a77a7659.png)

## Использование значения переменной

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

![Использование значения переменной в качестве условия фильтрации запроса](https://static-docs.nocobase.com/1ca91c295254ff85999a1751499f14bc.png)

## Пример

Узел переменной особенно полезен в ветвлениях, где новые значения вычисляются или объединяются с предыдущими (подобно операциям `reduce`/`concat` в программировании), а затем используются после завершения ветвления. Ниже приведён пример использования циклического ветвления и узла переменной для объединения строки получателей.

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

![Настройка триггера](https://static-docs.nocobase.com/93327530a93c695c637d74cdfdcd5cde.png)

Затем создайте узел переменной для хранения строки получателей:

![Узел переменной получателя](https://static-docs.nocobase.com/d26fa4a7e7ee4f34e0d8392a51c6666e.png)

Далее создайте узел циклического ветвления, чтобы перебрать авторов статьи и объединить информацию о их получателях в переменную получателя:

![Перебор авторов в статье](https://static-docs.nocobase.com/083fe62c943c17a643dc47ec2872e07c.png)

Внутри циклического ветвления сначала создайте узел вычисления, чтобы объединить текущего автора с уже сохранённой строкой авторов:

![Объединение строки получателей](https://static-docs.nocobase.com/5d21a990162f32cb8818d27b16fd1bcd.png)

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

![Присвоение объединённой строки получателей узлу получателя](https://static-docs.nocobase.com/fc40ed95dd9b61d924b7ca11b23f9482.png)

Таким образом, после завершения циклического ветвления переменная получателя будет содержать строку получателей всех авторов статьи. Затем, после цикла, вы можете использовать узел HTTP-запроса для вызова API отправки почты, передав значение переменной получателя в качестве параметра получателя для API:

![Отправка почты получателям через узел запроса](https://static-docs.nocobase.com/37f71aa1a63e172bcb2dce10a250947e.png)

На этом простая функция массовой рассылки электронной почты реализована с использованием циклов и узлов переменных.