0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Record Producer 7:Lookup Select Box vs. Referenceについて【ServiceNow】

Posted at

※この記事はServiceNow初心者が学習用のために記載した記事です。内容について誤っている場合がございます。不足点などございましたらコメントいただけますと幸いです。

Lookup Select Boxとは

  • Lookup Select Box は、特定の条件に基づいて選択肢を動的にフィルタリングできるドロップダウンフィールド
    • ドロップダウンフィールド: ユーザーがリストから選択できるUI要素、クリックすると選択肢が表示され、1つのオプションを選べる形式
  • 従来の選択ボックス(Choiceフィールド)と異なり、事前に選択肢を定義するのではなく、スクリプトを使用してデータを取得・フィルタリングできる

特徴

  • スクリプトによる動的な選択肢設定
    • フィルタリング条件を Client ScriptCatalog 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を保存することで他のレコードとの関連性を維持できる
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?