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

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む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  = [ ];
        gr  = new GlideRecord ( 'u_intensive_care' );
        now_GR. query ( ); 
        while (now_GR. next ( ) ) {
            arrUsers. push (now_GR. u_customer. toString ( ) ); 
        }
        return arrUsers;
    }