【ServiceNow】超初心者向け 「GlideRecord」の使い方

こんにちは。ServiceNow担当のT Aです。
ServiceNowの学習を進めていくと、スクリプトを触り始めた段階で1つの壁にぶつかると思います。
「GlideRecordってなんだ…?」
そんな壁を破壊すべく、本日は「GlideRecord(addQuery)の処理のイメージ」について説明したいと思います。
今回の記事はServiceNowを触り始めたばかりの初心者の開発者向けの内容となります。
今後の学習のきっかけとしていただければと思います。
GlideRecordを使用して「簡単な説明」を入れてみる
今回は、「インシデントテーブル」にあるレコードの「簡単な説明」項目に「このインシデントは〇〇会社についてのものです」という文字列を入れたいと思います。
今回の処理をスクリプトで書くとこんな感じです。
//”incident”テーブルをGlideRecordで指定
var grRec = new GlideRecord(“incident”);
//指定した番号に基づいて検索値を設定
grRec.addQuery(“number”, “INC0008111”);
//設定した条件で検索を実施
grRec.query();
//検索した結果、レコードが存在するかを確認
if (grRec.next()) {
//該当するレコードに処理を加える
grRec.short_description = “このインシデントは○○会社についてのものです”;
//変更した内容を保存する
grRec.update();
}
1行ずつ解説をしていきます。
“incident”テーブルをGlideRecordで指定し、検索をかける
var grRec =new GlideRecord(“incident”);
こちらのスクリプトの意味としては「インシデントテーブルのリストを開いてください」と考えてください。
「grRec」は開いている画面そのものを覚えておくためのものであるとイメージするとわかりやすいと思います。
grRec.addQuery(“number”,”INC0008111″);
こちらは「”number”が”INC0008111″であるもので絞り込みをしたい」という意味になります。
つまり、画像のように「番号(number)」項目を”INC0008111″で一致するものを検索条件にセットするように指示しています。
grRec.query();
これは「実行」ボタンを押すのと同じ意味です。
この操作を実行すると、欲しいデータが検索結果として出てきているのがわかります。
検索した結果をもとに、処理を実行する
f(grRec.next()){
こちらは「GlideRecordを使って検索をした結果、引っかかるレコードがあればフォームを開いて以降の処理に進みますよ」という意味です。
ここでは「.next()」を使用していますが「.hasnext()」などよく使う書き方がありますので、気になる方は違いについて調べてみてください。(後日、関連記事をUPしたいと思います。)
grRec.short_description=”このインシデントは○○会社についてのものです”;
これは検索に引っ掛かったレコードの「簡単な説明」(short_description)に「このインシデントは〇〇会社についてのものです」という文字列を入れるように指示します。
grRec.update();
当然、フォームを編集した際には保存ボタンを押します。「更新」ボタンをフォーム上で押す処理と同じです。
終わりに
今回は開発者向けにGlideRecordを説明するためにあえてUI操作とスクリプトを比較しましたが、いかがでしたでしょうか?
実際のUI操作を交えて確認することで、イメージしやすかったのではないかと思います。
今回は文字列を入れる処理を紹介しましたが、例えば.getValue(“number”)でデータを取得するような動きも多いですので、addQuery以外の使用方法についても興味を持っていただければ幸いです。
ServiceNowを活用した業務改善をするなら、システムサポートのServiceNow導入サービスをよろしくお願いします。
ServiceNowについてさらに詳しく知りたい方は、ServiceNowに熟知したSTSメンバーがより良いシステム構築をご提案しますので、ぜひご相談ください。