ServiceNowのサーバーサイド・スクリプティングのGlideRecord APIの使い方をハンズオン形式で習得していきます。サンプル画像を使いながら、説明していきます。トレーニングを完了後、GlideRecord APIの知識の深堀とスキルアップできる内容になっています。
概要
ServiceNowのGlideRecordについて、サーバーサイドのスクリプティングの手順をハンズオンを通じて確認します。ハンズオンを完了すると、以下のイメージ画像のようなServiceNowのテーブルから指定したデータを取得できるようになります。
■ハンズオンでできるようになること
- GlideRecordのスクリプティングの手順を習得できるようになる。
- クエリ条件で、範囲を指定できるようになる。
- テーブルから指定したデータを取得し表示できるようになる。
仕様
開発インスタンスは、ServiceNow Developer Programで取得した無償の開発インスタンスを使っています。インスタンスのバージョンはUthaリリースを使っています。インスタンスは、初期化した状態になります。
要件
以下、要件にあわせた内容で、GlideRecord APIを使います。
ハンズオン完了時に取得されるデータ一覧は、概要にあるイメージ画像を参考にしてください。
- 作成するオブジェクトの名前は、任意。
- インシデントのテーブルから、以下の条件に該当するレコードを取得。
①優先度(Priority)が”1 – Critical”もしくは”2 – High”。
②ステート(State)が”In Progress”。 - クエリ条件に該当するレコードの番号(Number)すべてを画面に表示。
手順
まずは、事前準備になります。インスタンスを起動した後、[All]メニューから[Scripts – BackGround]を実行します。
サーバー上でJavaScriptを実行できる”Run Script”の画面がひらきます。
次に、GlideRecordのスクリプティング手順をすすめていきます。
- 目的のテーブルに対してGlideRecordオブジェクトを作成。
オブジェクト名は任意で構いません。ここでは、ServiceNow Developer Programのコースで使われているオブジェクト名(myObj)と同じにしています。
目的のテーブルとなる”Incident”テーブルに対して、GlideRecordオブジェクトを新しく作成します。
myObj = new GlideRecord(‘incident‘); | var
- クエリ条件として範囲を指定。
インシデントのテーブルから、クエリ条件として範囲を指定して該当するレコードを取得します。
ますは、優先度(Priority)が”1 – Critical”もしくは”2 – High”のクエリ条件を設定します。クエリ演算子を使います。クエリ演算子の定義、”<=”は、フィールドの値が指定された値以下になる条件となります。
myObj.addQuery(‘priority’, ‘<=’, 2); |
他の演算子の定義、”<“は、フィールドは、指定された値より小さくなる条件となります。この場合、演算子”<“を使う場合は、以下のようなスクリプティングになります。
myObj.addQuery(‘priority’, ‘<‘, 3); |
クエリ演算子の詳細な説明や種類については、以下、ServiceNowの製品ドキュメントをご参照ください。
■スクリプトでのテーブルのクエリ(製品ドキュメント)
使用可能な JavaScript 演算子
次に、ステート(State)が”In Progress”のクエリ条件を設定します。field_nameは”state”、valueは”2″をスクリプティングします。
.addQuery( myObj‘state’, ‘2’); |
- 基本構文クエリ条件に該当するレコードの番号(Number)すべてを画面に表示
クエリ条件で該当するレコードすべての”番号”を表示させるスクリプティングを実行します。
myObj.next()){ gs.print(myObj.number); } | while(
さいごに、これまでのGlideRecordのスクリプティングを”Run Script”にて入力したあと、[Run Script]ボタンをクリックして、スクリプトを実行します。
おつかれさまでした。GlideRecord APIを使って、Incidentテーブルから①優先度(Priority)が”1 – Critical”もしくは”2 – High”かつ、ステート(State)が”In Progress”であるレコードを取得したあと、その抽出したレコードすべての”番号”を取得して表示できました。
表示されたレコードが15件あり、その番号すべてが表示されました。参考までに、実際にIncidentテーブルのレコードを確認してみると、Incidentテーブルから①優先度(Priority)が”1 – Critical”もしくは”2 – High”かつ、ステート(State)が”In Progress”であるレコードが15件あることが確認できます。
さらにスキルを深める【実習トレーニング】
ServiceNowのGlideRecord APIの使い方について、一通りの概要は掴めましたでしょうか。あとは、実習トレーニングで、GlideRecordを2,3回スクリプティングしてみると、GlideRecordをさくさくと使いこなせるようになると思います。
つぎは、ハンズオンで手慣れるGlideRecordの使い方【トレーニング】になります。ServiceNow Developerを目指して、トレーニング問題にぜひ挑戦してみてください。
参考資料
GlideRecord APIの使い方について、以下のServiceNowの公式資料を参考にしています。
- GlideRecord – スコープ対象(ServiceNow製品ドキュメント)
- スクリプトでのテーブルのクエリ(製品ドキュメント)
- Server-side Scripting – GlideRecord (ServiceNow Developer Program)
以上、”[ServiceNow]ハンズオンで習得! GlideRecord APIの使い方①【トレーニング】”となります。