参照修飾子
参照修飾子を使用して、参照フィールドに返されるデータをフィルタリングします。
参照フィールドには、別のテーブルのフィールドへのリンク (参照) が格納され、参照フィールドを含むフォームで参照テーブルのレコード/フィールドを使用できるようになります。
たとえば、インシデントテーブルの [アサイン先] フィールドは、ユーザー [sys_user] テーブルへの参照です。デフォルトでは、参照されているフィールドのすべての値が、参照ルックアップに表示され、参照フィールドから直接アクセスできます (先行入力)。前の例を拡張して、参照修飾子が定義されていない場合、ユーザーテーブルのすべてのユーザーが参照ルックアップに表示されます。非アクティブなユーザーを含みます。場合によっては、これが必要な機能になることもあります。ただし、利用可能な値のサブセットのみが必要な場合もあります。この場合、参照修飾子を作成して使用可能なデータをフィルタリングし、必要な値のみが返されてフォームで使用できるようにします。アクティブユーザーまたは特定のロールを持つユーザーのみなどです。参照修飾子は堅牢であり、単純な AND/OR 条件、インライン JavaScript、または複雑なスクリプトインクルードで構成できます。
参照修飾子は、次のいずれかの方法で定義できます。
簡易参照修飾子
簡易参照修飾子では、AND/OR ステートメント (条件) を使用して単純なフィルターを作成します。会社がアクティブか、ユーザーが特定のロールを持っているか、または発信者が特定のタイムゾーンにいるかなどの条件でフィルタリングする場合は、簡易参照修飾子を使用します。簡易参照修飾子には、最大 13 の参照修飾子条件を設定できます。条件ビルダーの使用方法の詳細については、「Condition builder」を参照してください。
動的参照修飾子
動的参照修飾子を使用すると、動的フィルターの作成オプションを使用して参照フィールドに対してクエリを実行し、返されたデータセットをフィルタリングできます。動的フィルターオプションは、エンコードされたクエリ文字列、JavaScript、またはスクリプトインクルードを含むことができる保存されたフィルターであり、複数の動的参照修飾子で使用できます。動的フィルターオプションに加えられた変更は、同じ動的フィルターオプションを使用するすべての参照修飾子に自動的に適用されます。複数のフォームで同じフィルターを使用する場合、または「コードに精通していない」実装者にフィルター機能を提供する場合に、このタイプの参照修飾子を使用します。
ベースインスタンスは、いくつかの OOB 動的フィルターオプションを提供します。ニーズを満たす動的フィルターオプションが存在しない場合は、要件に固有の新しい動的フィルターオプションを作成できます。OOB 動的フィルターオプションの例として、コンピューターフォームなどの構成アイテムフォームの [モデル ID] フィールドの参照修飾子があります。参照修飾子は、CI モデル修飾子動的フィルターオプションを呼び出します。これにより、ModelAndCategoryFilters スクリプトインクルードが呼び出されます。このスクリプトインクルードは、CI のクラスに基づいてデータセットをフィルタリングします。モデル ID のオプションは、現在の CI と同じクラスに属するオプションのみです。たとえば、コンピューターフォームの [モデル ID] フィールドで使用できるのは、Computer クラスに属する CI のみです。
詳細参照修飾子
vendor = true があります。この文字列の入力は、簡易参照修飾子の例に示されている条件ビルダーの使用と同じです。有効なエンコードされたクエリ文字列の構文の詳細と例については、「エンコードされたクエリ文字列」を参照してください。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]」の記事を参照してください
。関連リストと参照修飾子
// 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 構文の使用
current は、アクティブな (現在の) レコードのフィールドとフィールド値を含む JavaScript オブジェクトです。フォームの場合、これはフォームに表示される (ロードされる) レコードです。詳細および動的参照修飾子内では、JavaScript current オブジェクトを使用して、javascript:"company=" + current.company などのフィルターを定義できます。
この JavaScript は、参照修飾子内で、現在のレコードの会社フィールド値と等しい参照テーブルからのレコードのみを返します。したがって、[会社] フィールドに表示される値が Acme の場合、JavaScript は、company 値が Acme に等しい (company = "Acme") すべての参照フィールドレコードを返します。その後、company 値が「ViewRite」であるレコードを起動すると、JavaScript は company = "ViewRite" に解決されます。
現在ロードされているフォーム (テーブル) 内のすべてのフィールドは、 current オブジェクトで使用できます。ドット連結を使用して、参照テーブルを含むテーブルの値にアクセスします。たとえば、インシデントフォームでは、[アサイン先] フィールドは、ユーザーテーブルを参照します。ユーザーのメールアドレスにアクセスするには、次の構文を使用します:javascript:"emailAddress=" + current.assigned_to.email。