Глобальные переменные
Глобальные переменные позволяют устанавливать константы, которые могут быть вызваны в сниппетах или использоваться напрямую в сценариях, обеспечивая гибкость и удобство управления данными.
Нажмите на пиктограмму личного кабинета.
Выберите пункт меню Переменные.
Особенности переменных:
Константы доступны во всём проекте. Это означает, что они могут быть использованы в любом сценарии или сниппете.
Позволяют хранить данные общего назначения. Например, настройки, статусы, параметры авторизации или флаги состояния.
Имеют фиксированные типы. Переменные могут быть строковыми, числовыми, булевыми (логическими).
Значение переменной скрыто в ЛК от всех ролей кроме Администратора, если установлена приватность.
Переменные не могут быть перезаписаны из сниппетов.
Пример использования
Рассмотрим наглядный пример работы с глобальными константами. Допустим, нам нужно проверить возраст клиента, чтобы определить, является ли он совершеннолетним. Например, клиент пишет в чате: "Мне 15 лет".
Для этого записываем константу age = 18 числового типа, которая будет обозначать возраст совершеннолетия.
Далее создаем сниппет с логикой, которая:
Извлекает возраст из сообщения клиента.
Проверяет возраст относительно установленного порога: если возраст больше, меньше или равен значению age = 18.
Использует полученное значение для дальнейшей обработки, например: отправляет сообщение и записывает данные в контекст для использования в сценарии.
async function snippet(core = new Core(), context = new Context()) {
// Получаем входящее сообщение
const incomingMessage = context.current.params.text;
// Парсим возраст (ищем числа в сообщении)
const ageMatch = incomingMessage.match(/\b\d+\b/);
if (ageMatch) {
const age = parseInt(ageMatch[0], 10); // Преобразуем строку в число
// Получаем значение глобальной переменной context.age
const globalAge = context.age;
// Проверяем, есть ли клиенту 18 лет
if (age >= globalAge) {
// core.sendText(`Клиент совершеннолетний: ${age} лет.`);
context.set('age', age); // Сохраняем возраст в контекст
} else {
// core.sendText(`Клиент несовершеннолетний: ${age} лет.`);
context.set('age', age); // Сохраняем возраст в контекст
}
} else {
// Если возраст не найден в сообщении
core.sendText('Пожалуйста, укажите ваш возраст.');
}
}
Такой сниппет можно использовать в активном сценарии, в котором будет добавлено условие, переключающее сценарий на нужную ветку — в примере, на "ветку для несовершеннолетних". Например, если клиент указал, что ему меньше 18 лет, можно отправить сообщение: “К сожалению, этот раздел вам недоступен.”
Так же переменные можно использовать без сниппетов через реакцию Условие. Для этого достаточно заполнить правило обработки параметра: указать название глобальной константы, способ обработки и тип переменной. Ветка сценария изменится в зависимости от значения константы.
Последнее обновление