Экспорт данных аудита
Для обеих реализаций подсистемы аудита используйте сервис ExportAuditData, чтобы экспортировать локализованную версию сообщений аудита как из автономных (архивированных) данных, так и из интерактивных данных. Этот сервис создает локализованные сообщения аудита из автономных и интерактивных данных. Этот сервис принимает языковую настройку, имя репозитория, целевой путь, имя целевого файла, дату начала и дату окончания. При вызове сервис экспортирует все соответствующие записи из автономного хранилища в ZIP-файл на указанном целевом пути с использованием заданного имени целевого файла. Экспорт сортируется по дате аудита.
* 
Если реализация непосредственного сохранения является активной, можно также экспортировать интерактивные данные аудита из базы данных, используя сервис ExportOnlineAuditData. Этот сервис имеет опцию query, которую можно использовать для фильтрации и сортировки экспортируемых данных.
Сервис ExportAuditData и его входные данные:

ExportAuditData(locale[String],
targetRepositoryName[THINGNAME],
targetPath[STRING],
targetFileName[STRING],
startDate(dateTime),
endDate(dateTime))
В следующей таблице перечисляются входные параметры, их краткие описания и их базовый тип ThingWorx:
Параметр
Описание
Базовый тип
locale
Сокращение имени языка, в котором должны возвращаться результаты. (STRING). Например, fr для французского языка или zh_CN для китайского языка (Китай). Список языковых настроек, поддерживаемых ThingWorx, см. в разделе Поддерживаемые языковые настройки.
STRING
targetRepositoryName
Наименование вещи репозитория файлов, где должен сохраняться выходной файл, содержащий локализованные записи аудита.
THINGNAME
targetPath
Расположение, в которое должен быть записан выходной файл.
STRING
targetFileName
Имя выходного файла, в котором должны сохраняться локализованные данные аудита.
STRING
startDate
Дата и время первой записи аудита, которую следует экспортировать. Экспортируются все записи аудита с меткой времени после этой записи аудита и перед endDate.
DATETIME
endDate
Дата и время последней записи аудита, которую следует экспортировать. Экспортируются все записи аудита с меткой времени перед этой записью аудита и после endDate.
DATETIME
Пример вызова этого сервиса:

AuditSubsystem.ExportAuditData("en", myExportRepository, "/auditExport/",
"export_02-03_one_hour", 2020-02-03 18:50:03.000, 2020-02-03 19:50:03.000)
В этом примере создается экспорт на английском языке в myExportRepository в файл /auditExport/export_02-03_one_hour.zip. Содержимым будут все интерактивные сообщения аудита, а также все автономные сообщения аудита, на основе указанных дат начала и окончания. Размер экспортируемого zip-файла зависит от того, сколько данных было собрано между датами начала и окончания. Следующая таблица показывает содержимое экспорта на основе дат начала и окончания:
Дата начала
Дата окончания
Содержимое экспорта
2020-02-03 18:50:03.000 (конкретные дата и время)
2020-02-03 19:50:03.000 (конкретные дата и время)
Все интерактивные и автономные данные с даты начала до даты окончания, которые в этом примере совпадают (2020-02–03), и данные накоплены за час (от 18:50:03.000 до 19:50:03.000).
null
2020-02-03 19:50:03.000 (конкретные дата и время)
Все интерактивные данные и любые автономные данные, которые старше, чем дата и время окончания (2020-02-03 19:50:03.000). Когда для начальной даты задано значение null, экспорт может содержать большой объем данных аудита в зависимости от фактической даты, с которой начали сохраняться автономные данные.
2020-02-03 18:50:03.000 (конкретные дата и время)
null
Все интерактивные данные и любые автономные данные между датой и временем начала и текущими датой и временем, которое указывается заданным для даты окончания значением null.
null
null
Все данные аудита, интерактивные и автономные. Не рекомендуется, поскольку это может занять очень много времени.
В зависимости от активной реализации файл export_02-03_one_hour.zip будет содержать любой из следующих файлов:
Непосредственное сохранение - AuditArchiveDirectPersistence/export/export_02-03_one_hour.json.
Таблица данных - AuditArchive/Export/export_02-03_one_hour.json.
Ниже приведен пример JSON в файле экспорта, когда активна реализация непосредственного сохранения.:

{
"rows": [ {
"auditCategory": "System",
"application": "ThingWorxCore",
"sourceType": "Subsystem",
"id": "1002",
"source": "AuditSubsystem",
"message": "Updated Subsystem \"AuditSubsystem\"",
"user": "Administrator",
"timestamp": 1582194488947
}]
}
Ниже приведен пример JSON в файле экспорта, когда активна реализация таблицы данных.

{
"rows": [
{
"auditCategory": "Modeling",
"sourceType": "ModelTagVocabulary",
"source": "IntegrationTesting",
"id": "12345678-0123-4567-8901-123457890123",
"message": "Created ModelTagVocabulary \"IntegrationTesting\"",
"user": "Administrator",
"timestamp": 1580773803
},
...
...
]
}
Обратите внимание, что формат id различает две реализации и файл экспорта непосредственного сохранения содержит дополнительное свойство с именем application. В следующей таблице приведено описание свойств в файлах экспорта с заметками об их различиях.
Свойство
Реализация?
Описание
auditCategory
Обе
Наименование категории сообщения аудита. В приведенных выше примерах показаны различные категории:
Непосредственное сохранение - категория System
Таблица данных - категория Modeling
Сведения о категориях аудита см. в разделе Категории аудита.
application
Только непосредственное сохранение
Имя приложения, которое генерирует сообщение аудита. В примере непосредственного сохранения выше сообщения аудита генерируются ядром ThingWorx Platform, поэтому задается значение ThingworxCore.
sourceType
Обе
Тип, связанный с приложением, которое создало это сообщение аудита (source). В приведенных выше примерах показаны различные исходные типы, которые отражают значения auditCategory для обеих реализаций и для непосредственного сохранения application:
Непосредственное сохранение - Subsystem
Таблица данных - ModelTagVocabulary
source
Обе
Приложение ThingWorx или исполняемый файл, которые создали это сообщение аудита. В приведенных выше примерах показаны различные приложения ThingWorx:
В примере непосредственного сохранения источником является Audit Subsystem.
В примере таблицы данных источником является IntegrationTesting.
id
Обе, с различиями форматов
Реализация непосредственного сохранения - автоматически сгенерированный идентификатор базы данных для application, создающего сообщение аудита.
Реализация таблицы данных - GUID для приложения, создающего сообщение аудита.
message
Обе
Текст сообщения аудита.
user
Обе
Имя для входа в систему пользователя, который выполнял приложение, когда было создано сообщение аудита.
timestamp
Обе
Дата и время с начала отсчета времени от создания сообщения аудита.
Что происходит с интерактивными данными после экспорта?
Интерактивные данные остаются в интерактивном хранилище после экспорта. Данные могут быть удалены вручную из интерактивного хранилища путем запуска сервиса PurgeAuditData или автоматически с заданием настройки AuditPurgeScheduler.
Было ли это полезно?