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 erfahren Sie, 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 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 anwenderdefiniertes interaktives Filter-Widget
Erstellen Sie anwenderdefinierte 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 anwenderdefinierte Datums-/Uhrzeit-Filteroption
Wenn die Standardauswahl an Datums-/Uhrzeitfilteroptionen nicht Ihren Anforderungen entspricht, können Sie eine anwenderdefinierte Option erstellen.
Vorbereitungen
Befolgen Sie diese Schritte, um eine anwenderdefinierte Datums-/Uhrzeit-Filteroption zu erstellen, die dann in jeden interaktiven Datums-/Uhrzeitfilter zur Verwendung in einem Dashboard aufgenommen werden kann. In diesem Beispiel erstellen Sie eine Filteroption für den Zeitraum zweiwöchentlich bzw. zweiwöchentlich.
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 anwenderdefinierte interaktive Filter wird in dem Dashboard angezeigt, dem Sie den dynamischen Inhaltsblock hinzugefügt haben. Er befindet sich auch in der Liste der Inhaltsblöcke im Bereich „Widgets hinzufügen“.
Beispiel für einen anwenderdefinierten interaktiven Filter – Mehrere Berichte
Sie können einen anwenderdefinierten interaktiven Filter verwenden, um mehrere Berichte mit verschiedenen 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 Tabellen „Incident“ und „Problem“ nach Zuweisungsgruppe mithilfe eines anwenderdefinierten interaktiven Filters gefiltert.
Ü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 ist ein interaktiver Filteraufruf an die Funktion SNC.canvas.interactiveFilters.setDefaultValue() erforderlich.
- Bevor Sie den Filter zurücksetzen, muss entweder die Funktion SNC.canvas.interactiveFilters.removeDefaultValue() oder DashboardMessageHandler.removeFilter() aufgerufen werden.
Ein anwenderdefinierter interaktiver Filter, der die Methode „publishFilter() “ mehrmals aufruft, aktualisiert den zugehörigen Bericht entsprechend oft. Wiederholte Aufrufe dieser Methode können zu Leistungsproblemen führen.
Wenden Sie anwenderdefinierten interaktiven Filter auf mehrere Tabellen an
Im folgenden Beispiel wird der Bericht in den Tabellen „Incident“ [incident] und „Problem“ [problem] nach Zuweisungsgruppe gefiltert.
DashboardMessageHandler.publishMessage() akzeptiert mehrere Filter als Array. Erstellen Sie das Filter-Array und anschließend 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>