ServiceNowでスクリプトを書く時の自分用メモ
テーブルにもしもししたいとき使うおまじない「GlideRecord」
もしもししたテーブルを変数に格納していろいろつけたら便利~というメモ
削除、挿入はあんまり使わないので書きませんでした・・・
「システム定義」>「スクリプト - バックグラウンド」からお試しできますが、
updateは本当に更新されちゃうので注意です!重いな~と連打すると痛い目を見ました
シングルクォートで行けるときとダブルクォートで行けるときの違いがわかりません・・・怒られたら直してます・・・ホョョ
| スクリプト | 説明 |
|---|---|
| .addActiveQuery() | アクティブがTrueになっているレコードにのみクエリを発行する |
| .addInactiveQuery() | アクティブがFalseになっているレコードにのみクエリを発行する |
| .addEncodedQuery(String Query) | クエリ内で指定したパラメーター設定でレコードをフィルターする |
| .getRowCount() | 行数を取得してくれるオプション |
| .addJoinQuery(‘テーブル名’) | 関連テーブルにあるレコードについてフィルターしてくれる |
| .addNotNullQuery(‘カラム名’) | カラム名にて指定した列項目がNullでないレコードのみにフィルターをかける |
| .addNullQuery(‘カラム名’) | カラム名にて指定した列項目がNullのレコードのみにフィルターをかける |
| .setLimit(‘数字’) | 数字で指定した数のみ結果を返す。該当レコードが多すぎる場合に使えそう。 |
| .setWorkflow(true/false) | ビジネスルールのONOFF設定が可能 |
| .orderBy(‘カラム名’) | 指定列にて昇順ソートできる |
| .orderByDesc(‘カラム名’) | 指定列にて降順ソートできる |
| .update() | 更新を反映させる |
↓インシデントリストから優先度1のレコードを抽出してインシデント番号を返すスクリプト
var gr = new GlideRecord(‘incident’);
gr.addQuery(‘priority’,’1’);
gr.query();
while(gr.next()){
gs.print(gr.number);
}
↓addJoinQuery(‘テーブル名’)の使い方
例)インシデントテーブル内で、関連PRBの「優先度が1」となっているレコードを抽出する
var b = new GlideRecord(‘problem’);
var a =b.addJoinQuery(‘incident’);
a.addCondition(‘priority’.’1’);
b.query();
while(b.next())
{
gs.print(“このPRB番号は:”+b.number);
}
↓.update()の使い方
例)優先度1のインシデントレコードにのみ、説明欄を更新する(下記内容だと、既存の説明文の前に「更新されてるよ:」をつける更新をしている)
var Test= new GlideRecord(‘incident’);
Test.addQuery(‘priority’,’1’);
Test.query();
while(Test.next())
{
Test.short_description =”更新されてるよ:”+ Test.short_description;
Test.update();
}