DashboardMessageHandler

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む5読むのに数分
  • インタラクティブ フィルターのカスタム フィルター ロジックを定義するメソッドを提供します。

    インタラクティブ フィルターの詳細については、「 レポートインタラクティブ フィルター」を参照してください。

    DashboardMessageHandler - DashboardMessageHandler(文字列 id)

    特定の一意の ID を使用して、DashboardMessageHandler オブジェクトのインスタンスを作成します。

    表 : 1. パラメーター
    名前 タイプ 説明
    ID 文字列 フィルターの一意の ID。レポートウィジェットでこの ID を使用して、どのフィルターがどのフィルターに適用されたのかを追跡できます。ID はすべてのダッシュボードで一意である必要はありませんが、各ダッシュボードで同じ ID を持つ複数のフィルターを使用することはできません。
    var my_dashboardMessageHandler = new DashboardMessageHandler("my_unique_id");

    DashboardMessageHandler - publishFilter(文字列 table, 文字列 encodedQuery)

    DashboardMessageHandler オブジェクトは、それぞれ 1 つずつフィルターを公開できます。

    同じオブジェクトから新しいフィルターを公開すると、元のフィルターが上書きされます。複数のフィルターを公開するには、複数の DashboardMessageHandler オブジェクトを使用します。

    表 : 2. パラメータ
    名前 タイプ 説明
    テーブル 文字列 フィルターを適用するテーブル (タスクなど)。
    encodedQuery 文字列 公開するフィルターを指定するエンコードされたクエリー。
    表 : 3. 返される内容
    タイプ 説明
    なし
    var my_dashboardMessageHandler = new DashboardMessageHandler("my_unique_id");
    <input id="onlyMine" type="button" value="Only mine"    onclick="my_dashboardMessageHandler.publishFilter('task','caller_idDYNAMIC90d1921e5f510100a9ad2572f2b477fe');"/>

    DashboardMessageHandler - publishMessage(アレイ filters)

    カスタムのインタラクティブフィルターを複数のテーブルに適用します。

    表 : 4. パラメーター
    名前 タイプ 説明
    フィルター アレイ フィルターを適用するテーブルとフィルター基準を定義するフィルターオブジェクトのアレイ。
    [
      {
        "table": String,
        "filter": String 
      }
    ]
    filters.table 文字列 フィルタリングするテーブルの名前。
    filters.filter 文字列 テーブルに適用するフィルター基準を含むエンコードされたクエリ。
    表 : 5. 返される内容
    タイプ 説明
    なし

    この jelly スクリプトは、インシデントテーブルと問題テーブルをフィルタリングして、アサイン先グループが [Problem solving (問題解決)] であるレコードを返します。

    <?xml version="1.0" encoding="utf-8" ?>
    <j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
    <script>
    var my_dashboardMessageHandler = new DashboardMessageHandler("my_unique_id");
    
    function publishMultipleFilter() {
       // Multiple filters can be passed as an array
       var finalFilter = [{"table":"incident","filter":"assignment_group=6fcd3b573b331300ad3cc9bb34efc447"}, {"table":"problem","filter":"assignment_group=6fcd3b573b331300ad3cc9bb34efc447"}];
    
       // Call setDefaultValue first so the filter works with lazy loading
       SNC.canvas.interactiveFilters.setDefaultValue({id: my_dashboardMessageHandler.my_unique_id, filters: finalFilter}, false);
    
       // Then call publishMessage to publish filters
       my_dashboardMessageHandler.publishMessage(finalFilter);
    }
    
    function clearFilter() {
       SNC.canvas.interactiveFilters.removeDefaultValue(my_dashboardMessageHandler.my_unique_id, false);
       my_dashboardMessageHandler.removeFilter();
    }
    </script>
    
    Example filter on the Incident and Problem tables where assignment group is Problem solving <br/>
    <input id="allTasks" type="button" value="All" onclick="clearFilter();" />
    <input id="onlyMine" type="button" value="Assignment group is [Problem solving]" onclick="publishMultipleFilter();" />
    
    </j:jelly>

    DashboardMessageHandler - removeFilter()

    この DashboardMessageHandler オブジェクトによって公開されている現在のフィルターを、ダッシュボード上のすべてのレポートから削除します。

    表 : 6. パラメーター
    名前 タイプ 説明
    なし
    表 : 7. 返される内容
    タイプ 説明
    なし
    var my_dashboardMessageHandler = new DashboardMessageHandler("my_unique_id");
    <input id="removeFilter" type="button" value="Remove filter"    onclick="my_dashboardMessageHandler.removeFilter();"/>