参照フィールドのオートコンプリート

  • リリースバージョン: Zurich
  • 更新日 2025年07月31日
  • 所要時間:12分
  • デフォルトでは、ユーザーがフィールドに入力すると、参照フィールドが自動的に入力されます。

    アドミニストレーターは、追加のオートコンプリートオプションを構成できます。オートコンプリートでオプションを表示するには、ユーザーが参照先テーブルに対するテーブルレベルの読み取り権限を持っている必要があります。
    図 : 1. オートコンプリート
    ユーザーが「joe」と入力すると、オートコンプリートによってフィールドに「Joe Employee」が提案されます。

    参照フィールドのオートコンプリートのための辞書属性

    参照フィールドに固有で、オートコンプリートの動作を決定する辞書属性があります。

    表 : 1. 参照フィールドのオートコンプリート辞書属性
    属性 説明
    ref_auto_completer オートコンプリートの選択肢のドロップダウンリストを作成する JavaScript クラス (クライアント側) の名前を指定します。有効なクラス値は次のとおりです。
    • AJAXReferenceCompleter:一致するオートコンプリートの選択肢をドロップダウン選択リストとして表示します。このリストには、参照テーブルの表示値列のみが表示されます。他のオートコンプリートのクラスが指定されていない場合、参照フィールドはこのクラスを自動的に使用します。
    • AJAXTableCompleter:一致するオートコンプリートの選択肢をテーブルの行として表示します。このテーブルには、参照テーブルの表示値列と ref_ac_columns 属性にリストされている列が表示されます。
    • AJAXReferenceChoice:一致するオートコンプリートの選択肢をドロップダウン選択リストとして表示します。このリストには、参照テーブルの表示値列のみが表示されます。さらに、このリストには一致する選択肢が最大 25 個しか表示されません。オートコンプリートの選択肢が 25 を超える場合、参照フィールドは代わりに AJAXTableCompleter クラスの選択肢を表示します。
    ref_ac_columns 表示する参照テーブル列のリストを指定します。列名はセミコロンで区切ります。たとえば、ref_ac_columns=user_name;email;sys_created_on では、オートコンプリートで、user_name、email、および sys_created_on 列のテキストと一致させることができます。
    ref_ac_order_by オートコンプリートの選択肢をソートする参照テーブル列を指定します。たとえば、ref_ac_order_by=name では、名前別にオートコンプリートの選択肢をアルファベット順にソートします。

    オートコンプリート UI 機能

    AJAX テーブルコンプリータークラスでは、UI がいくつか改善されています。

    • テーブルコンプリーターには、オートコンプリートクエリで見つかったレコードの数が常に表示されます。
    • テーブルコンプリーターは、背景とテキストの色を変更することで、選択した行全体をハイライト表示します。
    • テーブルコンプリーターは、すべての列の値をリストします。
      • 値が最初に列に表示されるとき、テーブルコンプリーターはその値を黒のテキストで表示します。
      • テーブルコンプリーターは、後続の重複する値をグレーのテキストで表示します。以前は、テーブルコンプリーターは重複する値を含む列に空のセルを表示していました。
    図 : 2. 選択した行のハイライト

    これらの改善点を使用するには、ref_auto_completer=AJAXTableCompleter 辞書属性を設定します。

    テーブルへのすべての参照のオートコンプリート属性を定義する

    フィールドが同じ属性の独自の値を持っていない限り、フィールドは参照テーブルのオートコンプリート属性を継承して使用します。テーブルへの参照の属性を定義できます。これは、そのテーブルを参照するすべてのフォームに影響します。

    始める前に

    必要なロール:personalize_dictionary

    このタスクについて

    フィールドレベルの属性は、同じ名前のテーブルレベルの属性を上書きします。フィールドが参照テーブルに定義されているものとは異なる参照属性を使用する場合、フィールドは両方の属性のセットを使用します。

    次の手順を使用して、独自のオートコンプリート属性をまだ持っていない、テーブル内のすべてのフィールドのオートコンプリート属性を定義します。この例では、ユーザー [sys_user] テーブルへのすべての参照のオートコンプリート属性を定義する方法について説明します。
    注:
    フィールドのオートコンプリート属性値は、テーブルのオートコンプリート属性値よりも優先されます。これは、オートコンプリート属性の既存のフィールドレベルの値が、アドミニストレーターが参照テーブルからオートコンプリート属性に適用する値よりも優先されることを意味します。

    手順

    1. 次のようなターゲットテーブルのリストに移動します。 すべて > ユーザー管理 > ユーザー.
    2. リストのバージョンに合わせて適切なアクションを実行します。
      バージョンアクション
      リスト v2 列ヘッダーを右クリックし、 構成 > ディクショナリ.
      リスト v3 リストタイトルメニューを開き、[設定][辞書] の順にクリックします。
    3. 列名が表示されていない行を選択します。
      この行は通常、リストの最初の行です。たとえば、最初の sys_user リンクを選択します。
    4. [関連リンク][詳細ビュー] をクリックします。
    5. [属性] フィールドに、テーブル内のすべてのフィールドに適用するオートコンプリート属性のカンマ区切りリストを入力します。
      たとえば、sys_user テーブルへのすべての参照を含むユーザーの部門を表示するには、次のように入力します。
      ref_auto_completer=AJAXTableCompleter,ref_ac_columns=department,ref_ac_order_by=department
    6. [更新] をクリックします。

    次のタスク

    新しいオートコンプリート属性をテストするには、オープンインシデントなど、ユーザー [sys_user] テーブルを参照するフォームを開きます。[アサイン先] フィールドに 1 つの文字を入力します。オートコンプリートオプションに、ユーザー名と部門の両方が含まれるようになりました。
    オートコンプリートリスト

    表示値列を削除する

    ref_ac_display_value 属性を false に設定することで、参照フィールドから表示値列を削除できます。

    始める前に

    必要なロール:personalize_dictionary

    このタスクについて

    これにより、参照フィールドの表示値列が削除され、ref_ac_columns 属性にリストされている列のみが表示されます。この機能を使用するには、 AJAXTableCompleter クラスと ref_ac_columnsref_ac_columns_search、および ref_ac_display_value 属性を使用する必要があります。
    注:
    参照フィールドが ui_reference UI マクロの結果である場合、オートコンプリートを追加の列のテキストと一致させることができません。つまり、ユーザーの代理操作リストなどのセレクターに対するオートコンプリートアクションでは、テキストのみを表示値と一致させることができます。

    この例では、ユーザー [sys_user] テーブルへの参照から表示値列を削除し、first_name 列と last_name 列への参照に置き換える方法について説明します。

    手順

    1. 次のようなターゲットテーブルのリストに移動します。 すべて > ユーザー管理 > ユーザー.
    2. リストのバージョンに合わせて適切なアクションを実行します。
      バージョンアクション
      リスト v2 列ヘッダーを右クリックし、 構成 > ディクショナリ.
      リスト v3 リストタイトルメニューを開き、[設定][辞書] の順にクリックします。
    3. 列名が表示されていない行を選択します。
      この行は通常、リストの最初の行です。たとえば、最初の sys_user リンクを選択します。
    4. [関連リンク][詳細ビュー] をクリックします。
    5. [属性] フィールドに、ref_auto_completerref_ac_columnsref_ac_columns_search 、および ref_ac_display_value 属性を追加します。
      たとえば、表示値列を非表示にしてユーザーの姓と名のみを表示するには、次のように入力します。
      ref_auto_completer=AJAXTableCompleter,ref_ac_columns=first_name;last_name,ref_ac_columns_search=true,ref_ac_display_value=false
    6. [更新] をクリックします。

    次のタスク

    新しいオートコンプリート属性をテストするには、オープンインシデントなど、ユーザー [sys_user] テーブルを参照するフォームを開きます。[アサイン先] フィールドに 1 つの文字を入力します。オートコンプリートオプションにより、表示値列 (user_name) が非表示になり、first_name 列と last_name 列のみが表示されるようになりました。

    表示値なしのオートコンプリート

    オートコンプリートのクエリの改善

    デフォルトでは、すべての参照フィールドは、[次で始まる] クエリを使用して、参照テーブル内の一致するテキストを検索します。これにより、ユーザーが参照フィールドを検索するたびにオートコンプリートが非効率的な [次の値を含む] クエリを実行することを防ぎます。すべての参照フィールドに [次で始まる] クエリを使用するように要求できます。

    始める前に

    必要なロール:admin

    このタスクについて

    次の例は、[次の値を含む] クエリを示しています。文字「d」は、ユーザーの姓または名のどの場所に表示されてもかまわないことに注意してください。
    オートコンプリートの [次の値を含む] クエリ

    この手順では、常に starts with クエリを使用するように glide.ui.ref_ac.startswith システムプロパティを変更する方法について説明します。

    手順

    1. ナビゲーションフィルターで、「sys_properties.list」と入力し、Enter キーを押します。
    2. glide.ui.ref_ac.startswith プロパティを選択します。
      プロパティを検索するには、[名前] 列の [Go to] 検索フィルターに「* startswith」と入力します。
    3. [値] フィールドで、falsetrue に置き換えます。
      注:
      glide.ui.ref_ac.startswith システムプロパティを true に設定すると、ユーザーレベルとシステムレベルの両方の設定で既存の autocomplete.contains 設定が上書きされます。このプロパティは、初期設定に関係なく、すべてのユーザーのオートコンプリートクエリメソッドを変更します。
    4. [更新] をクリックします。
    5. 次の例に示すように、参照フィールドのあるレコードを開き、そこに文字を入力して、変更をテストします。
      オートコンプリートの [次で始まる] クエリ

    任意の参照フィールドのテキストと一致するようにオートコンプリートを構成する

    デフォルトでは、オートコンプリートは表示値列のテキストにのみ一致します。参照フィールドが表示する追加の列のテキストと一致するように参照フィールドを構成できます。

    始める前に

    必要なロール:personalize_dictionary

    このタスクについて

    ref_ac_columns_search 属性を追加して、ref_ac_columns 属性に一覧表示されている任意の列のテキストと一致するオートコンプリートを有効にすることができます。ref_ac_columns_search 属性を true に設定して、すべての参照フィールド列のテキストと一致させます。デフォルトでは (またはこの属性が false の場合)、オートコンプリートは表示値列のテキストにのみ一致します。

    手順

    1. 参照フィールドのラベルを右クリックします。
    2. 選択リストから [ディクショナリを構成] を選択します。
    3. [関連リンク][詳細ビュー] をクリックします。
    4. [属性] フィールドに、目的のオートコンプリート属性を追加します。
      たとえば、次の属性は、発信者リストに部門フィールドを追加し、発信者を部門別にソートします。
      ref_auto_completer=AJAXTableCompleter,ref_ac_columns=department,ref_ac_order_by=department,ref_ac_columns_search=true 
      図 : 3. オートコンプリート属性
      名前と部門を含む発信者リスト
    5. [更新] をクリックします。

    次の例では、構成アイテム [cmdb_ci] テーブルのオートコンプリート選択肢からの CI クラス名を [構成アイテム] フィールドに表示するように設定する方法について説明します。
    ref_auto_completer=AJAXTableCompleter ,ref_ac_columns =sys_class_name ,ref_ac_order_by =sys_class_name ,ref_contributions =task_show_ci_map ;ci_show_incidents
    注:
    ref_contributions 属性は、参照フィールドの横に表示されるアイコンをコントロールします。

    追加の CI 属性

    [次の値を含む] オートコンプリート検索を有効にする

    デフォルトでは、参照のオートコンプリートは [次で始まる] 検索を使用します。ユーザー設定を作成して、[次の値を含む] 検索を実装できます。

    始める前に

    必要なロール:admin

    手順

    1. glide.ui.ref_ac.startswith システムプロパティを無効にします。
      詳細については、「オートコンプリートのクエリの改善」を参照してください。
      注:
      glide.ui.ref_ac.startswith システムプロパティを true に設定すると、ユーザーレベルとシステムレベルの両方の設定で既存の「オートコンプリートの [次の値を含む]」設定が上書きされます。このプロパティは、初期設定に関係なく、すべてのユーザーのオートコンプリートクエリメソッドを変更します。
    2. 移動先 ユーザー管理 > ユーザー設定.
    3. 初期設定 "'<referenced table>.autocomplete.contains"' を選択します。
    4. [値] フィールドを true に設定します。
      オートコンプリートユーザー設定を true に設定
    5. [更新] をクリックします。

    次のタスク

    ログアウトしてから再度ログインすると、更新された検索が表示されます。

    参照オートコンプリートのワイルドカード

    ワイルドカード検索では、オートコンプリート機能が使用されます。

    参照フィールドではワイルドカード検索にアスタリスクを使用します。

    図 : 4. 1 つのアスタリスクによるワイルドカード検索

    アスタリスクが 2 つ入力されている場合、利用可能なレコードリストがオートコンプリート提案に表示されます。

    図 : 5. 2 つのアスタリスクによるワイルドカード検索