記事一覧 - So-da

【ServiceNow】開発者向け!使いこなすぞ、SN Utils

作成者: かなた|May 26, 2025 2:45:00 AM
未経験からServiceNowの世界へ飛び込んだ私には、頼りになる相棒がいます。
それは 「SN Utils」 です。
ご存じの方には、ぜひ初対面のときの感動を思い出していただけるよう、
まだの方には「今すぐ会いたい!」と思っていただけるよう、簡単にご紹介します。
 

 

SN Utilsとは、Arnoud Kooiさんが個人で開発しているブラウザ拡張機能であり、
Chromeをはじめ、様々なブラウザで使用することができます。
https://www.arnoudkooi.com/
ServiceNowの開発者や管理者の作業を、"楽" にしてくれる多くの機能が存在します。
 
ブラウザ拡張機能のインストール方法は、使用ブラウザの公式ページをご確認ください。
本記事ではChromeを使用します。
ServiceNowの開発を進めていくうえでも、調査を進めていくうえでも、
「画面上で表示されるラベル名よりも、物理名が見たい!」 と思うこと、少なくないですよね。
そんなときSN Utilsを使えば、リスト画面でもフォーム画面でも、
ラベル名とセットで物理名を表示することができます。
 
 
設定は簡単です。
拡張機能マークを押下すると表示されるポップアップ画面の中から、
「Show Technical names on page load」のチェックボックスを設定するだけ!

 

画面をリロードすると・・・
ラベル名の下に、小さく物理名が表示されています。
テーブルの物理名も、各カラムの物理名も確認することができますね。

フォーム画面でも同様に、ラベル名と物理名をセットで確認することができます。
例えば、ラベル名 「Caller」 に対応する物理名は [caller_id] というように、
どちらの値もパッと確認することができるのは、かなりありがたいですよね。

 

また、白いスペースでダブルクリックすることでも、物理名を表示させることができます。
ポップアップ上でのチェックボックスの選択すらせず、簡単に操作できるとは・・!
 
そして、コマンド入力によっても物理名の表示 / 非表示を変更することができます。
こちらは最後の感動ポイントでご紹介します。
ServiceNowの開発では、テーブルを拡張することがあります。
標準機能としても、Task [task] テーブルの拡張として、Incident [incident] テーブルが存在しています。
Taskテーブルに存在するカラムは、Incidentテーブルでも使用できるため、
新しいテーブルを作るときに、同じようなカラムをポチポチと作る手間がスキップできますね。

ただ、拡張の関係性を抑えていても、ふとした時、
 「これはどちらのテーブルのカラムだっけ?」 と迷うことはありませんか?
拡張先テーブルの独自カラムだと思い込んで作業した結果、別のテーブルにも影響を与えてしまうことも・・
作業に慎重さが求められる場面ですが、該当するカラムの数だけ、Dictionary画面へ遷移するのは手間・・
 

そんなとき、フォーム画面上でパッと確認する方法がこちら!
フォーム画面を開いて、画面上部の [table fields] を押すだけです。
今開いているレコードのカラムが、ずらっと表示されています。
拡張元であるTask [task] テーブルのカラムと、拡張先のIncident [incident] テーブルのカラムが、
別々のエリアに表示されていることが確認できますね。
この画面を開いておけば、一つ一つDictionaryレコードを確認しなくても、カラムの関係性が一目瞭然です。
 
また、物理名の前についているマークによって、
カラムが画面上に表示されているか、隠されているかといった情報も教えてくれます。なんて親切なの・・!
ServiceNowの開発を進めていくにあたって、
 "今どのアプリケーションスコープで作業しているか" を認識することが、とても重要です。
 
 "今どのアプリケーションスコープで作業しているか" は、
SN Utilsを使用することで、画面上部に表示することもできます。
(こちらは標準装備されましたね。大変うれしかったです。)
 
ただ、アプリケーションスコープは似たような名称のものも多く、切り替えるときに迷うこともよくあります。
似たような名前のアプリケーションスコープを誤って選択することによって、
作る予定のなかったDefaultのUpdate Setが作られてしまうことも・・
 

そんなときSN Utilsがあれば、表示されたメッセージから 「here」 を押すだけで、
すぐにアプリケーションスコープを切り替えてくれます。
 
現在設定しているアプリケーションスコープと、変更先のアプリケーションスコープとを確認したのち、
画面内の案内部分最後尾の 「here」 を押下すると、
後者のアプリケーションスコープへと切り替える処理を行ってくれます。

切替が完了すると、画面がリロードされます。
リロード後の画面上では、アプリケーションスコープに関するメッセージがなく、
レコード自体も編集可能な状態に切り替わりました。
また、画面右上の地球儀マークの周りに赤枠が表示されていることからも、
Globalスコープから作業すべきアプリケーションスコープへと切り替わっていることが確認できます。
 
アプリケーションスコープの切り替えが終われば、Update Setを指定するだけですね。 
この "ひと手間" を省けることのありがたさたるや・・!
ServiceNowの開発や調査をしている際に、最も登場頻度が高い情報、
それはずばり、sys_idだと思います。

「Update Setを使用して別環境へ資材を移送をしたけれど、何かがおかしいな・・」
「ログやXMLからsys_idまでは取得できたが、この情報をどうしたら・・?」
「sys_metadataテーブルを使用して検索するのも、情報量が多い分時間がかかるよな・・」
 

そんな悩みを抱えている方、いますぐSN Utilsを活用しましょう。sys_idだけで検索できます。
「/」を押下して、sys_idを貼り付けましょう。
 
一致するsys_idがある場合、別タブでレコードを開いてくれます。
一致しない場合にも、遠慮がちに見つかりませんと教えてくれます。
一致するレコードがなかったことも教えてくれるので、
環境ごとの差異を発見することもできれば、
 「ひょっとしてこの値はsys_idではない・・?」 といった気づきも与えてくれます。
調査結果から得た値がsys_idなのかを見分ける際にも活用できますね。
ServiceNowを使用していく際には、フィールドナビゲーションを活用して画面遷移することがほとんどです。
アプリケーションメニューやモジュールという形で導線を用意することがあっても、
「テーブルの物理名を覚えているからコマンドで開いてしまおう」という経験はありませんか?
( 「sys_properties.list」などは打ち込みがちですよね・・?)
 
標準機能としても、<.list> <.LIST> <.form> <.FORM> <.config> など、
フィールドナビゲーションを使用してのコマンドがいくつか存在しています。
 
 
ただ、大文字コマンドを使用して別ウィンドウで開いたり、
一覧画面上でコントロールキーを押しながら、レコードを選択した場合など、
新しいタブで情報を確認した際に、ヘッダーが消えてしまうこと、気になりませんか?

私はアプリケーションスコープや、Update Setの情報が見えなくなってしまうことが不安でした。
 

そんなとき、SN Utilsがあれば!
「/」を押下して、「pop」と入力すればすぐにいつも通りの画面へ!

逆に「ヘッダー情報は不要なので、画面いっぱいにレコードを見たい!」という場合にも、
同じように 「/pop」 コマンドで表示を切り替えることができます。


その他にも、SN Utilsには色々なコマンドが用意されているので、よく使うものを主観でまとめてみました。

  コマンド 操作 使用する場面例  
開発お役立ち  
1 /bg バックグラウンドスクリプト画面に遷移する スクリプトを検証する  
2 /bgc フォーム画面で表示していたレコードを取得するようなGlideRecordが記載された、バックグラウンドスクリプト画面に遷移する レコードの値を使用したスクリプトを検証する
3 /log <文字列> 入力された<文字列>を、システムログ [sys_log] テーブル内の本日作成されたレコードから、「Message」「Source」内の部分一致で検索する ログの出力を確認する
4 /sys_id 一致するsys_idのレコードを検索し、ヒットしたレコードを新規タブで開く sys_idの値で検索する
5 /tn 物理名の表示 / 非表示を切り替える 物理名を確認する
6 /xml フォーム画面で表示していたレコードのXML情報を新しいタブで開く XMLの情報を確認する
7 /p <文字列> 入力された<文字列>を、システムプロパティ [sys_properties] テーブル内「Name」の部分一致で検索する プロパティの設定値を確認する
8 /fd

フローデザイナーの画面を新規タブで開く ※Yokohamaリリース時点では、Workflow Studioへの導線へ

フロー、サブフロー、アクションの開発を行う
9 /lang <言語コード> 入力された<言語コード>に、インスタンスの言語を切り替える 翻訳を確認する
10 /pop UIを切り替える アプリケーションピッカーなどを表示する
テストお役立ち  
11 /u <文字列> 入力された<文字列>を、ユーザー [sys_user] テーブル内「User ID」「Name」の部分一致で検索する ユーザーの情報を確認する  
12 /imp <文字列>

入力された<文字列>を、ユーザー [sys_user] テーブル内「User ID」「Name」の部分一致で検索し、Userを提案する

提案されたユーザーを選択することで、代理操作が実行される

代理操作を実行して、画面を確認する  
13 /unimp 代理操作を終了する 代理操作を終了する  
14 /rnd フォーム画面で表示していたレコードの必須項目に対して、ランダムに値を設定する テストレコードの作成時間を短縮する  
15 /ec 従業員ポータルの画面を新規タブで開く 従業員ポータルの画面を確認する  
16 /sow サービスオペレーションワークスペースの画面を新規タブで開く サービスオペレーションワークスペースの画面を確認する  
17 /tab 新しいタブを開く 新しくタブを開いて作業する  
「/tn」を使用すると、感動ポイント①でご紹介した物理名の表示 / 非表示を切り替えることができます。
感動ポイント④でご紹介したsys_idでの検索も、「/sys_id」というコマンドの一部でした。
 
 
また、これらのコマンドは覚えておく必要はありません。
「/」を押下したあとに表示されるポップアップ画面には、
コマンドの一覧がアルファベット順に記載されています。しかも各コマンドへの説明付き・・!
 
まだまだご紹介できていないコマンドもたくさんあるので、
ぜひ拡張機能をインストールして、どういったコマンドがあるのか確かめてみてください。
ここまで私の感動ポイントを抜粋でお伝えしてきましたが、
以下のServiceNowの開発者ブログにて、Arnoud Kooiさんご本人の解説動画を見ることができます。
https://developer.servicenow.com/blog.do?p=/post/dyk-snutils/
 
みなさんもServiceNow開発者界隈の大スター、SN Utilsを相棒として、
たのしく、便利に、ServiceNowを活用してみませんか。
 
 
システムサポートは、ServiceNowの開発に多くの経験と実績があります。
ServiceNowを使用した業務改善や高度な実装には、
システムサポートのServiceNow導入サービスをよろしくお願いいたします。
 
ServiceNowについてさらに詳しく知りたい方は、ぜひご相談ください。