Beispiele für anwenderdefinierte 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 anwenderdefinierten Filter erstellen, um Berichte in der Aufgabentabelle oder ihren untergeordneten Tabellen zu filtern. Der Filter zeigt nur Datensätze an, bei denen der aktuelle Anwender 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 anwenderdefiniertes interaktives Filter-Widget
Erstellen Sie anwenderdefinierte interaktive Filter-Widgets, um erweiterte Filteroptionen in Dashboards bereitzustellen.
Vorbereitungen
Erforderliche Rolle: Administrator
Prozedur
Nächste Maßnahme
Definieren Sie die Filterlogik.
Filterlogik definieren – Beispiel
Nachdem Sie den interaktiven Filter erstellt haben, fügen Sie die Filterlogik hinzu.
Vorbereitungen
Erforderliche Rolle: Administrator
Prozedur
Ergebnisse
Der anwenderdefinierte interaktive Filter wird im Dashboard angezeigt, dem Sie den dynamischen Inhaltsblock hinzugefügt haben. Sie befindet sich auch in der Liste der Inhaltsblöcke in Fügen Sie Widgets Hinzu Bereich.
Erstellen Sie eine anwenderdefinierte Filteroption für Datum/Uhrzeit
Wenn die Standardauswahl von Datums-/Uhrzeitfilteroptionen Ihren Anforderungen nicht entspricht, können Sie eine anwenderdefinierte Option erstellen.
Vorbereitungen
Führen Sie diese Schritte aus, um eine anwenderdefinierte Filteroption für Datum/Uhrzeit zu erstellen, die dann in einen beliebigen interaktiven Datums-/Uhrzeitfilter zur Verwendung in einem Dashboard aufgenommen werden kann. In diesem Beispiel erstellen Sie eine Filteroption für den Zeitraum von zwei Wochen, also zwei Wochen.
Erforderliche Rolle: admin.
Prozedur
Beispiel für anwenderdefinierten interaktiven Filter – mehrere Berichte
Sie können einen anwenderdefinierten interaktiven Filter verwenden, um mehrere Berichte mithilfe verschiedener Tabellen zu filtern. Es gibt zwei verschiedene APIs zum Veröffentlichen eines interaktiven Filters für eine einzelne Tabelle oder mehrere Tabellen. Dieses Beispiel filtert einen Bericht zu den Incident- und Problemtabellen nach Zuweisungsgruppe mithilfe eines anwenderdefinierten interaktiven Filters.
Über anwenderdefinierte interaktive Filter in mehreren Tabellen
- Anwenderdefinierte interaktive Filter, die nur für eine Tabelle gelten, verwenden die Funktion DashboardMessageHandler.publishFilter() .
- Anwenderdefinierte interaktive Filter, die für mehrere Tabellen gelten, verwenden die Funktion DashboardMessageHandler.publishMessage() .
- Vor der Veröffentlichung wird ein interaktiver Filteraufruf an durchgeführt SNC.canvas.interactiveFilters.setDefaultValue() Funktion ist erforderlich.
- Ein Anruf an entweder SNC.canvas.interactiveFilters.removeDefaultValue() Oder DashboardMessageHandler.removeFilter() Funktion ist erforderlich, bevor Sie den Filter zurücksetzen.
Ein anwenderdefinierter interaktiver Filter, der aufruft PublishFilter() Mit der Methode wird der zugeordnete Bericht mehrmals mit derselben Anzahl aktualisiert. Wiederholte Aufrufe dieser Methode können Leistungsprobleme verursachen.
So wenden Sie anwenderdefinierten 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 anruft DashboardMessageHandler.publishMessage([Filter]) . 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>