コピペで実行:ServiceNow活用度アセスメント Profiler v1.0 スクリプト全文
Adoption Assessment Profiler v1.0 の全文掲載記事です。ServiceNow の26モジュールを横断し、導入状況・データ量・直近利用・重要フィールドの充填率を一括調査する Background Script。実行するとモジュールごとに Lv0〜5 のスコアが付き、問題候補(FINDING)と改善アクションまで並んだ一次レポートが出ます。
出力は1,000行を超えます。読み切るのは大変ですが、そのまま生成AIに渡して整理させる前提で設計してあります。
設計思想と出力の読み方は解説編(無料)で公開しています。素の Zurich PDI に掛けた実測結果は実行レポート編(¥100)にまとめました。この記事はスクリプト本体(2,004行)をコピペできる形で掲載し、あわせて調整ポイントを解説します。買い切りで、社内検証・自環境での実行にそのまま使えます。
この記事に含まれるもの
v1.0 スクリプト全文(コードブロック1個・約85KB。一括コピーしてそのまま動きます)
実行手順(Scripts - Background・3ステップ)と必要権限
ユーザー変更パラメータ全項目の解説表
カスタマイズの定石(しきい値・対象モジュール・保護スコープ・解剖モード・分割実行)
実行時トラブルの対処(FAQ形式)
Zurich PDI での完走実績(出力1,013行・エラー0・所要は実測6〜17秒)
このスクリプトは PDI(Zurich patch6)で実機検証済みですが、実行は自己責任でお願いします。読み取り専用(update / insert / delete なし)で設計されており、破壊的操作は含みません。ただし集計クエリは走るため、本番環境では業務時間外の実行を推奨します。
これは何をするスクリプトか
Scripts - Background(sys.scripts.do)に貼り付けて実行すると、次が1回で出ます。
26モジュール(ITSM / Knowledge / Catalog / Portal / Service Portfolio / CMDB / ITOM / CSM / HRSD / ITAM / SAM / SPM / Agile / SecOps / IRM / FSM / Workplace / Legal / App Engine / Automation / Integration / Analytics / Virtual Agent / ATF / Notification / Adoption)の横断調査
モジュール別スコア(Lv0 未導入 〜 Lv5 高活用)と、その根拠行(MODULE_SUMMARY / SCORE_CAP)
問題候補の FINDING 行(半数超の空欄・直近利用なし・完了なし等)
生成AI に渡すための GENAI_INSTRUCTION / NEXT_ACTION 行
実行条件の記録(INSTANCE / PARAM 行)

出力の形式
出力はパイプ区切りの整形テキストです。行の種類は Section 列で見分けます。

末尾には全体サマリが出ます。モジュール数・FINDING 件数・全体平均スコア・実行時間・行数の検算までここで確認できます。

出力全体は、そのまま生成AIに貼って改善バックログや追加調査スクリプトを作らせる前提の設計です。読み方の詳細は解説編に、素の PDI での実例は実行レポート編に書いています。
安全設計(実行前に確認してください)
読み取り専用です。GlideRecord / GlideAggregate の参照系のみで、update / insert / delete / deleteRecord は一切呼びません
Scheduled Job 化・sys_trigger 登録をしません。手動実行の1回きりで完結します
メモリ非常駐。レコードを配列に溜め込まず、1件ずつ処理して捨てます
ES5 互換(var / function のみ)。ES Script Level 0 のインスタンスでも動きます
20万件超のテーブルは空欄チェックを自動スキップします(FIELD_CHECK_SKIPPED を出力)
HR / Legal 等の保護スコープは既定で事前スキップします(Restricted Caller Access の警告を出さないため)
Zurich PDI でエラー0の完走を確認済みです(実行レポート編に全記録)
実行手順(3ステップ)
管理者ロールで All > System Definition > Scripts - Background を開く
下のスクリプト全文をコピーして貼り付ける(in scope は global のまま)
Run script を押し、出力テキストをコピーして保存する
実行が重い環境では、先頭のパラメータで OUTPUT_DETAIL = false にすると出力が要約中心になります。特定テーブルだけ調べたいときは TABLE_NAME にテーブル名を入れてください(後述の解剖モードに切り替わります)。
パラメータ一覧
スクリプト先頭の「ユーザー変更パラメータ」で挙動を調整します。

まず変えるとしたら次の3つです。LOOKBACK_DAYS(既定90日)は「直近利用」の定義そのものなので、四半期評価なら90、年次評価なら365にします。CATALOG_UNUSED_DAYS(既定180日)はカタログ死蔵判定の窓です。SKIP_RESTRICTED_SCOPED_TABLES は、HR 側の権限で実行できるなら false にすると HRSD も実測できます。
💰 ━━━━━ ここから先は有料エリア(¥300)━━━━━