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

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

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

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

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

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

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

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

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

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

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

Есть несколько стандартных переменных сеанса, которые доступны без предварительного определения:

Название переменной

Описание

type

Хранит данные о подключении, если пользователь подключился через Web UI или AggreGate Client.

username

Переменная username содержит имя пользователя AggreGate, используемое для аутентификации в текущей сессии.

login

Переменная показывает, какие данные были введены на экране входа с систему. Ее значение может отличаться от переменной username. Такое может произойти при использовании метода внешней аутентификации.

displayName

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

company

Хранит имя компании или организации пользователя.

department

Хранит название департамента, в котором работает пользователь.

title

Определяет должность пользователя. Используется для отображения формальной должности, а не рода занятий, например, Senior Programmer, а не просто программист. Обычно не используется для должностей с сокращениями, например, Esq. или DDS

cookies

Хранит таблицу данных с HTTP-куками, связанными с взаимодействием пользователя со страницей. В этой таблице хранится два поля: имя и значение куки.

headers

Сохраняет таблицу данных с информацией об HTTP-заголовке, обычно состоящем из следующих полей header-а:

  • host

  • user-agent

  • accept

  • accept-language

  • accept-encoding

  • sec-websocket-version

  • origin

  • sec-websocket-extensions

  • sec-websocket-key

  • dnt

  • connection

  • cookie

  • pragma

  • cache-control

  • upgrade

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

Пример выражения пригодности, которое анализирует тип подключения пользователя:

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