EnotPRO Logo EnotPRO

SetVarLocal

SetVarLocal — создаёт локальную переменную или перезаписывает значение существующей.

📝 Назначение

Локальные переменные существуют только в рамках текущего триггера. После завершения триггера (включая Глобальный Триггер После) они автоматически удаляются.

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

  • Для временного хранения промежуточных данных
  • Для передачи данных между реакциями внутри одного триггера
  • Для формирования сложных структур (JSON, массивов) перед отправкой
  • Для кэширования результата макроса, чтобы использовать его несколько раз

⚠️ Важно: Если переменная с таким названием уже существует в текущем триггере, её значение будет полностью заменено. Для изменения значения (прибавления к числу, добавления в массив) используйте AddVarLocal.

⚙️ Параметры

Параметр Тип Обязательный Описание
Название Строка ✅ Да Имя переменной (латиница, цифры, нижнее подчеркивание). Максимум 64 символа
Значение Любой ✅ Да Значение для сохранения (текст, число, JSON, массив)
Тип данных Выбор ❌ Нет auto, string, number, float, bool, json, array. По умолчанию — auto

📊 Поддерживаемые типы данных

Тип Описание Пример Результат
auto (по умолчанию) Автоопределение 42 число (number)
string Текст "Привет" строка
number Целое число 100 целое число
float Дробное число 10.5 число с плавающей точкой
bool Логический true true / false
json JSON-объект или массив {"key": "value"} объект
array Массив (список) [1, 2, 3] массив

💡 Совет: В 90% случаев используйте auto. Явное указание типа нужно, если автоопределение даёт не тот результат (например, "123" как строка, а не число).

📍 Доступ к значению

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

${localVar.название}

Примеры:

${localVar.user_data}      # объект
${localVar.cart_total}     # число
${localVar.message_text}   # строка
${localVar.items.0}        # первый элемент массива

🧪 Примеры использования

Пример 1: Сохранение промежуточного вычисления

Задача: Рассчитать скидку и итоговую сумму.

Реакции в триггере:

  1. GetVarCloud → загружаем cart_total (облачная переменная)
  2. SetVarLocal → название: discount, значение: !{math|${var.person.cart_total} * 0.15}
  3. SetVarLocal → название: final, значение: !{math|${var.person.cart_total} - ${localVar.discount}}
  4. SendMessage → текст: Итого: ${localVar.final} ₽ (скидка ${localVar.discount} ₽)

Пример 2: Сборка JSON перед отправкой в API

Задача: Подготовить данные для HTTP-запроса.

Реакции в триггере (подготовка к SendRequest):

  1. GetVarCloud → загружаем name, email, phone
  2. SetVarLocal → название: payload, значение: {"name": "${var.person.name}", "email": "${var.person.email}", "phone": "${var.person.phone}"}
  3. SendRequest → тело запроса: ${localVar.payload}

Пример 3: Кэширование результата макроса

Задача: Случайное приветствие — один раз сгенерировать, дважды использовать.

Реакции в триггере:

  1. SetVarLocal → название: greeting, значение: !{random.select|list: Привет!, Здравствуй!, Добрый день!}
  2. SendMessage → текст: ${localVar.greeting} ${user.name}!
  3. SendMessage → текст: ${localVar.greeting} Рады тебя видеть!

💡 Без локальной переменной: макрос !{random.select} выполнился бы дважды, и приветствия могли бы быть разными.

Пример 4: Сборка многострочного сообщения

Задача: Сформировать отчёт из нескольких частей.

Реакции в триггере:

  1. GetVarCloud → загружаем balance, orders_count, last_order
  2. SetVarLocal → название: report, значение: 📊 Ваш отчёт:\nБаланс: ${var.person.balance} ₽\nЗаказов: ${var.person.orders_count}\nПоследний заказ: ${var.person.last_order}
  3. SendMessage → текст: ${localVar.report}

Пример 5: Создание массива

Задача: Сохранить список ID товаров для последующей обработки.

Реакции в триггере:

  1. SetVarLocal → название: product_ids, значение: [123, 456, 789], тип: array
  2. (Далее можно перебирать массив или передавать в HTTP-запрос)

🔄 Сравнение с SetVarCloud

Характеристика SetVarLocal SetVarCloud
Время жизни До конца триггера Постоянно (до удаления)
Доступность Только в текущем триггере В любом триггере
Требует загрузки Нет (доступна сразу) Да (GetVarCloud)
Автоудаление ✅ Да ❌ Нет
Назначение Временные данные Постоянные данные (баланс, настройки)

💡 Совет: Если данные нужны только внутри текущего обработчика — используйте SetVarLocal. Если данные нужно сохранить между разными вызовами бота — используйте SetVarCloud.

🔗 Связанные реакции

Реакция Назначение
AddVarLocal Изменить значение (прибавить, добавить в массив)
DelVarLocal Удалить локальную переменную
SetVarCloud Создать облачную переменную

🔗 Связанные разделы

Раздел Описание
Локальные переменные Общая информация о локальных переменных
Облачные переменные Постоянное хранение данных между триггерами
Макрос math Вычисления для значений
Макрос random Генерация случайных значений

🔗 Быстрая навигация

  • Вверх
  • Параметры
  • Типы данных
  • Доступ к значению
  • Примеры
  • Сравнение
  • Частые ошибки
© 2025 EnotPRO. Все права защищены.