※この記事はServiceNow初心者が学習用のために記載した記事です。内容について誤っている場合がございます。不足点などございましたらコメントいただけますと幸いです。
Lookup Select Boxとは
-
Lookup Select Box は、特定の条件に基づいて選択肢を動的にフィルタリングできるドロップダウンフィールド
- ドロップダウンフィールド: ユーザーがリストから選択できるUI要素、クリックすると選択肢が表示され、1つのオプションを選べる形式
- 従来の選択ボックス(Choiceフィールド)と異なり、事前に選択肢を定義するのではなく、スクリプトを使用してデータを取得・フィルタリングできる
特徴
- スクリプトによる動的な選択肢設定
- フィルタリング条件を Client Script や Catalog Client Script で設定可能
- 他のフィールドの値に応じて選択肢を変更できる
- パフォーマンスに優れる
- 事前にフィルタリングされたレコードのみ取得するため、大量データでも動作が軽い
- sys_idではなく、特定の値を格納
- 例えば、カタログアイテムの変数で使用すると、sys_idではなく、表示された値をそのまま格納する
使用例
- サービスカタログの変数で、選択肢をユーザーの所属部署に応じて変える
- 特定の条件に合うユーザーリストを表示し、選択させる
Reference フィールドとは
- Reference フィールド は、他のテーブルのレコードを参照できるフィールド
- データベースのリレーションのように、他のテーブルの
sys_id
を格納することで、データの整合性を保つことができる- ※sys_idは直接入力するのは通例的にNGなことがある
特徴
- sys_idを格納する
- 参照先のレコードの
sys_id
をデータとして保存するため、データの一貫性が保たれる
- 参照先のレコードの
- 検索機能付きのUI
- ポップアップ検索ウィンドウ
- オートコンプリート機能(予測変換)
- 参照条件を設定可能
- 参照するテーブルのレコードをフィルタリングできる(例:Activeなユーザーのみ表示)
- 関連リストの表示が可能
- 参照された側のテーブルに「関連リスト」を表示し、どのレコードから参照されているかを確認できる
使用例
- インシデントテーブルの Caller フィールド(
sys_user
テーブルを参照) - CMDBの Configuration Item フィールド(
cmdb_ci
テーブルを参照)- CMDB(構成管理データベース) :IT資産(構成アイテム:CI) の情報を一元管理するデータベース
- ServiceNowでは CMDB は特に 構成アイテム(CI: Configuration Item) を管理するためのテーブル群の集合体として実装
Lookup Select Box vs. Referenceの違い
項目 | Lookup Select Box | Reference |
---|---|---|
データ取得方法 | スクリプトでフィルタリングしたデータを表示 | 参照テーブルのすべてのレコードから選択 |
フィルタリング | スクリプトで動的にフィルタ可能 | 参照条件を設定すればフィルタ可能 |
UI | ドロップダウンで選択 | 検索ウィンドウ、オートコンプリート、ドロップダウン |
パフォーマンス | 事前フィルタリングで軽量 | 参照テーブルが大きいとパフォーマンスに影響 |
依存関係 | 他のフィールドの値に応じた動的選択が可能 | 依存関係を設定すれば可能だが、動的な変更は制限される |
データの格納 | 選択肢の値(sys_idではない) | 参照テーブルのsys_id |
どちらを使うべきか?
要件 | 推奨フィールド |
---|---|
他のフィールドの値に応じて、選択肢を動的に変えたい | Lookup Select Box |
参照テーブルの sys_id を保持し、関連データを管理したい |
Reference |
参照するテーブルのデータ量が多く、検索機能が必要 | Reference |
カタログアイテムの変数で、条件付き選択肢を作成したい | Lookup Select Box |
具体的なシナリオ
1. Lookup Select Box の例
シナリオ
インシデントフォームで、担当者フィールドに「特定のグループ(ITサポート)」に属するユーザーのみを表示したい
解決策
Lookup Select Box を使用し、スクリプトで特定グループのユーザーのみをリストに表示
2. Reference フィールドの例
シナリオ
ユーザーがインシデントの「報告者(Caller)」を選ぶ際、すべてのユーザーから検索できるようにしたい
解決策
Reference フィールドを使用し、sys_user
テーブルから検索できるようにする
結論
- Lookup Select Box は スクリプトで動的に制御可能 で、カタログ変数やフォームの特定のシナリオに向いている
- Reference は データの整合性が重要な場面で活躍 し、sys_idを保存することで他のレコードとの関連性を維持できる