概要
ServiceNowでレコード一覧画面(リスト画面)を表示した際に、初期表示の並び順を設定する方法を備忘録として記録します。
並び順設定には
・ユーザー初期設定
・モジュール設定
の2つの設定方法があり、どちらを使用するかは要件に応じて使い分ける必要があるかと思います。
環境
PDIで作成しています。
バージョンはVancouverです。
System Administrator(admin)で操作しています。
ユーザー初期設定
ユーザー初期設定から設定した場合、
ユーザーが並び順を変更すると、次回そのリスト画面を開いた際に、変更した並び順で表示されるようになります。
設定手順
1.既存のUser Preferencesレコードの確認
アプリケーションメニューより
User Administration > User Preferences を開きます。
以下の条件でフィルタリングします。
・Name がリストの並び順を設定したいテーブル名から始まる
・System = true
抽出結果に
・テーブル名.db.order
・テーブル名.db.order.direction
のレコードが存在するかどうか確認します。
存在していた場合はそれらのレコードを書き換えます。
存在していない場合は、「New」ボタンよりレコードを新規作成します。
今回の例では以下のように既存のレコードを書き換えることとします。
番号(number)の降順 → 開始日時(opened_at)の昇順
2.テーブル名.db.orderの設定
Valueの値をリストの並び順で使用したいフィールドの物理名(例ではnumber→opened_at)に書き換えて更新します。
3.テーブル名.db.order.directionの設定
テーブル名.db.order.directionのレコードを開きます。
Valueの値をASCに書き換えて更新します。(降順:DESC、昇順:ASC)
※設定手順1で既存のUser Preferenceレコードがなかった場合は、Valueがテーブル名.db.order、テーブル名.db.order.directionとなるレコードを新規作成します。
また作成時にはUserの値は空、Systemにチェックが入った状態で送信します。
4.設定確認
他のユーザー(まだ並び順を設定したテーブルにアクセスしたことがないユーザー)で設定したテーブルのリストを開きます。
想定通りの結果となっていることを確認します。
モジュール設定
モジュールで属性値を設定することで並び順を設定することも可能です。
その場合、モジュールからリストを開くたびに並び順が適用されるため、ユーザーが個別に並べ替えを行った場合でも、再度リストを開いた際にはリセットされます。
1.該当のモジュールを開く
アプリケーションメニューより
System Definition > Modules を開きます。
該当のモジュールを開きます。(今回はIncidentのAllモジュールに対して並び順を設定)
今回の例では以下のように設定します。
優先度(priority)の降順
2.属性値の設定
Moduleレコードを開いたら、Link Typeタブ内のArgumentsという項目に以下のように値を設定します。
昇順場合:&sysparm_order=フィールド物理名 &sysparm_order_direction=asc
降順場合:&sysparm_order=フィールド物理名 &sysparm_order_direction=desc
3.設定確認
他のユーザー(まだ並び順を設定したテーブルにアクセスしたことがないユーザー)で設定したテーブルのリストを開きます。
想定通りの結果となっていることを確認します。