実践ServiceNow - SN Utilを利用する 

#目的
ServiceNowで開発しているとテーブルを開いたり、列名を探すことが多い。毎回テーブル辞書を開いたりするのに時間が掛かる。
SN UtilsはServiceNowの開発をよりしやすくするためのChrome及びFirefoxのプラグインである。開発者であるArnoud Kooi氏はServiceNowの開発者でありますが、SN Utilsは個人で開発してGitHubで管理されている。
本ページではSN Utilsプログラインのインストールと使い方を説明する。

#インストール
## Chrome
Chome Web Storeからインストールすることができます。
1. 次ぎのURLを開き、右上の「Add to Chrome」ボタンを押下します。<br/>https://chrome.google.com/webstore/detail/sn-utils-tools-for-servic/jgaodbdddndbaijmcljdbglhpdhnjobg?hl=en<br/>
<img width=600 src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/8243d19f-17df-03ae-8db3-3fd629ad944e.png"/>
2. 確認ポップアップが表示されるので「拡張昨日を追加」ボタンを押下します。<br/><img width="400" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/ec4e9db7-dc6b-248f-62fe-a0128be49565.png"/>
3.インストールされたポップアップが表示されるので閉じます。これでSN Utilはインストールされました。<br/><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/b10c842b-4a90-242d-f48a-2a827d2c3ebb.png"/>

## Firefox
1. Firefoxの場合はFirefox Browser ADD-ONSページからインストールします。<br/>https://addons.mozilla.org/en-US/firefox/addon/servicenow-utils2/
2. 「Add to Firefox」ボタンを押下します。<br/><img width="300" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/c3bfe963-95c4-ca63-b94a-80933494f730.png"/>
3.確認ポップアップが表示されるので「追加(A)」ボタンを押下します。<br/><img width=300 src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/56adfc2c-deea-4100-963e-1132d9534f32.png"/>
4.インストールされたポップアップが表示されるので「OK」ボタンを押下して閉じます。<br/><img width=300 src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/f65ffeba-9b6b-c1e7-bba0-e7bb85417d2c.png"/>

#設定
SN Utilsの設定はWebブラウザの拡張機能ページから行います。
1. WebブラウザのURL入力フィールドの右にある拡張機能アイコンを押下します。<br/><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/bd6e6aa2-191f-f26c-b1c5-5fdf74ea3c06.png"/>
2. SN Utilsをピン止めすると便利です。ピンのアイコンをクリックします。<br/><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/fec0eb15-20ee-e16c-518f-e564e7ce41d2.png"/>
3. SN Utilsアイコンをクリックするとポップアップが表示されます。ここからSN Utilsの設定やServiceNowの操作も行えます。<br/><img width=400 src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/5ea6b7a7-3e98-714d-ec4d-6b71e400c260.png"/>

#使い方
SN Utilsをインストールするとナビゲータから①スラッシュコマンドを入力、②コンテキストメニュー、③Webブラウザに拡張機能アイコンが追加されます。
スラッシュコマンドとはServiceNowのナビゲータに「/」から始まるコマンドを入力して実行できるコマンドです。例えば、フォームに表示されているフォールのテーブル列名を表示するにはナビゲータに「/tn」を入力します。列名がラベルの横に表示されます。
<img width=600 src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/032b3a67-f27c-85a7-6031-a9ca00932224.png"/>
「[scrachpad]」リンクをクリックするとDisplay Business Ruleで設定されたスクラッチパッドが表示されます。<br/><img width=600 src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/f8782f5e-eece-c629-b008-df14ad8a170e.png"/>
元に戻すには再び「/tn」を入力します。

よく使うのは次のスラッシュコマンドです。

|スラッシュコマンド|説明|例|
|---|---|---|
|/api|ServiceN APIのドキュメントページを検索する|/api GlideRecord|
|/aes|新しいタブでApp Engine Studioを開く|
|/br 文字列|ビジネスルールリストを表示する。文字列を追加するとその文字列で名前をフィルタする|
|/code 文字列|新しいタブでServiceNowの全スクリプトを文字列で検索する|
|/copycells|リスト表示で選択された行のsys_id又は文字列をクリップボードにコピーする|
|/bg|バックグラウンドスクリプトページを開く|
|/tab|ログイン済の新しいタブを開く|
|/cs 文字列|クライアントスクリプトリストを表示する|
|/diff1及び/diff2|2つのタブのXML内容を比較する|
|/fd|新しいタブでフローデザイナーを開く|
|/lang [en|ja]|ページの言語を切り替える|lang en|
|/log 文字列|システムログを検索する|
|/me|自分のプロフィールページを開く|
|/p 文字列|システムプロパティを開く|
|/rnd|必須フィールドをランダムな値で入力する。テスト中に使う|
|/si 文字列|スクリプトインクルードリストを開く。文字列を指定するとその文字列で名前をフィルタする|/si UtilScript|
|/sp|サービスポータルページを開く|
|sysid 文字列|指定した文字列に該当するsys_idのオブジェクトを開く|
|/tn|列名を表示/非表示にする|
|/trans 文字列|トランザクションログを表示する。|
|/u 文字列|ユーザリストを開く。文字列が指定された場合はその文字列でフィルタする|/u abel|
|/ua 文字列|ユーザアクションを表示する。文字列が指定された場合はその文字列でフィルタする|
|/uis 文字列|UIスクリプトリストを表示する。文字列が指定された場合はその文字列でフィルタする|
|/um|必須フィールドを非必須にする|
|/up 文字列|UIポリシーリストを表示する。文字列が指定された場合はその文字列でフィルタする|

## バックグラウンドスクリプトについて
SN Utilsをインストールするとバックグラウンドスクリプトのテキストフィールドが背景が黒色のエディタに起こ代わります。行番号の表示、文法支援、フォーマットされるようになります。またCtrl+Enterでスクリプトを実行できます。<br/><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/24cc8514-fc63-2377-c8c5-9715421a7c58.png"/>
一旦便利のように見えますが実行結果からコードに戻るページに戻るとコードが表示される前にページがちらつききます。また、バックグラウンドスクリプトは保存できないので時々セッションが途切れると再入力することになります。そのためにVisual Studio Codeで書いたコードをバックグラウンドスクリプトにコピペする人も少なくありません。その場合はSN Utilsが追加したエディタ機能は不要です。
次ぎの手順でSN Utilsのバックグラウンドスクリプトを無効にできます。
1.WebブラウザからSN Utilsアイコンを選択する<br/><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/bd6e6aa2-191f-f26c-b1c5-5fdf74ea3c06.png"/>
2.「Settings」タブを選択して「Apply VS Code style editor to Background Scripts」のチェックを外す。<br/><img width=500 src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/e17bea4f-a6af-c12c-5a9d-4a8398836f57.png"/>
3.バックグラウンドスクリプトページを再表示する。元のテキストフィールドに戻ります。

## copycellsの使い方
リストから一つの行のsys_idをコピーする場合は行を右クリックして「Copy sys_id」を選択します。複数行のsys_idを取得する場合はこの操作を繰り返します。
SN Utilsの/copycellsを利用すろと同時に複数の行を一斉にコピーすることができます。
1. Ctrlキーを押下します。
2. sys_idを取得する行のリンクがあるセルを左クリックします。選択したセルの背景色が薄い青色に変わります。<br/><img width=300 src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/7b4dad8e-6164-7636-1ebf-6ed3bf3871e5.png"/>
3.スラッシュコマンド「/copycells -s」を入力します。「/copy」を入力してタブキーを押下すると「cells」が入力されるので「 -s」を追加するだけで済みます。<br/><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/c86bd303-a760-36d5-cd78-d7c6eef3dcf9.png"/>
4.スクリプトなどにペーストできます。<br/>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/e94077bf-ed68-d1ce-3760-a2f14ac8ec2f.png)

「/copycell」スラッシュコマンドでsys_idではなくセルの内容をコピペするこもできます。

#関連リンク
Githubプロジェクト
https://github.com/arnoudkooi/ServiceNow-Utils