LoginSignup
11
2

More than 3 years have passed since last update.

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

Last updated at Posted at 2021-04-01

概要

 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をコピーできます。
image.png

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表示]をクリック
image.png

ポップウィンドウにXML形式で表示されたレコード内のを確認する。

Easy Importによる特定

Easy Importを利用して複数のレコードのsys_idを取得することもできる。

  1. Sys IDを取得したいレコードのみになるようフィルターをかける。
  2. ハンバーガーアイコンから[インポート]をクリック
  3. 以下の画像のように設定し、[Excelテンプレートを作成]でExcelをダウンロード。   [全てのフィールドをテンプレートに含めますか]にチェックを入れることで、ファイルにsys_idのカラムを追加できる。

image.png

スクリプトによる取得

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

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

11
2
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
11
2