【ServiceNow】sys_idの取得方法のまとめ


概要

 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を取得することもできる。

  1. Sys IDを取得したいレコードのみになるようフィルターをかける。
  2. ハンバーガーアイコンから[インポート]をクリック
  3. 以下の画像のように設定し、[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

ありがとうございました。