Fixe Abfrage in Daten-Tabelle (Data Table from Instance Definition Widget)

24.03.2023

In einem Data Table Widget wird im Standard der konfigurierte Filter in Form von «Breadcrumbs» angezeigt. Während eine interne Liste mit einer sogenannten «Fixed query» versehen werden kann, ist jeglicher in den Breadcrumbs angezeigte Filter vom Benutzer selbst entfernbar. Die Anzeige des Breadcrumb-Filters kann zwar komplett deaktiviert werden, dies sorgt jedoch für weitere Probleme. Denn nun kann ein Benutzer auch die von ihm selbst gesetzten Filter (über die Aktionen «Übereinstimmgen anzeigen» und «herausfiltern») nicht mehr entfernen. In der nachfolgenden Anleitung zeige ich einen möglichen Lösungsweg, um einer Data Table einen fixen Filter mitgeben zu können und dennoch die Anzeige von Breadcrumbs und die Entfernung für vom Benutzer definierte Filter zu ermöglichen.

Filtern mit dem «Filter»-Feld

Wenn eine neue «Data Table from Instance Definition» erstellt wird, so kann ein Filter mitgegeben werden, um die Einträge in der Tabelle zu filtern. Untenstehend ist zu sehen, wie in einer «Data Table» nur Einträge angezeigt werden, die dem aktuellen Benutzer zugewiesen sind. Dies lässt sich einfach konfigurieren, indem der folgende Filter im «Filter»-Feld der Daten-Tabelle hinzugefügt wird:

assigned_toDYNAMIC90d1921e5f510100a9ad2572f2b477fe

Leider können die über diesen Weg konfigurierten Filter mit einem einfachen Klick vom Benutzer selbst entfernt werden, wie im nachfolgenden Bild zu sehen ist:


Fixe Abfrage konfigurieren mit Hilfe einer Beziehung [sys_relationship]

Üblicherweise möchten wir eine feste Abfrage in der Daten-Tabelle konfigurieren, die der Benutzer nicht entfernen kann und ohne Anzeige des «fixen» Filters. Der Filter kann zwar durch Deaktivieren der Option «show_breadcrumbs» ausgeblendet werden, diese Lösung ist jedoch nicht sehr benutzerfreundlich. Denn wenn ein Benutzer die Liste selbst filtert mit «Übereinstimmungen anzeigen» oder «Herausfiltern», dann wird auch dieser Filter nicht angezeigt und der selbst gesetzte Filter kann nicht vom Benutzer wieder entfernt werden.
In unserem Falle sollte die Liste «My Incidents» immer nur die der Person zugewiesenen Incidents anzeigen.

Dies kann durch Umsetzung der folgenden Schritte einfach erreicht werden, ohne jegliche Anpassungen am Data Table Widget vornehmen zu müssen:

1.Zuerst soll eine neue Beziehung in der Tabelle [sys_relationship] erstellt werden. Wir werden diese Beziehung als «fixed filter» in unserer Datentabelle verwenden. Da wir diese Beziehung nicht als Standardbeziehung in einem Formular verwenden wollen, lassen wir «Applied to table» leer und stellen auch sicher, dass wir nicht auf die Variable «parent» im Skript zugreifen (da es in der Datentabelle kein «parent» gibt). Da wir die Liste von Incidents nach Incidents filtern wollen, die dem aktuellen Benutzer zugewiesen sind, würden wir folgendes angeben:

Queries from table: Incident [incident]

Query with: current.addQuery(‘assigned_to’, gs.getUserID());

2.Übermitteln Sie die Beziehung und kopieren Sie die sys_id des neu eingefügten Datensatzes.

3. Öffnen Sie den sp_instance-Record Ihrer Datentabelle in der Classic UI, indem Sie ihn in “/sp_instance_list.do” finden oder indem Sie die Instanzoptionen mit “Strg + Rechtsklick”auf Ihr Widget öffnen, “Instance Options” wählen und dann “Open in platform” im Menü auswählen wie unten gezeigt:

4. Fügen Sie im Feld " Additional options, JSON format" die folgenden zwei Optionen hinzu (siehe unten):

{
“relationship_id”: “<sys_id of your newly created entry in sys_relationship>”,
“apply_to”: “<table name of records displayed in the data table>”
}

5. Entfernen Sie den Teil des Filters, den Sie dem sys_relationship Datensatz hinzugefügt haben, aus dem Feld «Filter» in Ihrem sp_instance Datensatz.


Wenn Sie die obigen Schritte befolgt haben, haben Sie nun eine Datentabelle mit einem festen Filter. Der feste Filter wird dem Benutzer nicht angezeigt und kann nicht entfernt werden. Wie Sie unten sehen können, werden nur die Incidents angezeigt, die Beth Anglin zugewiesen wurden:

Wir können auch «Rechtsklick -> Show Matching» und «Rechtsklick -> Filter-out» verwenden, um Datensätze herauszufiltern, und sehen trotzdem nicht die in der Beziehung definierte feste Abfrage.

Auch wenn Sie auf «All» klicken, bleibt die Datentabelle nach Incidents gefiltert, die dem aktuellen Benutzer zugeordnet sind:


Verbessern Sie Ihr Portal mit Swiss Tool

Die von Arctive AG entwickelte Store-Applikation «Swiss Tool» bietet Ihnen verbesserte Widgets für Daten-Tabellen und Formular an, welche unter anderem folgendes ermöglichen:

  • Dynamisches Hervorheben/Styling von Zellen und Zeilen einer Daten-Tabelle
  • Anzeige von dynamischem «Process Flow» in Portal-Formularen
  • Anzeigen von «Annotations» in Portal-Formularen
  • Unterstützung für Embedded- und Related-Lists in Portalen
  • Anzeige von «Tabs» in Portal-Formularen
  • Schaltflächen für Listen und Listenbanner in Datentabellen
  • Client-seitige Schaltflächen in Ihrem Portal (zum Beispiel für Bestätigungsdialoge oder die Durchführung von Weiterleitungen bei der Übermittlung)
  • Verbesserte Handhabung von Anhängen

Schauen Sie sich die Swiss Tool-Anwendung an, die im Store erhältlich ist.

Mit Swiss Tool können Sie die Entwicklung benutzerdefinierter Portale erheblich beschleunigen und das Klonen von Widgets vermeiden, was die Wartbarkeit und Sicherheit Ihrer Portale erheblich erhöht, da Sie sich nicht bei jedem Upgrade von ServiceNow um die Migration/Fixierung Ihrer geklonten Widgets kümmern müssen. Swiss Tool verfolgt einen einzigartigen Ansatz, indem es auf Out-of-the-box Formulare und Datentabellen Widgets aufbaut und sicherstellt, dass Sie bei jedem Release immer die neuesten Updates der zugrunde liegenden Widgets erhalten.

Der untenstehende Screenshot zeigt verschiedene Funktionen der SwissTool-Applikation, die mit einem No-Code/Low-Code Ansatz leicht konfigurierbar sind:


Datenschutzhinweis

Wir nutzen auf unserer Webseite Cookies. Einige von ihnen sind essen­ziell, während andere uns helfen, diese Webseite und Ihr Benutzer­erlebnis zu ver­bessern. Weitere Infor­ma­tio­nen dazu fin­den Sie in unseren Datenschutzinformationen.