背景
今まで、お仕事で更新前後のデータを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に設定した
4.以上で監査する準備は整った
動作確認(更新履歴を追う)
1.ALL > System Definition > Tableを選択する
2.フィルターで「Name is sys_audit」と入力し、対象テーブルを開く

3.フィルターで「Table Name is (監査対象テーブル名)」と入力し、検索する
(まだ更新してないので、何もない)

4.監査対象テーブル・監査対象カラムを任意の値に変更する
試しに「Email」を 「hogehoge」→「Hello world」にしてみた

5.「3.」で表示したsys_auditテーブルを更新すると、値の変更履歴が出る
カラム「old Value」「new Value」でどう変わったかも分かる

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