12.07 Использование JS для управления глобальными переменными
примечание
В качестве примера использования узла JavaScript для управления глобальными переменными создадим сценарий, в процессе выполнения которого последовательно:
- создаются несколько глобальных переменных разного типа;
- удаляются глобальные переменные, созданные не сегодня;
- возвращается перечень созданных сегодня глобальных переменных и числовых переменных, значение которых больше 100;
- возвращается значение текстовой переменной.
Для успешной работы сценария необходимо добавить 6 узлов:

- (1) Узел Trigger on Run once для инициации однократного запуска сценария сразу после нажатия на кнопку Запустить один раз;
- (2) Узел JavaScript с названием Create a GV для создания глобальных переменных разного типа с кодом:
export default async function run({ execution_id, input, data, store }) {
// Создаем три числовые глобальные переменные
await store.setGlobalVariable("GlobalVar_number1", 100);
await store.setGlobalVariable("GlobalVar_number2", 200);
await store.setGlobalVariable("GlobalVar_number3", 300);
// Создаем глобальные переменные с типами строка и JSON
await store.setGlobalVariable("GlobalVarFromJs_string", "global var string value");
await store.setGlobalVariable("GlobalVarFromJs_obj", {"key":"global var object value"});
return {
}
}
- (3) Узел JavaScript с названием Delete a GV для удаления глобальных переменных, созданных не сегодня, с кодом:
export default async function run({ execution_id, input, data, store }) {
// Получаем список глобальных переменных
const list = await store.listGlobalVariables();
// Получаем текущую дату в формате ISO (без времени)
const today = new Date().toISOString().slice(0, 10);
// Создаем массив промисов для удаления переменных, созданных не сегодня
const deletePromises = list
.filter(variable => {
// Преобразуем дату создания переменной в формат ISO (без времени)
const creationDate = new Date(variable.created_at).toISOString().slice(0, 10);
// Возвращаем true, если переменная была создана не сегодня
return creationDate !== today;
})
.map(variable => {
return store.deleteGlobalVariable(variable.key);
});
// Выполняем все операции удаления
await Promise.all(deletePromises);
return {
}
}