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

  • リリースバージョン: Xanadu
  • 更新日 2024年08月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;
    }