Запись переменных

Этот компонент аналогичен компоненту Запись переменной. Если вы еще не читали про Запись переменной, вам нужно сперва ознакомиться с этой статьей.

Функции

  1. Записывает значения в переменные без ожидания сообщения от пользователя бота.
  2. Позволяет создать сразу несколько переменных в одном компоненте.
  3. Записывает переменные с определенным типом данных.
  4. Собирает несколько переменных в объект.
  5. Добавляет созданный объект в начало, конец или на известную позицию в списках.

Основное отличие от компонента Запись переменной в том, что он позволяет в одном компоненте создать сразу несколько переменных.

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

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

Собрать в объект

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

Это удобно, если вам нужно сгруппировать вместе переменные по какому-то признаку.

Например, сохранить анкету пользователя и просматривать ее в переменных.

Или так можно собирать тело Запроса к стороннему сервису. Если вы знакомы с Запросами, то пример ниже должен быть вам понятен.

В переменные будет записан объект с именем body и вложенными переменными token и prompt.

В JSON результат этого компонента будет выглядеть так:

{
  "body": {
    "token": "12345:12fd3b6a2c1234c7a9876b2",
    "prompt": "То, что было записано в переменной user_prompt"
  }
}

Теперь можно использовать этот объект в компоненте Запрос при помощи хелпера stringify:

Вы, конечно, можете записать шаблон в Тело запроса вручную:

    {
      "token": "12345:63fd3b6a2c8097c7a45891b2",
      "prompt": "{{user_prompt}}"
    }

Но если в user_prompt будет перенос строки или другой недопустимый для строки в JSON символ, Запрос, вероятно, завершится с ошибкой, потому что принимающий сервер не сможет понять JSON, ведь он будет с ошибкой.

В случае со Сборкой объекта можно быть уверенными, что в body сформируется допустимый JSON, и не волноваться о переносах строк или других недопустимых символах, которые могли бы быть в переменной user_prompt.

Перезаписать объект

По умолчанию это свойство включено.

Когда оно включено, Ботмама при сборке объекта создает новый объект и перезаписывает любое значение переменной, которое находится по Имени объекта.

Если выключить, то Ботмама проверит, не находится ли по Имени объекта уже какой-то другой объект, и, если это так, сольет эти объекты воедино. Переменные из нового собранного объекта будут записаны поверх объекта, который уже находится в переменных. При этом свойства, которых в новом объекте нет, в старом объекте останутся и не будут удалены.

Управление списками

В компоненте Запись переменных Управление списками в целом работает похоже на Управление списками в компоненте Запись переменной.

Существенное отличие в том, что в компоненте Запись переменных Управление списками доступно, только если активна опция Собрать в объект.

При этом, если включить Управление списками, то имя переменной, в которой Ботмама будет искать список, будет взято из свойства Имя объекта, а не имени отдельной переменной, как это сделано в компоненте Записи одной переменной.

В остальном принцип создания или изменения списков точно такой же, как в компоненте Запись переменной.

В начало ↑