Сессии и переменные сессии

Сессии позволяют серверу и компонентам UI обмениваться данными, специфичными для одного текущего пользователя системы, например, оператора или стороннего приложения, работающего через API.

Взаимодействия внутри сессии реализуются через переменные сессии, существующие, пока длится сессия.

Для записи и чтения переменных сессии можно использовать специальный набор функций и событий внутри корневого контекста.

Функция sessionSet() задает значение переменной. Переменная доступна, пока открыта текущая сессия пользователя. Можно запросить ее значение через виджет или инструментальную панель.

Например, можно использовать это выражение.

callFunction({:}, "sessionSet", "test1", table("<<strTest><S>>","newStr1", "newStr2"))

Функция sessionGet() получает значение упомянутой переменной сессии.

Пример выражения:

callFunction({:}, "sessionGet", "test1")

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

Также можно использовать стандартные переменные сессии type, login, username. Они помогают создавать разные человеко-машинные интерфейсы для разных типов пользовательских подключений. Например, внутри выражения пригодности инструментальной панели.

  • Переменная type хранит данные о подключении, если пользователь подключился через Web UI или SberMobile IIoT Platform Client.
  • Переменная username содержит имя пользователя SberMobile, используемое для аутентификации в текущей сессии.
  • Переменная login показывает, какие данные были введены на экране входа с систему. Ее значение может отличаться от переменной username. Такое может произойти при использовании метода внешней аутентификации.
  • displayName показывает предпочтительное имя для объекта при отображении записей. Это обычно комбинация имени пользователя, первой буквы его отчества и фамилии.
  • Переменная company хранит имя компании или организации пользователя.
  • department содержит название департамента, в котором работает пользователь.
  • title определяет должность пользователя. Используется для отображения формальной должности, а не рода занятий, например, Senior Programmer, а не просто программист. Обычно не используется для должностей с сокращениями, например, Esq. или DDS.

Пример выражения пригодности:

cell(callFunction({:}, "sessionGet", "type"), "value") == "Web"