匯出稽核資料
針對稽核子系統的兩種實行,無論是從離線 (已封存) 資料還是從線上資料匯出,都請使用 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.zipmyExportRepository 中建立英文匯出。內容將會是所有線上稽核訊息以及所有離線稽核訊息,以指定的開始日期與結束日期為基礎。所匯出 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
二者
在 epoch 時間,產生稽核訊息的日期與時間。
匯出後線上資料會發生什麼情況?
匯出之後,線上資料會保留在線上儲存區中。您可以執行 PurgeAuditData 服務從線上儲存區手動刪除資料,或透過設定 AuditPurgeScheduler 來自動刪除。
這是否有幫助?