Переменные сценариев
Обзор
Переменные сценария – это области данных, сохраняющие значения для работы компонентов сценариев и взаимодействия сценария с внешней средой.
Переменные создаются при редактировании сценария, описываются в теле JSON-структуры сценария. Область данных выделяется только в момент выполнения сценария.
Переменные могут передаваться между сценариями. Несмотря на наличие идентификатора, для удобства редактирования сценариев сопоставление происходит по названиям переменных.
Области видимости
Область видимости | Описание |
---|---|
Локальные |
Доступны только конкретному экземпляру обработчика сценариев. Значения хранятся в его стеке. |
Сценарные |
Доступны всем экземплярам конкретного сценария (по коду сценария и домена). Хранятся в общем хранилище на сайте со специфическим ключом (роль st). |
Сайтовые доменные |
Доступны всем сценариям текущего домена, исполняемым внутри одного сайта. Хранятся в общем хранилище на сайте со специфическим ключом (роль st). |
Сайтовые общие |
Доступны всем сценариям всех доменов, исполняемым внутри одного сайта. Хранятся в общем хранилище на сайте со специфическим ключом (роль st). |
Глобальные доменные |
Доступны всем сценариям текущего домена, исполняемым на любом сайте, где обслуживается домен. Хранятся в общем хранилище на сайте со специфическим ключом (роль st), синхронизируются между сайтами. |
Глобальные общие |
Доступны всем сценариям всех доменов, исполняемым на любом сайте, где обслуживается домен. Хранятся в общем хранилище на сайте со специфическим ключом (роль st), синхронизируются между сайтами. |
При сохранении в переменную, значение которой хранится в общем хранилище, слишком большого значения, оно размещается в файловой системе (категория :SYNC), а вместо переменной автоматически размещается путь к файлу.
Функции выражений storage_put, storage_get, storage_del позволяют сформировать альтернативную область видимости для сохраняемых значений.
Типы значений
Тип значения | Описание |
---|---|
Число |
Целое число или число с десятичной точкой. |
Строка |
Строковое значение. Хранится в виде структуры, содержащей значение и кодировку. |
Дата-время |
Строковое значение в формате RFC3339. |
Преобразование значений
В операциях, где важна синхронизация типов значений, значения автоматически преобразовываются из одного типа в другой. В случае возникновения ошибок преобразования поведение зависит от конкретной операции.
Начальные значения
Зарегистрированные локальные переменные при запуске сценария создаются с пустыми значениями. Их использование в выражениях невозможно до присвоения значений.
В компоненте Старт допускается установить режим присвоения начальных значений по умолчанию.
Начальные значения локальных переменных могут быть также установлены при запуске обработчика сценария из настроек сущности конкретного сценария (поле opts.variables
), назначены из родительских процессов, скопированы из родительских сценариев и т.д.
Переменные с областью видимости, отличной от локальной, создаются только в момент непосредственного присвоения значений внутри сценария.