概要
ServiceNowには、Sys ID[sys_id]と呼ばれる一意の32文字の羅列が存在します。この羅列によりインスタンス内の各レコードを識別することができるので、ビジネスルールやクライアントスクリプト等のスクリプト、参照型フィールドへの参照等、全てのレコードを一意に特定することができる。
また、Sys IDは世界中の全てのインスタンス、全てのテーブルで作成された全てのレコードにおいて一意に割り振られるため、Sys IDは以下の注意点を除き、被ることはありません。
この記事では、Sys IDを取得するための実用的な方法を紹介します。
注意点
- データベースレベルでNowプラットフォームの外でコピーされてレコード
- 更新セット、XMLでコピーされたレコード。
- インスタンス間で同様なレコードを用意するための手段として使用されます。
sys_idを取得する方法
- 右クリックによるsys_idのコピー
- URLからの特定
- XML出力による特定
- Easy Importによる特定
- スクリプトによる取得
右クリックによるsys_idのコピー
・フォーム画面:ヘッダーを右クリック
・リスト画面:レコードを右クリック
[sys_idをコピー]でsys_idをコピーできます。
URLからの特定
フォーム画面にいる時のURLにsys_idは表示されています。
**sys_id%~%**で囲まれた部分がsys_idです。
https://.service-now.com/nav_to.do?uri=%2Fincident.do%3F sys_id%3D552c48888c033300964f4932b03eb092 %26sysparm_view%3Dess%26sysparm_record_target%3Dincident%26sysparm_record_row%3D1%26sysparm_record_rows%3D66%26sysparm_record_list%3DORDERBYDESCnumber
XML出力による特定
・フォーム画面:ヘッダー右クリック
・リスト画面:フィールラベル横のハンバーガーアイコンをクリック
[XML表示]をクリック
ポップウィンドウにXML形式で表示されたレコード内のを確認する。
Easy Importによる特定
Easy Importを利用して複数のレコードのsys_idを取得することもできる。
- Sys IDを取得したいレコードのみになるようフィルターをかける。
- ハンバーガーアイコンから[インポート]をクリック
- 以下の画像のように設定し、[Excelテンプレートを作成]でExcelをダウンロード。
[全てのフィールドをテンプレートに含めますか]にチェックを入れることで、ファイルにsys_idのカラムを追加できる。
スクリプトによる取得
Server サイド
var sysID = current.getValue('sys_id'); //APIによる取得
or
var sysID = current.sys_id; //ドットウォークによる取得
Client サイド
var sysID = g_form.getUniqueValue(); //APIによる取得
結論
sys_idを取得する方法は様々だが、個人的に普段使いできるものをまとめると以下になる。
取得数 | 手段 |
---|---|
単体 | 右クリック |
複数 | Easy import |
スクリプト | API |
ありがとうございました。