Переменные делятся на два основных вида: глобальные и локальные.
Локальные переменные существуют только в рамках своего бизнес-процесса во время его выполнения.
Значения глобальных переменных хранятся в оперативной памяти и могут быть использованы в разных БП.
В AppMaster можно создавать переменные для бэкенда и фронтенда. Использование глобальных переменных позволяет ускорить работу приложения, минимизировать количество запросов к базе данных.
Хранение в оперативной памяти накладывает некоторые ограничения для работы глобальных переменных:
- При перезапуске приложения глобальные переменные примут значения установленные по умолчанию.
- Для веб-приложений каждая вкладка браузера является отдельной запущенной копией данного приложения. Соответственно для каждой отдельной копии будут собственные значения глобальных переменных.
Глобальные переменные
Чтобы создать глобальную переменную бэкенда нужно перейти в раздел Business Logic, выбрать вкладку Global Variable и нажать Create global variable.
Здесь можно:
- выбрать тип переменной;
- задать ей имя;
- указать описание;
- включить/выключить параметр Read only;
При включенном параметре Read only значение переменной нельзя изменить в бизнес-процессах.
При выборе типа переменной, появляется возможность задать значение по умолчанию
После создания глобальной переменной можно найти ее в редакторе БП во вкладке Global Variables.
Локальные переменные
Здесь также можно создать локальные переменные, они расположены в разделе Variables.
Чтобы создать локальную переменную нужно перетащить ее на канвас.
Задать значение переменной можно, используя блок Set variable.
Чтобы определить, в какую переменную сохранять значение, нужно соединить переменную с входным полем Variable блока Set Variable.
Параметр Value – можно задать по умолчанию или динамически передать из другого блока.
С помощью блока Set variable можно задать и глобальную и локальную переменную.
Локальная переменная может использоваться только в том БП, в котором ее создали.
Чтобы создать глобальную переменную во фронтенде нужно открыть приложение в редакторе. Инструкция аналогична для веб и мобильных приложений.
В редакторе приложения нужно перейти на вкладку Global Variables и нажать Create global variable.
Создание глобальной переменной фронтенда происходит почти так же, как для бэкенда. Добавляется только дополнительное поле – Persistent.
Включение этого параметра позволяет сохранять значение переменной между запусками приложений.
Чтобы использовать глобальную переменную фронтенда или добавить локальную переменную фронтенда нужно перейти во вкладку Workflow любого элемента, например, таблицы. Здесь также можно использовать глобальные переменные и создавать новые локальные.
При использовании переменных для фронтенда стоит учитывать, что разные триггеры даже при расположении на одном экране запускают отдельные независимые БП. Например:
Integer – локальная переменная. Логика работы: когда срабатывает триггер onShow, с помощью блока Set Variable задается значение переменной Integer.
Когда срабатывает триггер onClick, значение из переменной Integer должно попасть в блок To String, а потом в блок Notification.
Для локальной переменной такая логика не будет работать, так как каждый триггер запускает свой собственный БП. Поэтому при запуске по триггеру onClick значение локальной переменной не будет установлено.
Чтобы исправить это достаточно использовать глобальную переменную, вместо локальной.