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

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

    始める前に

    必要なロール:admin

    手順

    1. 新しいスクリプトインクルードを作成します。
      1. 次のように移動する。 All (すべて) > システム定義 > スクリプトインクルード.
      2. [New] をクリックします。
      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;
    }