DashboardMessageHandler
インタラクティブ フィルターのカスタム フィルター ロジックを定義するメソッドを提供します。
インタラクティブ フィルターの詳細については、「 レポート と インタラクティブ フィルター」を参照してください。
DashboardMessageHandler - DashboardMessageHandler(文字列 id)
特定の一意の ID を使用して、DashboardMessageHandler オブジェクトのインスタンスを作成します。
| 名前 | タイプ | 説明 |
|---|---|---|
| ID | 文字列 | フィルターの一意の ID。レポートウィジェットでこの ID を使用して、どのフィルターがどのフィルターに適用されたのかを追跡できます。ID はすべてのダッシュボードで一意である必要はありませんが、各ダッシュボードで同じ ID を持つ複数のフィルターを使用することはできません。 |
var my_dashboardMessageHandler = new DashboardMessageHandler("my_unique_id");
DashboardMessageHandler - publishFilter(文字列 table, 文字列 encodedQuery)
DashboardMessageHandler オブジェクトは、それぞれ 1 つずつフィルターを公開できます。
同じオブジェクトから新しいフィルターを公開すると、元のフィルターが上書きされます。複数のフィルターを公開するには、複数の DashboardMessageHandler オブジェクトを使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| テーブル | 文字列 | フィルターを適用するテーブル (タスクなど)。 |
| encodedQuery | 文字列 | 公開するフィルターを指定するエンコードされたクエリー。 |
| タイプ | 説明 |
|---|---|
| なし |
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)
カスタムのインタラクティブフィルターを複数のテーブルに適用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| フィルター | アレイ | フィルターを適用するテーブルとフィルター基準を定義するフィルターオブジェクトのアレイ。 |
| filters.table | 文字列 | フィルタリングするテーブルの名前。 |
| filters.filter | 文字列 | テーブルに適用するフィルター基準を含むエンコードされたクエリ。 |
| タイプ | 説明 |
|---|---|
| なし |
この 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 オブジェクトによって公開されている現在のフィルターを、ダッシュボード上のすべてのレポートから削除します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| なし |
var my_dashboardMessageHandler = new DashboardMessageHandler("my_unique_id");
<input id="removeFilter" type="button" value="Remove filter" onclick="my_dashboardMessageHandler.removeFilter();"/>