匯出線上稽核資料
當直接持續性實行處於使用中狀態時,使用 ExportOnlineAuditData 服務可從線上資料存放區匯出本地化版本的稽核訊息。由於 ExportOnlineAuditData 服務僅適用於直接持續性實行,因此資料存放區是配置為 ThingWorx Platform 持續性提供者的資料庫,即 PostgreSQL 或 MS SQL。
ExportOnlineAuditData 服務會從線上資料建構本地化的稽核訊息。此服務會取用地區設定、存放庫名稱、目標路徑、目的檔案名稱、開始日期與結束日期。地區設定用於稽核訊息的翻譯。呼叫時,服務會使用指定的目標檔案名稱,將符合指定條件的稽核項目從線上儲存區匯出至位於指定目標路徑的 zip 檔案。匯出內容會依稽核日期排序。服務及其輸入如下:

ExportOnlineAuditData(locale[STRING],
targetRepositoryName[THINGNAME],
targetPath[STRING],
targetFileName[STRING],
startDate[DATETIME],
endDate[DATETIME],
query[QUERY])
下表列出並簡要說明輸入參數,並顯示其 ThingWorx 基礎類型:
參數
描述
基礎類型
locale
傳回結果時要使用之語言名稱的縮寫。(STRING)。例如,針對法文為 fr,針對中文 (中國) 為 zh_CN。如需 ThingWorx 支援的地區設定清單,請參閱支援的地區設定
STRING
targetRepositoryName
檔案存放庫物件的名稱,包含本地化稽核項目的輸出檔案應儲存在此。
THINGNAME
targetPath
應將輸出檔案寫入至的目標位置。
STRING
targetFileName
應儲存本地化稽核資料之輸出檔案的名稱。
STRING
startDate
您要匯出之第一個稽核項目的日期與時間。會匯出時間戳記在第一個所匯出稽核項目的日期與時間之後及 endDate 之前的所有稽核項目。
DATETIME
endDate
您要匯出之最後一個稽核項目的日期與時間。會匯出時間戳記在最後一個所匯出稽核項目的日期與時間之前及 startDate 之後的所有稽核項目。
DATETIME
query
用於篩選及排序稽核資料的 JSON 格式查詢。此參數沒有預設值。如需範例,請參閱接下來匯出線上稽核資料的範例部份的內容。
匯出線上稽核資料的範例
以下是呼叫此服務的範例:

AuditSubsystem.ExportOnlineAuditData("en", myExportRepository, "/auditExport/",
"export_02-03_one_hour", 2020-02-03 18:50:03.000, 2020-02-03 19:50:03.000,
{
"filters": {
"type": "OR",
"filters": [{
"type": "EQ",
"fieldName": "user",
"value": "Administrator",
"isCaseSensitive": false
},
{
"type": "Between",
"fieldName": "timestamp",
"from": 1570195753953,
"to": 1570195753961
},
{
"type": "IN",
"fieldName": "source",
"values": ["test_tt", "test"],
"isCaseSensitive": false
},}
]
},
"sorts": [
{
"fieldName": "source",
"isAscending": true,
"isCaseSensitive": true
},
{
"fieldName": "timestamp",
"isAscending": true,
"isCaseSensitive": true
}
]
})
此範例會在 /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 的封存檔案。
以下是匯出檔案中 JSON 的範例,AuditArchiveDirectPersistence/export/export_02-03_one_hour.json

{
"rows":[
{
"auditCategory":"Modeling",
"application":"ThingWorxCore",
"sourceType":"Thing",
"id":"4164",
"source":"ExampleThing",
"message":"Created Thing \"ExampleThing\"",
"user":"ExampleUser",
"timestamp":1580773803
},
...
...
]
}
針對此直接持續性範例傳回的資訊包括下列詳細資訊:
內容
描述
auditCategory
稽核訊息類別的名稱。在上述範例中,即為 Modeling 類別。如需有關稽核類別的資訊,請參閱稽核類別
application
產生稽核訊息之應用程式的名稱。針對由核心 ThingWorx Platform 產生的稽核訊息,會將值設定為 ThingworxCore
sourceType
與產生此稽核訊息之應用程式相關聯的類型 (Thing)。
source
產生此稽核訊息的 ThingWorx 應用程式或可執行檔。在此範例中,來源是 ExampleThing
id
這是稽核項目的唯一自動產生識別元。在此範例中,id4164
message
稽核訊息的文字。
user
產生稽核訊息時執行應用程式之使用者的登入名稱。
timestamp
在 epoch 時間,產生稽核訊息的日期與時間。
匯出後線上資料會發生什麼情況?
匯出之後,線上資料會保留在線上儲存區中。您可以執行 ArchiveAuditHistory 服務從線上儲存區手動刪除資料,或透過設定 AuditArchiveScheduler 來自動刪除。
這是否有幫助?