<script custom-tag="" type="application/ld+json">{"@context":"https://schema.org","@type":"TechArticle","headline":"カスタムインタラクティブフィルターの基本","image":"http://support.servicenow.com/29f1d2661baf6010cafa53d8624bcb43.iix","author":{"name":"ServiceNow Support","url":"http://support.servicenow.com/now"},"keywords":"ServiceNow, NowSupport public Knowledge Base articles, Support and Troubleshooting,KB1710807,","wordcount":"324","publisher":"ServiceNow","url":"https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB1710807","datePublished":"2024-12-19","dateCreated":"2024-12-05","dateModified":"2025-01-19","description":"<h2>カスタムインタラクティブフィルターの基本</h2><br/><div style=\"overflow-x:auto\"><p><span style=\"font-size: 10pt; font-family: verdana, geneva;\">カスタムのインタラクティブフィルターを使用すると、異なるテーブルを使用して複数のレポートをフィルターで絞り込むことができます。単一または複数のテー","articleBody":"<h2>カスタムインタラクティブフィルターの基本</h2><br/><div style=\"overflow-x:auto\"><p><span style=\"font-size: 10pt; font-family: verdana, geneva;\">カスタムのインタラクティブフィルターを使用すると、異なるテーブルを使用して複数のレポートをフィルターで絞り込むことができます。単一または複数のテーブルのインタラクティブフィルターを公開する API は 2 種類あります。</span></p>\r\n<p><span style=\"font-size: 10pt; font-family: verdana, geneva;\">カスタムインタラクティブフィルターを作成する際には、次の点に注意してください。</span></p>\r\n<ul style=\"list-style-position: inside;\"><li style=\"font-size: 10pt; font-family: Calibri, sans-serif; color: black;\"><span style=\"font-size: 10pt; font-family: verdana, geneva;\">カスタムインタラクティブフィルターを 1 つのテーブルでのみ使用する予定の場合は、 <strong><em>DashboardMessageHandler.publishFilter()</em></strong> 関数を使用できます。</span></li><li style=\"font-size: 10pt; font-family: Calibri, sans-serif; color: black;\"><span style=\"font-family: verdana, geneva; font-size: 10pt;\">カスタムインタラクティブフィルターを複数のテーブルに適用する予定の場合は、 <strong><em><span style=\"color: black;\">DashboardMessageHandler.publishMessage()</span></em></strong> 関数を使用できます。 </span></li><li style=\"font-size: 10pt;\"><span style=\"font-family: verdana, geneva; font-size: 10pt;\">インタラクティブフィルターを公開する前に、Orlando 以降は <strong><em>SNC.canvas.interactiveFilters.setDefaultValue(</em>)</strong> 関数を呼び出す必要があります。</span></li><li style=\"font-size: 10pt; color: black;\"><span style=\"font-family: verdana, geneva; font-size: 10pt;\">フィルターをリセットする前に、関数 <strong><em>SNC.canvas.interactiveFilters.removeDefaultValue()</em></strong> または <strong><em>DashboardMessageHandler.removeFilter()</em></strong> を呼び出す必要があります。</span></li></ul>\r\n<p style=\"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: Calibri, sans-serif;\"> </p>\r\n<p style=\"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: Calibri, sans-serif;\"><span style=\"font-size: 10pt; font-family: verdana, geneva;\">ServiceNow <a title=\"Docs\" href=\"https://docs.servicenow.com/bundle/orlando-performance-analytics-and-reporting/page/use/dashboards/reference/r_CustomPublisherExample.html\">ドキュメント</a> サイトには、以前は単一のテーブルに対するインタラクティブフィルターの使用に関する例のみが掲載されていました。API <strong><em><span style=\"color: black;\">DashboardMessageHandler.publishMessage()</span></em></strong> についてもドキュメント化されています。ドキュメントでも同様の情報を見つけることができます。</span></p>\r\n<ol style=\"list-style-position: inside;\"><li style=\"font-size: 10pt; font-family: Calibri, sans-serif;\"><span style=\"font-size: 10pt; font-family: verdana, geneva;\">2 つの <strong>DashboardMessageHandler</strong> インスタンスを作成し、 <span style=\"font-family: verdana, geneva;\"><strong><em>publishFilter()</em></strong></span> メソッドを 2 回呼び出します。インタラクティブフィルターに従うすべてのレポートウィジェットが 2 回更新されます。</span></li><li style=\"font-size: 10pt; font-family: Calibri, sans-serif;\"><span style=\"font-size: 10pt; font-family: verdana, geneva;\">2 つ以上のテーブルに対してフィルターを使用する必要がある場合は、配列が作成され、ループ内で <strong>N</strong> <strong>DashboardMessageHandler</strong> インスタンスが構築されます。<strong>publishFilter()</strong> メソッドは <strong>N</strong> 回呼び出されるため、インタラクティブフィルターに続くすべてのレポートが <strong>N</strong> 回更新され、パフォーマンスの問題が発生する可能性があります。</span></li></ol>\r\n<h1><span style=\"font-size: 12pt;\"><strong><span style=\"font-family: verdana, geneva;\">カスタムインタラクティブフィルターを複数のテーブルに適用する方法</span></strong></span></h1>\r\n<p style=\"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: Calibri, sans-serif;\"><span style=\"font-family: verdana, geneva; font-size: 10pt;\">以下の例では、カスタムインタラクティブフィルターを使用して、アサイン先グループ別に <strong>incident</strong> テーブルと <strong>problem</strong> テーブルを使用してレポートをフィルタリングします。例&#xff1a;</span></p>\r\n<ul style=\"list-style-position: inside;\"><li style=\"font-size: 10pt; font-family: Calibri, sans-serif;\"><span style=\"font-family: verdana, geneva; font-size: 10pt;\">未解決の問題の数</span></li><li style=\"font-size: 10pt; font-family: Calibri, sans-serif;\"><span style=\"font-size: 10pt;\"><span style=\"font-family: verdana, geneva;\">オープンインシデントの数</span> </span></li></ul>\r\n<p><span style=\"font-size: 10pt;\"><span style=\"font-family: verdana, geneva;\"><strong><em><span style=\"color: black;\">DashboardMessageHandler.publishMessage() </span></em></strong></span><span style=\"font-family: verdana, geneva;\">複数のフィルターを配列として受け入れるので、フィルター配列を適切に構築し、 <strong>DashboardMessageHandler</strong> のインスタンスを 1 つだけ作成し、 <strong>DashboardMessageHandler.publishMessage([filters])</strong> を呼び出すことができます。これによりウィジェットは 1 回だけ更新され、 <strong><em>DashboardMessageHandler.publishFilter()</em></strong> を複数回呼び出すよりもパフォーマンスが向上します。 </span></span></p>\r\n<p> </p>\r\n<h2><span style=\"font-size: 10pt;\"><span style=\"font-size: 12pt;\"><strong>例&#xff1a;<br /></strong></span><br /></span></h2>\r\n<h2>&lt;?xml version&#61;&#34;1.0&#34; encoding&#61;&#34;utf-8&#34; ?&gt;<br />&lt;j:jelly trim&#61;&#34;false&#34; xmlns:j&#61;&#34;jelly:core&#34; xmlns:g&#61;&#34;glide&#34; xmlns:j2&#61;&#34;null&#34; xmlns:g2&#61;&#34;null&#34;&gt;<br />&lt;script&gt;<br />var my_dashboardMessageHandler &#61; new DashboardMessageHandler(&#34;my_unique_id&#34;);<br /><br />function publishMultipleFilter() {<!-- --><br />&lt;!-- Mutliple filters can be passed as an array --&gt;<br />var finalFilter &#61; [{&#34;table&#34;:&#34;incident&#34;,&#34;filter&#34;:&#34;assignment_group&#61;6fcd3b573b331300ad3cc9bb34efc447&#34;}, {&#34;table&#34;:&#34;problem&#34;,&#34;filter&#34;:&#34;assignment_group&#61;6fcd3b573b331300ad3cc9bb34efc447&#34;}];<br />&lt;!-- call setDefaultValue first --&gt;<br />SNC.canvas.interactiveFilters.setDefaultValue({<!-- --><br />id: my_dashboardMessageHandler._unique_id,<br />filters: finalFilter,<br />}, false);<br /><br />&lt;!-- then call Publishmessage to publish filters--&gt;<br />my_dashboardMessageHandler.publishMessage(finalFilter);<br />}<br /><br />function clearFilter() {<!-- --><br />SNC.canvas.interactiveFilters.removeDefaultValue(my_dashboardMessageHandler._unique_id, false);<br />my_dashboardMessageHandler.removeFilter();<br />}<br />&lt;/script&gt;<br /><br />Example of a filter that filters incident and problem table where assign_ment group is Problem solving &lt;br/&gt;<br />&lt;input id&#61;&#34;allTasks&#34; type&#61;&#34;button&#34; value&#61;&#34;All&#34; onclick&#61;&#34;clearFilter();&#34; /&gt;<br />&lt;input id&#61;&#34;onlyMine&#34; type&#61;&#34;button&#34; value&#61;&#34;Assignment group is [Problem solving]&#34; onclick&#61;&#34;publishMultipleFilter();&#34; /&gt;<br /><br />&lt;/j:jelly&gt;</h2></div>"}</script>
  Loading...