---
sourceDocument: Xanadu Now Platform の管理
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ja-JP/xanadu/platform-administration

 Release :

    - xanadu

ft:locale :

    - ja-JP

ft:publication_title :

    - Xanadu Now Platform の管理

ft:clusterId :

    - platadm

bundleId :

    - platadm

workflow :

    - Platform


---

# 参照修飾子

# 参照修飾子 {#ariaid-title1}

* リリースバージョン: Xanadu
* 
* 更新日 2024年08月01日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：8分

参照修飾子を使用して、参照フィールドに返されるデータをフィルタリングします。

[参照フィールド](https://servicenow-prod.fluidtopics.net/75fx4z88pOllEM7FCdqXIg "参照フィールドには、別のテーブルのフィールドへの参照が格納されます。たとえば、インシデントテーブルの [発信者] フィールドは、ユーザー [sys_user] テーブルへの参照です。")には、別のテーブルのフィールドへのリンク (参照) が格納され、参照フィールドを含むフォームで参照テーブルのレコード/フィールドを使用できるようになります。

たとえば、インシデントテーブルの \[アサイン先\] フィールドは、ユーザー \[sys_user\] テーブルへの参照です。デフォルトでは、参照されているフィールドのすべての値が、[参照ルックアップ](https://servicenow-prod.fluidtopics.net/U19i7vDn~6Z5FCsEYQcWCw "フォームでは、参照ルックアップアイコン ( コア UI 参照ルックアップアイコン ) が編集可能な参照フィールドによって表示されます。参照ルックアップアイコンをクリックすると、参照テーブルのレコードリストが表示されます。")に表示され、参照フィールドから直接アクセスできます (先行入力)。前の例を拡張して、参照修飾子が定義されていない場合、ユーザーテーブルのすべてのユーザーが参照ルックアップに表示されます。非アクティブなユーザーを含みます。場合によっては、これが必要な機能になることもあります。ただし、利用可能な値のサブセットのみが必要な場合もあります。この場合、参照修飾子を作成して使用可能なデータをフィルタリングし、必要な値のみが返されてフォームで使用できるようにします。アクティブユーザーまたは特定のロールを持つユーザーのみなどです。参照修飾子は堅牢であり、単純な AND/OR 条件、インライン JavaScript、または複雑な[スクリプトインクルード](https://www.servicenow.com/docs/access?context=c_ScriptIncludes&version=xanadu&pubname=xanadu-application-development&ft:locale=en-US)で構成できます。  
[\[辞書エントリ\]](6T3L5t_L8bdH_mtMd3LMpQ "インスタンス内のテーブル、列、およびフィールドラベルに関連する詳細にアクセスします。")フォームから参照修飾子を定義することにより、テーブルおよびそのテーブルを基にしているテーブル (親または拡張) の参照修飾子を変更できます。また、 [辞書オーバーライド](https://servicenow-prod.fluidtopics.net/mY2I22dbssPAVaQ~f3RRpw "辞書オーバーライドにより、親テーブルのフィールドとは異なる方法で拡張テーブルのフィールドを定義できるようになります。")を使用して、拡張テーブルとその子 (親テーブルではない) のみの参照修飾子を変更することもできます。定義できる参照修飾子は、フィールドごと、フォーム/テーブルごとに 1 つだけです。参照修飾子は条件ビルダーには適用されません。条件ビルダーでのフィルタリングの使用方法については、「[動的フィルターオプションを作成する](https://www.servicenow.com/docs/access?context=t_DynamicFilterOptions&version=xanadu&pubname=xanadu-platform-user-interface&ft:locale=en-US)」を参照してください。  
注:  
* 参照修飾子を作成するには、基礎となる ServiceNow [データモデル](https://servicenow-prod.fluidtopics.net/g7TaW_~m5P5Xr4xaQm1DTQ "テーブルとは、データベース内のレコードのコレクションです。各レコードはテーブルの行に対応し、レコードの各フィールドはそのテーブルの列に対応します。") (テーブルとフィールド) の知識と、[Web サービス](https://www.servicenow.com/docs/access?context=r_AvailableWebServices&version=xanadu&pubname=xanadu-api-reference&ft:locale=en-US)と[スクリプト](https://www.servicenow.com/docs/access?context=c_Script&version=xanadu&pubname=xanadu-application-development&ft:locale=en-US)の知識が必要です。
* 特定のユーザーがアクセスできるデータを制限するには、参照修飾子ではなく ACL を使用します。
{#c_ReferenceQualifiers__ul_d1r_2t5_31c}

参照修飾子は、次のいずれかの方法で定義できます。

## 簡易参照修飾子 {#c_ReferenceQualifiers__section_jys_1ld_yz}

簡易参照修飾子では、AND/OR ステートメント (条件) を使用して単純なフィルターを作成します。会社がアクティブか、ユーザーが特定のロールを持っているか、または発信者が特定のタイムゾーンにいるかなどの条件でフィルタリングする場合は、簡易参照修飾子を使用します。簡易参照修飾子には、最大 13 の参照修飾子条件を設定できます。条件ビルダーの使用方法の詳細については、「[Condition builder](https://www.servicenow.com/docs/access?context=c_ConditionBuilder&version=xanadu&pubname=xanadu-platform-user-interface&ft:locale=en-US)」を参照してください。  
図 : 1. 簡易参照修飾子の例

## 動的参照修飾子 {#c_ReferenceQualifiers__section_m5c_2ld_yz}

動的参照修飾子を使用すると、[動的フィルターの作成オプション](https://www.servicenow.com/docs/access?context=t_DynamicFilterOptions&version=xanadu&pubname=xanadu-platform-user-interface&ft:locale=en-US)を使用して参照フィールドに対してクエリを実行し、返されたデータセットをフィルタリングできます。動的フィルターオプションは、[エンコードされたクエリ文字列](https://www.servicenow.com/docs/access?context=c_EncodedQueryStrings&version=xanadu&pubname=xanadu-platform-user-interface&ft:locale=en-US)、JavaScript、またはスクリプトインクルードを含むことができる保存されたフィルターであり、複数の動的参照修飾子で使用できます。動的フィルターオプションに加えられた変更は、同じ動的フィルターオプションを使用するすべての参照修飾子に自動的に適用されます。複数のフォームで同じフィルターを使用する場合、または「コードに精通していない」実装者にフィルター機能を提供する場合に、このタイプの参照修飾子を使用します。

ベースインスタンスは、いくつかの OOB 動的フィルターオプションを提供します。ニーズを満たす動的フィルターオプションが存在しない場合は、要件に固有の新しい動的フィルターオプションを作成できます。OOB 動的フィルターオプションの例として、コンピューターフォームなどの構成アイテムフォームの \[モデル ID\] フィールドの参照修飾子があります。参照修飾子は、CI モデル修飾子動的フィルターオプションを呼び出します。これにより、ModelAndCategoryFilters スクリプトインクルードが呼び出されます。このスクリプトインクルードは、CI のクラスに基づいてデータセットをフィルタリングします。モデル ID のオプションは、現在の CI と同じクラスに属するオプションのみです。たとえば、コンピューターフォームの \[モデル ID\] フィールドで使用できるのは、Computer クラスに属する CI のみです。  
使用可能な動的フィルターオプションを見つけるには、\[システム定義\] → \[動的フィルターオプション\] に移動します。\[動的フィルターオプション\] リストの右隅にあるフィルターアイコンをクリックし、「<kbd class="ph userinput">参照資格が true の場合に利用可能</kbd>」というフィルダー条件を作成します。動的参照修飾子で使用できるすべての動的フィルターオプションが表示されます。図 : 2. 動的参照修飾子の例

## 詳細参照修飾子 {#c_ReferenceQualifiers__section_vvc_gmd_yz}

詳細参照修飾子を使用すると、参照修飾子の \[参照修飾子\] フィールドで、インラインエンコードクエリ文字列または JavaScript (実際のコード、または既存のスクリプトインクルードやビジネスルールの名前) フィルターを直接定義できます。他の参照修飾子タイプと同様に、フォームがロードされるときにフィルターが実行され、フィルターに一致するレコードのみが参照フィールドに表示されます。このタイプの参照修飾子は、簡易参照修飾子では処理できず、複数の参照フィールドで使用されない、単純な一意のフィルターのみを必要とする実装に使用します。  
注:  
グローバルビジネスルールの代わりにスクリプトインクルードで JavaScript で関数を呼び出すことをお勧めします。  
エンコードされたクエリ文字列の例として、ベンダーとして指定されたすべての会社を返す `vendor = true` があります。この文字列の入力は、簡易参照修飾子の例に示されている条件ビルダーの使用と同じです。有効なエンコードされたクエリ文字列の構文の詳細と例については、「[エンコードされたクエリ文字列](https://www.servicenow.com/docs/access?context=c_EncodedQueryStrings&version=xanadu&pubname=xanadu-platform-user-interface&ft:locale=en-US)」を参照してください。図 : 3. 詳細参照修飾子の例  
JavaScript 呼び出しの例は `javascript:new myScriptInclude().my_refqual()` です。このコードは、スクリプトインクルード myScriptInclude() で関数 my_refqual() を呼び出します。この関数は、参照フィールドで使用可能なオプションをフィルタリングできるクエリ文字列を返す必要があります。  
注:  
`javascript:'u_active=true^' + "u_hr_service="+current.hr_service` のようなエンコードされた JavaScript フィルターを参照修飾子で使用することもできます。  
別の例で、現在の会社に基づいてフィルタリングしようとしている場合、ルックアップスクリプトを使用する必要はなく、動的修飾子に次の行を追加するだけで済みます。

    return "company=" + current.company;

これを簡略化して、動的なものの代わりに詳細参照修飾子を使用することもできます。

    javascript:"company=" + current.company

特定グループのユーザーのみを表示するように参照フィールドを構成するその他の例については、Now Support ナレッジベースの「[How to select only users of a specific group into a reference field (特定のグループのユーザーのみを参照フィールドに選択する方法) \[KB0831564\]](https://support.servicenow.com/kb_view.do?sysparm_article=KB0831564)」の記事を参照してください
。

## 関連リストと参照修飾子 {#c_ReferenceQualifiers__section_azm_yyc_k1b}

フィールドが単一のフォームビューの複数の[関連リスト](https://www.servicenow.com/docs/access?context=c_RelatedLists&version=xanadu&pubname=xanadu-platform-user-interface&ft:locale=en-US)に表示される場合、フィールドの参照修飾子を適切にビルドするために、どの関連リストが参照されているかを検証する必要がある場合があります。この状況では、関連リストの[リストコントロールを構成し](https://servicenow-prod.fluidtopics.net/MWBzfsez1GVeCQ6fv_Wxlg#t_ConfigureListControls "ボタンやフィルターなどのリストコントロールを設定できます。")、\[リスト編集タグ\] フィールドに一意のタグを入力します。このタグ値は、<var class="keyword varname">listEditRefQualTag</var> という名前の変数としてスクリプトをフィルタリングするために使用できます。次のスクリプトインクルードコードは、このタイプのタグを使用する関数の例です。

    // Advanced reference qualifier on the CI Relationship Child field that takes into account
    // the related list that we are editing the child field on, if the field is being edited
    // from a tagged related list. 
     
     cmdb_rel_ci_child_refQual:function(){ 
     
      if(listEditRefQualTag =="application") return "sys_class_name = cmdb_ci_appl";
     
      if(listEditRefQualTag =="database") return "sys_class_name = cmdb_ci_database"
     
      }

## 参照修飾子での Javascript の current 構文の使用 {#c_ReferenceQualifiers__section_sbh_l3x_xdb}

`current` は、アクティブな (現在の) レコードのフィールドとフィールド値を含む JavaScript オブジェクトです。フォームの場合、これはフォームに表示される (ロードされる) レコードです。詳細および動的参照修飾子内では、JavaScript `current` オブジェクトを使用して、`javascript:"company=" + current.company` などのフィルターを定義できます。

この JavaScript は、参照修飾子内で、現在のレコードの会社フィールド値と等しい参照テーブルからのレコードのみを返します。したがって、\[会社\] フィールドに表示される値が Acme の場合、JavaScript は、company 値が Acme に等しい (company = "Acme") すべての参照フィールドレコードを返します。その後、company 値が「ViewRite」であるレコードを起動すると、JavaScript は company = "ViewRite" に解決されます。

現在ロードされているフォーム (テーブル) 内のすべてのフィールドは、 `current` オブジェクトで使用できます。[ドット連結](https://www.servicenow.com/docs/access?context=c_DotWalking&version=xanadu&pubname=xanadu-platform-user-interface&ft:locale=en-US)を使用して、参照テーブルを含むテーブルの値にアクセスします。たとえば、インシデントフォームでは、\[アサイン先\] フィールドは、ユーザーテーブルを参照します。ユーザーのメールアドレスにアクセスするには、次の構文を使用します：`javascript:"emailAddress=" + current.assigned_to.email`。
* **[参照修飾子を構成する](https://servicenow-prod.fluidtopics.net/_8V0Vs~9IyqMOd6YdrPpTA)**   
  システムアドミニストレーターは、関連する参照フィールドのフィルタリングを有効にする参照修飾子を構成できます。
* **[参照修飾子の INSTANCEOF 演算子](https://servicenow-prod.fluidtopics.net/iOcbAwiPDNtKG5k39v2y5Q)**   
  参照修飾子で INSTANCEOF 演算子を使用すると、複合クラス修飾子を短縮または簡略化できます。

**関連情報**   

* [動的フィルターオプションを作成する](https://www.servicenow.com/docs/access?context=t_DynamicFilterOptions&version=xanadu&pubname=xanadu-platform-user-interface&ft:locale=en-US)
* [スクリプト化されたフィルターを作成する](https://www.servicenow.com/docs/access?context=t_ScriptedFilters&version=xanadu&pubname=xanadu-platform-user-interface&ft:locale=en-US)
* [CMDB 分類](https://www.servicenow.com/docs/access?context=c_CMDBClassifications&version=xanadu&pubname=xanadu-servicenow-platform&ft:locale=en-US)

