1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ServiceNowで、更新前後のデータ差異を比較したい!【Audit Logs 監査機能】

Last updated at Posted at 2025-11-03

背景

今まで、お仕事で更新前後のデータをExcelで比較していた。
しかしそのやり方だと、大量データを比較する際に「Excelが重くなる」「関数の設定が面倒くさい」等の問題があった。
なので、ServiceNowだけで完結する仕組みがないか調べた。

Audit(監査)機能とは

各テーブルにある、レコードの更新履歴を追える機能のことである。
設定をONにする前の更新履歴は追えないので注意。

大まかな流れは下記である
①「Dictionaryテーブル」で監査対象テーブルを設定
② 監査対象テーブルに何か更新が発生する
③「Sys_auditテーブル」で更新履歴を追う

監査対象テーブルを設定

1.ALL>System Definition>Dictionaryを選択する
2.フィルターから「Table is (監査対象テーブル名)」 And 「Type is Collection」で検索
 → 「Type is Collection」は虫眼鏡を押下して選択すること

3.出てきたレコードの「Audit」カラムをTrueにする
 →この時、テーブルによってはGlobal権限で設定する必要がある
 今回は「Usersテーブル」を監査したいので、Trueに設定した

image.png

4.以上で監査する準備は整った

動作確認(更新履歴を追う)

1.ALL > System Definition > Tableを選択する
2.フィルターで「Name is sys_audit」と入力し、対象テーブルを開く
image.png

3.フィルターで「Table Name is (監査対象テーブル名)」と入力し、検索する
(まだ更新してないので、何もない)
image.png
4.監査対象テーブル・監査対象カラムを任意の値に変更する
試しに「Email」を 「hogehoge」→「Hello world」にしてみた
image.png

5.「3.」で表示したsys_auditテーブルを更新すると、値の変更履歴が出る
カラム「old Value」「new Value」でどう変わったかも分かる
https___qiita-image-store.s3.ap-northeast-1.amazonaws.com_0_4244730_2c1022ab-b364-4447-ada0-b383930f9e05.png

補足

sys_auditテーブルにある「Doucument Key」はSysIDである。
監査の結果、「何かデータがおかしい!」となったら、
監査対象テーブルで「Sys ID is (sys_auditテーブルのDocumentKey)」とすれば更新されたレコードを見に行くこともできる。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?