导出审计数据
对于审计子系统的这两种实现,使用 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
要导出的最后一个审计条目的日期和时间。将导出此审计条目之前和 startDate 之后带时间戳的所有审计条目。
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)
本示例将在 /auditExport/export_02-03_one_hour.zip 处的 myExportRepository 中采用英语创建导出。该内容将成为所有在线审计消息以及所有离线审计消息,具体取决于指定的开始和结束日期。导出的 zip 文件大小取决于开始和结束日期之间收集的数据量。下表显示了基于开始和结束日期的导出内容:
开始日期
结束日期
导出的内容
2020-02-03 18:50:03.000 (特定的日期和时间)
2020-02-03 19:50:03.000 (特定的日期和时间)
从开始日期到结束日期的所有在线和离线数据,在本例中指定为同一日期 (2020-02–03)、一小时的数据 (从 18:50:03.00019: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 自动生成的数据库 ID。
数据表实现 - 生成审计消息的应用程序的 GUID。
message
两者
审计消息的文本。
user
两者
生成审计消息时,运行应用程序的用户的登录名。
timestamp
两者
在时间段内,生成审计消息的日期和时间。
导出后在线数据会发生什么情况?
导出后,在线数据将保留在在线存储中。可通过运行 PurgeAuditData 服务将数据从在线存储中手动删除,也可通过设置 AuditPurgeScheduler 来自动将其移除。
这对您有帮助吗?