はじめに
- バージョン
- ServiceNow: Rome
以下のようなテーブルIP Routers[cmdb_ci_ip_router]
において、列Nameの要素一覧を
取得出来ないか調査してみました。テーブルの情報を取得する場合は、GlideRecord
が使えるようです。
1. コード紹介
コードは列Nameの要素一覧(リスト)を格納する変数column_arrayを作成し、
while文の中で列Nameの各要素を追加するという構成になっています。
var column_array = [];
var table_data = new GlideRecord('cmdb_ci_ip_router');
table_data.orderBy('name');
table_data.query();
while(table_data.next()) {
column_array.push(table_data.getValue('name'));
}
gs.info(column_array);
ポイント
-
テーブルの内容取得
-
GlideRecordを使ってテーブルの内容を取得することが出来ます
new GlideRecord('テーブル名');
-
-
whileによるループ処理
-
while文で、
<GlideRecordで取得した変数>.next()
とすることで、
変数(今回はtable_data)に各行の値が代入されます。今回は、列Nameの要素を取得したいので
table_data.getValue('name')
と記載します。while(table_data.next()) { //実行したい処理 column_array.push(table_data.getValue('name')); }
-
2. 結果確認
2-1. 出力されるテーブル
gs.infoでログに出力した内容は、テーブルLog[syslog]
に出力されます。
Filter navigatorにscript log statements
と入力し、テーブルを確認します。
2-2. ログの確認
想定通り、列Nameの要素一覧を取得出来ていることが確認されました。
参考記事
GlideRecord - ServiceNow Developers
GlideRecord(API Reference) - ServiceNow Developers