Анализ сессий при
интеграциях
При анализе активности интеграций иногда нужно отслеживать общую статистику по сессиям в приложении. Для этого можно использовать SQL-запросы к таблице SysUserSession. В ней хранятся данные о сеансах пользователей.
Ниже приведен пример такого SQL-запроса, который подойдет для Microsoft SQL Server и PostgreSQL. Чтобы узнать от имени какого пользователя создана сессия, нужно соединить таблицу SysUserSession с таблицей SysAdminUnit. В ней содержатся подробные сведения об объектах администрирования в BPMSoft.
SELECT
SAU."Name",
SUS."SessionId",
SUS."SessionStartDate",
SUS."SessionEndDate",
SUS."SessionEndMethod",
SUS."ClientIP",
SUS."Agent"
FROM "SysUserSession" AS SUS
LEFT JOIN "SysAdminUnit" AS SAU ON SUS."SysUserId" = SAU."Id"
WHERE SAU."Name" = 'Supervisor'
ORDER BY SUS."SessionStartDate" DESC
Результат запроса включает в себя следующие данные:
Таблица 1 — Поля в результате запроса
| Поле | Описание |
| Agent | Агент, направивший запрос на авторизацию |
| ClientIP | IP клиента. Подробнее: Настроить отображение IP-адресов в журнале аудита для .NET 8 |
| Name | Имя пользователя |
| SessionEndDate | Время начала сессии |
| SessionEndMethod | Метод завершения сессии |
| SessionId | Идентификатор сессии |
| SessionStartDate | Время начала сессии |
Пример выходных данных запроса представлен на рисунке ниже:
Рисунок 1 — Результат выполнения SQL-запроса

Полю SessionEndMethod могут соответствовать целочисленные значения в диапазоне от 0 до 3. Ниже приведена таблица с пояснениями по каждому значению:
Таблица 2 — Возможные значения параметра SessionEndMethod
| Значение | Описание |
| 0 | Сессия не закрыта |
| 1 |
Сессия закрыта в результате ручного выхода пользователя с помощью кнопки «Выход»:
|
| 2 | Сессия закрыта по таймауту на стороне сервера |
| 3 |
Сессия закрыта принудительно, например, в результате очистки кэша или при нажатии системным администратором кнопки «Завершить сеанс» в детали «Сессии» этого пользователя:
|

