Beispiele für benutzerdefinierte interaktive Filter
Als Administrator können Sie benutzerdefinierte interaktive Filter-Widgets erstellen, um erweiterte Filteroptionen in Dashboards bereitzustellen.
Anwendungsfall
In diesem Beispiel wird beschrieben, wie Sie einen benutzerdefinierten Filter erstellen, um Berichte in der Aufgabentabelle oder ihren untergeordneten Tabellen zu filtern. Der Filter zeigt nur Datensätze an, bei denen der aktuelle Benutzer der Anrufer ist. Der Filter stellt dem Benutzer zwei Schaltflächen zur Verfügung, eine Schaltfläche zum Hinzufügen des Filters und eine zum Entfernen des Filters.
Erstellen Sie ein benutzerdefiniertes interaktives Filter-Widget
Erstellen Sie benutzerdefinierte interaktive Filter-Widgets, um erweiterte Filteroptionen für Dashboards bereitzustellen.
Vorbereitungen
Erforderliche Rolle: admin
Prozedur
Nächste Maßnahme
Definieren Sie die Filterlogik.
Erstellen Sie eine benutzerdefinierte Datums-/Uhrzeitfilteroption
Wenn die Standardauswahl der Datums-/Uhrzeitfilteroptionen nicht Ihren Anforderungen entspricht, können Sie eine benutzerdefinierte Option erstellen.
Vorbereitungen
Befolgen Sie diese Schritte, um eine benutzerdefinierte Datums-/Uhrzeit-Filteroption zu erstellen, die dann in einen beliebigen datums-/uhrzeitbasierten interaktiven Filter zur Verwendung in einem Dashboard aufgenommen werden kann. In diesem Beispiel erstellen Sie eine Filteroption für den Zeitraum von zwei Wochen, alle zwei Wochen.
Erforderliche Rolle: admin.
Prozedur
Filterlogik definieren – Beispiel
Nachdem Sie den interaktiven Filter erstellt haben, fügen Sie die Filterlogik hinzu.
Vorbereitungen
Erforderliche Rolle: admin
Prozedur
Ergebnisse
Der benutzerdefinierte interaktive Filter wird in dem Dashboard angezeigt, zu dem Sie den dynamischen Inhaltsblock hinzugefügt haben. Sie befindet sich auch in der Liste der Inhaltsblöcke im Bereich Widgets hinzufügen.
Beispiel für einen benutzerdefinierten interaktiven Filter – Mehrere Berichte
Sie können einen benutzerdefinierten interaktiven Filter verwenden, um mehrere Berichte anhand verschiedener Tabellen zu filtern. Es gibt zwei verschiedene APIs zum Veröffentlichen eines interaktiven Filters für eine einzelne Tabelle oder mehrere Tabellen. In diesem Beispiel wird ein Bericht in den Incident- und Problem-Tabellen nach Zuweisungsgruppe mithilfe eines benutzerdefinierten interaktiven Filters gefiltert.
Über benutzerdefinierte interaktive Filter in mehreren Tabellen
- Benutzerdefinierte interaktive Filter, die nur für eine Tabelle gelten, verwenden die Funktion DashboardMessageHandler.publishFilter().
- Benutzerdefinierte interaktive Filter, die für mehrere Tabellen gelten, verwenden die Funktion DashboardMessageHandler.publishMessage().
- Vor der Veröffentlichung ist ein interaktiver Filteraufruf an die Funktion SNC.canvas.interactiveFilters.setDefaultValue() erforderlich.
- Ein Aufruf der Funktion SNC.canvas.interactiveFilters.removeDefaultValue() oder DashboardMessageHandler.removeFilter() ist erforderlich, bevor Sie den Filter zurücksetzen.
Ein benutzerdefinierter interaktiver Filter, der die veröffentlichenFilter()-Methode mehrmals aufruft, aktualisiert den zugeordneten Bericht gleich oft. Wiederholte Aufrufe dieser Methode können Leistungsprobleme verursachen.
So wenden Sie einen benutzerdefinierten interaktiven Filter auf mehrere Tabellen an
Das folgende Beispiel filtert den Bericht nach Zuweisungsgruppe in den Tabellen „Incident“ [incident] und „Problem“ [problem].
DashboardMessageHandler.publishMessage() akzeptiert mehrere Filter als Array. Erstellen Sie das Filter-Array, und erstellen Sie dann eine einzelne Instanz von DashboardMessageHandler, die DashboardMessageHandler.publishMessage([filters])aufruft. Diese Methode aktualisiert das Widget nur einmal.
<?xml version="1.0" encoding="UTF-8"?>
<j:jelly xmlns:j="jelly:core" xmlns:g="glide" xmlns:g2="null" xmlns:j2="null" trim="false">
<script>
var my_dashboardMessageHandler = new DashboardMessageHandler("my_unique_id");
function publishMultipleFilter() {
<!-- Mutliple filters can be passed as an array -->
var finalFilter = [{"table":"incident","filter":"assignment_group=6fcd3b573b331300ad3cc9bb34efc447"}, {"table":"problem","filter":"assignment_group=6fcd3b573b331300ad3cc9bb34efc447"}];
<!-- call setDefaultValue first -->
SNC.canvas.interactiveFilters.setDefaultValue({
id: my_dashboardMessageHandler._unique_id,
filters: finalFilter,
}, false);
<!-- then call Publishmessage to publish filters-->
my_dashboardMessageHandler.publishMessage(finalFilter);
}
function clearFilter() {
SNC.canvas.interactiveFilters.removeDefaultValue(my_dashboardMessageHandler._unique_id, false);
my_dashboardMessageHandler.removeFilter();
}
</script>
Example of a filter that filters incident and problem table where the assignment group is Problem solving
<input id="allTasks" type="button" value="All" onclick="clearFilter();" />
<input id="onlyMine" type="button" value="Assignment group is [Problem solving]" onclick="publishMultipleFilter();" />
</j:jelly>