スクリプト化されたフィルターを作成する

  • リリースバージョン: Australia
  • 更新日 2026年03月12日
  • 所要時間:2分
  • 条件ビルダーだけでは、関連のないテーブルに依存するレコードセットを表示するなど、一部のフィルターを作成することはできません。JavaScript を理解している場合は、詳細フィルターで使用する JavaScript 関数を作成できます。

    始める前に

    必要なロール:admin

    手順

    1. 新しいスクリプトインクルードを作成します。
      1. 移動先 すべて > システム定義 > スクリプトインクルード.
      2. [新規] をクリックします。
      3. フォームに入力し、[ 送信] を選択します。
    2. スクリプトインクルードを開き、[ スクリプト] フィールドで、 sys_idsの配列を返す JavaScript 関数を作成します。
      • 関数がスクリプトインクルードと同じ名前を使用していることを確認します。
      • スクリプトインクルードが アクティブ、クライアント呼び出し可能であることを確認します。
    3. 条件ビルダーから JavaScript 関数を呼び出します。
      詳細については、「GlideRecord クエリ」および「スクリプトインクルード」を参照してください。
      注:
      フィルターにスクリプトインクルードがあるグループ化されたリストは、速度が低下する原因となる可能性があります。

    ある会社が顧客グループに集中治療を提供しています。これらのサービスを追跡するには、サービスマネージャーには、高レベルのジャーナルと、顧客が発生したすべてのインシデントへのリンクが必要です。

    会社は、アプリケーション Intensive Care とテーブル [u_intensive_care] を作成します。テーブルには顧客名の参照フィールドが含まれていますが、ユーザーテーブルへの直接リンクはありません。したがって、マネージャーは、集中治療中の顧客の条件ビルダーを使用してインシデントリストフィルターを設定することはできません。

    解決策は、以下のサンプルコードに示すように、GlideRecord クエリを使用して [u_intensive_care] テーブルにユーザー sys_idsの配列をビルドする JavaScript 関数を記述することです。インシデントテーブルの条件ビルダーから関数を呼び出します ([Caller] [is] [javascript:myFunction()])。
    function myFunction(){ 
        var arrUsers = [];
        var gr = new GlideRecord('u_intensive_care');
        gr.query(); 
        while(gr.next()){
            arrUsers.push(gr.u_customer.toString()); 
        }
        return arrUsers;
    }