Аудит открытия форм и выполнения операций#
Аудит открытия форм и выполнения операций предназначен для фиксации взаимодействия пользователя с интерфейсом системы.
Фиксируются:
открытие и закрытие форм;
выполнение операций;
ошибки, возникшие в процессе работы.
Для каждой записи сохраняются:
пользователь;
системное имя выборки и отображения;
время открытия и закрытия;
идентификатор объекта;
тип взаимодействия;
параметры запуска;
результат выполнения;
текст ошибки при наличии.
Просмотр записей доступен:
из карточки объекта через операцию
Информация > Расширенный аудит по объекту;из общего раздела
Приложение «Настройка системы» > Аудит > Аудит открытия форм и выполнения операций.
Интерфейс аудита#
Форма Btk_SelAuditAvi.List используется для просмотра истории открытия выборок, форм, вложенных вкладок и выполнения операций.
Данные читаются из таблицы aud.selOpenHistory.
Интерфейс формы состоит из:
панели фильтрации;
основного списка открытий форм и выполненных операций;
детализации выбранной записи.
Панель фильтрации#
В верхней части формы расположены фильтры:
Поле |
Описание |
|---|---|
|
Период с. Фильтрация выполняется по полю |
|
Период по. Фильтрация выполняется по полю |
|
Пользователь. Поиск выполняется по полю |
|
Выборка. Поиск выполняется по полю |
|
GID объекта |
|
Чекбокс Только главные выборки |
Явной проверки обязательности фильтров нет. Для рабочей базы рекомендуется всегда задавать хотя бы фильтр flt_DFROM, так как таблица может быстро расти.
Для анализа действий конкретного пользователя дополнительно указывают flt_SUSER. Для анализа конкретной формы — flt_SSEL. Для анализа открытия карточки объекта — flt_GIDOBJ.
Примечание
Фильтр flt_DTO применяется по полю dEnd. Для операций dEnd обычно не заполняется, поэтому при разборе операций не следует полагаться только на дату по. Лучше задавать дату с и дополнительные ограничения по пользователю, выборке или объекту.
Особенности фильтрации по объекту#
Фильтр flt_GIDOBJ работает по-разному в зависимости от значения flt_BMAINSEL.
Если чекбокс Только главные выборки не установлен, форма ищет все сессии, в которых любой элемент был открыт по указанному объекту.
Если чекбокс Только главные выборки установлен, фильтр применяется только к главной строке формы.
Если форма открыта из контекста объекта и передан параметр gidObj_dz, метод Btk_SelAuditAvi.beforeOpen() автоматически заполняет flt_GIDOBJ и делает этот фильтр доступным только для просмотра.
Основной список#
В основной таблице отображаются записи открытия форм, выборок и выполнения операций.
Колонка |
Описание |
|---|---|
Выборка |
Системное имя выборки |
Отображение |
Отображение или представление формы |
Наименование |
Наименование формы, выборки или операции |
Пользователь |
Пользователь, выполнивший действие |
ФИО пользователя |
ФИО пользователя |
Дата открытия |
Дата и время открытия формы или начала действия |
Дата закрытия |
Дата и время закрытия формы, если значение было зафиксировано |
ID объекта |
Идентификатор объекта, с которым связано действие |
Тип формы |
Тип открытой формы или действия |
Параметры формы |
Параметры, с которыми была открыта форма или выполнена операция |
Результат |
Результат выполнения |
Детализация записи#
В нижней части формы отображается детализация выбранной записи.
Доступны вкладки:
Дерево элементов формы — иерархия элементов, открытых в рамках выбранной сессии;
Список элементов формы — плоский список вложенных элементов формы;
Текст ошибки — текст ошибки, если действие завершилось неуспешно.
На вкладках детализации отображаются сведения о связанных формах, вкладках и операциях: выборка, отображение, наименование, операция, пользователь, дата открытия, объект, тип формы, параметры и результат.
Настройка аудита#
Аудит открытия форм и выполнения операций включается настройками выборки Btk_SelSetting, а данные записываются в таблицу aud.selOpenHistory.
Настройка выполняется индивидуально для каждой выборки.
Чтобы включить аудит:
Откройте
Приложение «Настройка системы» > Обозреватель проектов.Найдите и выберите нужную выборку.
Перейдите на вкладку Настройка.
В настройках класса
Btk_SelSettingвыберите режим аудита открытия выборки или операций.
Основные поля настройки:
idAuditSelType— тип аудита открытия выборки или формы;idAuditOperType— тип аудита операций.
Возможные значения Btk_SelSettingAudType:
NoAud— не вести аудит;AudOnlySuccess— аудит успешных операций;FullAud— полный аудит с сохранением ошибок.
Практический порядок настройки:
Найдите настройку нужной выборки в
Btk_SelSettingили создайте ее черезBtk_SelSettingApi.registerBySel(<SimpleAviName>).Для аудита открытия формы задайте
idAuditSelType = FullAudилиidAuditSelType = AudOnlySuccess.Для аудита операций задайте
idAuditOperType = FullAudилиidAuditOperType = AudOnlySuccess.Переоткройте форму, чтобы метаинформация и обработчики аудита были перечитаны.
Доступные режимы:
Не вести аудит — аудит отключен. Значение используется по умолчанию.
Аудит только успешного открытия/выполнения — фиксируются только успешные действия.
Аудит с сохранением ошибок — фиксируются все действия, включая ошибки с текстом исключения.
Также существует глобальная настройка модуля btk:
bEnableFullAuditForAllFormsByDefault— включает полный аудит для всех выборок по умолчанию;значение по умолчанию —
false.
Если настройка bEnableFullAuditForAllFormsByDefault включена, для выборок без индивидуальной записи в Btk_SelSetting аудит считается включенным по умолчанию. Для точечного включения рекомендуется использовать запись Btk_SelSetting по конкретной выборке.
Проверить появление записей аудита можно запросом:
select *
from aud.selOpenHistory
order by idSession desc, id;
Примечание
Если включен признак Только главные выборки, в верхнем фрейме отображаются только главные выборки. Записи по детальным выборкам доступны на вкладке Дерево элементов формы.
События формирования записей#
Запись аудита создается при следующих событиях:
Открытие формы — успешное открытие формы фиксируется в
EntityAvi#onShow().Неудачное открытие формы — подписка на события выполняется в
EntityAvi#onLoadMeta().Закрытие формы — фиксируется в
EntityAvi#beforeCloseForm().Вызов операции — подписка на события выполнения операций выполняется в
EntityAvi#onLoadMeta().
Примечание
Если выборка с включенным аудитом открывается как детальный фрейм, в аудит автоматически записываются все ее мастер-выборки. Это позволяет восстановить полный контекст действия пользователя.
Запись выполняется в автономной транзакции.
Хранимые поля#
Таблица selopenhistory содержит следующие поля:
Поле |
Описание |
|---|---|
|
ID записи аудита |
|
Имя пользователя |
|
Системное имя выборки |
|
Системное имя отображения |
|
Наименование отображения |
|
Время открытия |
|
Время закрытия |
|
Глобальный идентификатор объекта взаимодействия |
|
Тип взаимодействия |
|
Параметры открытия выборки |
|
Результат взаимодействия |
|
Системное имя операции |
|
Наименование операции |
|
Текст ошибки |
Программная логика#
Для работы с аудитом доступны методы:
Btk_SelAuditPkg.dataInstall()— регистрирует таблицу аудита;Btk_SelAuditPkg.audInsert(...)— добавляет запись в аудит.