未経験からServiceNowの世界へ飛び込んだ私には、頼りになる相棒がいます。
それは 「SN Utils」 です。
ご存じの方には、ぜひ初対面のときの感動を思い出していただけるよう、
まだの方には「今すぐ会いたい!」と思っていただけるよう、簡単にご紹介します。
SN Utilsとは、Arnoud Kooiさんが個人で開発しているブラウザ拡張機能であり、
Chromeをはじめ、様々なブラウザで使用することができます。
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さんご本人の解説動画を見ることができます。
みなさんもServiceNow開発者界隈の大スター、SN Utilsを相棒として、
たのしく、便利に、ServiceNowを活用してみませんか。
システムサポートは、ServiceNowの開発に多くの経験と実績があります。
ServiceNowを使用した業務改善や高度な実装には、
システムサポートのServiceNow導入サービスをよろしくお願いいたします。
ServiceNowについてさらに詳しく知りたい方は、ぜひご相談ください。