監査データのエクスポート
どちらの実装の監査サブシステムでも、オフライン (アーカイブされた) データからかオンラインデータからかを問わず、監査メッセージのローカライズバージョンをエクスポートするには、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
ローカライズされた監査エントリが含まれている出力ファイルの保存先となるファイルリポジトリ Thing の名前。
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)
この例では、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) であり、1 時間分のデータ (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 のフォーマットは 2 つの実装間で異なり、直接永続エクスポートファイルには 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 を設定することによって自動的に削除することもできます。
これは役に立ちましたか?