
こんにちは。ServiceNow担当のT Aです。
ServiceNowの学習を進めていくと、スクリプトを触り始めた段階で1つの壁にぶつかると思います。
「GlideRecordってなんだ…?」
そんな壁を破壊すべく、本日は「GlideRecord(addQuery)の処理のイメージ」について説明をしたいと思います。
今回の記事はServiceNowを触り始めたばかりの初心者の開発者向けの内容となります。今後の学習のきっかけとしていただければと思います。
ServiceNowの学習を進めていくと、スクリプトを触り始めた段階で1つの壁にぶつかると思います。
「GlideRecordってなんだ…?」
そんな壁を破壊すべく、本日は「GlideRecord(addQuery)の処理のイメージ」について説明をしたいと思います。
今回の記事はServiceNowを触り始めたばかりの初心者の開発者向けの内容となります。今後の学習のきっかけとしていただければと思います。
GlideRecordを使用して「簡単な説明」を入れてみる
今回は、「インシデントテーブル」にあるレコードの「簡単な説明」項目に「このインシデントは〇〇会社についてのものです」という文字列を入れたいと思います。
今回の処理をスクリプトで書くとこんな感じです。

今回の処理をスクリプトで書くとこんな感じです。
1行ずつ解説をしていきます。//"incident"テーブルをGlideRecordで指定
var grRec = new GlideRecord("incident");
//指定した番号に基づいて検索値を設定
grRec.addQuery("number", "INC0008111");
//設定した条件で検索を実施
grRec.query();
//検索した結果、レコードが存在するかを確認
if (grRec.next()) {
//該当するレコードに処理を加える
grRec.short_description = "このインシデントは○○会社についてのものです";
//変更した内容を保存する
grRec.update();
}
"incident"テーブルをGlideRecordで指定し、検索をかける
var grRec =new GlideRecord("incident");こちらのスクリプトの意味としては「インシデントテーブルのリストを開いてください」だと考えてください。
「grRec」は開いている画面そのものを覚えておくためのものだとイメージするとわかりやすいと思います。

grRec.addQuery("number","INC0008111");こちらは「"number"が"INC0008111"であるもので絞り込みをしたい」という意味になります。
つまり、画像のように「番号(number)」項目を"INC0008111"で一致するものを検索条件にセットするように指示しています。

grRec.query();これは「実行」ボタンを押すのと同じ意味です。
この操作を実行すると、欲しいデータが検索結果として出てきているのがわかります。

検索した結果をもとに、処理を実行する
if(grRec.next()){こちらは「GlideRecordを使って検索をした結果、引っかかるレコードがあればフォームを開いて以降の処理に進みますよ」の意味です。
ここでは「.next()」を使用していますが「.hasnext()」などよく使う書き方がありますので気になる方は違いについて調べてみてください。(後日、関連記事をUPしたいと思います。)

grRec.short_description="このインシデントは○○会社についてのものです";これは検索に引っ掛かったレコードの「簡単な説明」(short_description)に「このインシデントは〇〇会社についてのものです」という文字列を入れるように指示します。

grRec.update();当然、フォームを編集した際には保存ボタンを押します。「更新」ボタンをフォーム上で押す処理と同じです。

終わりに
今回は開発者向けにGlideRecordを説明するためにあえてUI操作とスクリプトを比較しましたが、いかがでしたでしょうか?
実際のUI操作を交えて確認することでイメージしやすかったのではないかと思います。
今回は文字列を入れる処理を紹介しましたが、例えば.getValue("number")でデータを取得するような動きも多いですので、addQuery以外の使用方法についても興味をもっていただければ幸いです。
ServiceNowを活用した業務改善をするなら、システムサポートのServiceNow導入サービスをよろしくお願いします。
ServiceNowについて更に詳しく知りたい方は、ServiceNowに熟知したSTSメンバーがよりよいシステム構築をご提案しますので、ぜひご相談ください。
実際のUI操作を交えて確認することでイメージしやすかったのではないかと思います。
今回は文字列を入れる処理を紹介しましたが、例えば.getValue("number")でデータを取得するような動きも多いですので、addQuery以外の使用方法についても興味をもっていただければ幸いです。
ServiceNowを活用した業務改善をするなら、システムサポートのServiceNow導入サービスをよろしくお願いします。
ServiceNowについて更に詳しく知りたい方は、ServiceNowに熟知したSTSメンバーがよりよいシステム構築をご提案しますので、ぜひご相談ください。