Page tree
Skip to end of metadata
Go to start of metadata

Grundlagen

Mithilfe eines Vorfilters können die angezeigten Daten für spezifische Benutzer vorab gefiltert werden.
Dem Benutzer wird über das Filter-Symbol in der Menüleiste angezeigt ob ein Vorfilter aktiv ist oder nicht. Dabei ist dem Benutzer nicht ersichtlich welche Daten gefiltert werden.

Vorfilter können von einem Administrator angelegt und aktualisiert werden.

Status des Vorfilters

Das Feature Vorfilter verfügt über drei Status. In der Menübar ist erkennbar, in welchem Status sich das Feature befindet:

StatusBedeutung

Deaktiviert

Das Feature Vorfilter ist über die Konfiguration deaktiviert.
In der Menübar erscheint kein Filter-Symbol.

Inaktiv

Es wurden keine Vorfilter für diesen Benutzer definiert.
In der Menüleiste erscheint ein ausgegrautes Filter-Symbol.

Aktiv

Es wurde mindestens ein Vorfilter für diesen Benutzer definiert. In der Menüleiste erscheint ein blaues Filter-Symbol.


Verwendung

Vorfilterservice konfigurieren

Um das Feature der Vorfilter nutzen zu können, muss zunächst der Service aktiviert werden.
Die Konfiguration des Vorfilterservice ist hier beschrieben: Vorfilter-Konfiguration

Vorfilter definieren

Das Anlegen oder Aktualisieren von Vorfiltern kann über eine Stored Procedure oder eine REST-Schnittstelle erfolgen.
Ein Vorfilter wird immer für eine Kombination aus Benutzername und Filter-ID definiert.
Ein Vorfilter kann eine Kombination aus mehreren existierenden Filter sein und wird über die Filter-Hashes der Filter referenziert.
Die Filter eines Vorfilters werden untereinander mit ODER verknüpft.

Bei der Anwendung eines Filters wird – sofern existent – der für den angemeldeten Benutzer eingetragene Vorfilter an die Datenbankabfrage mit AND angehangen.

Beispiel

Für den Benutzer1 und FilterID2 besteht der Vorfilter aus FilterHash1, FilterHash2 und FilterHash3.

Wenn für den Benutzer1 eine Datenbankabfrage ausgeführt wird, die mit FilterID2 gefiltert werden soll, wird zusätzlich der definierte Vorfilter angehangen.

Mit Beispiels-werten sieht das ganze wie folgt aus:
FilterID2: userName = Mustermann
FilterHash1: age = 18
FilterHash2: age = 30
FilterHash3: age = 60

Hole mir alle Personen mit dem Namen "Mustermann" die entweder 18, 30 oder 60 Jahre alt sind aus der Tabelle.

Syntaktisch
SELECT *
FROM XY
WHERE userName = Mustermann
AND (age = 18
  OR age = 30
  OR age = 60)

Anlage / Aktualisierung von Vorfilter

Über die Stored Procedure

Die Stored Procedure sp_insertOrUpdatePrefilter muss mit drei Parametern aufgerufen werden:

ParameterTypeBeschreibung
@usernamenvarcharDer Loginname des Benutzers, für den die Vorfilter angelegt werden sollen.

@filterID

bigintDie Id eines existierenden Filters, für den Vorfilter hinzugefügt werden sollen.

@filterHashes

nvarchar

Eine JSON-Liste mit den Hashes der Filter, die für den Benutzer und den angegebenen Filter als Vorfilter definiert werden sollen.

Wenn in der Datenbank für einen konkreten Benutzer und einen Filter schon ein Vorfilter eingetragen ist, wird dieser beim Aufruf der Stored Procedure überschrieben. Im Falle von ungültigen Parametern werden entsprechende SQL-Fehlermeldungen generiert.

Beispiel für den Aufruf der Stored Procedure zur Definition von zwei Vorfiltern für den Benutzer MyUser und den Filter mit der ID 2
EXEC portal.sp_insertOrUpdatePrefilter
	@username = 'MyUser'
   ,@filterID = 2
   ,@filterHashes = '["96bd5c2dc96a64135c1dd0dac6475ab5e5e833b1e33fa7aa9cdcba35b9a3896a"
                     ,"6b2739096042f02055f32cab50db8516dfe8b10836acb5ca6a0ce9a69ad01969"]';
GO

Über die Rest-Schnittstelle

Ein Prefilter ist ein Objekt, das die nötigen informationen zu einem Vorfilter beinhaltet.
Das Objekt enthält die ID des Benutzers, die ID des Filters und eine Liste von Filter-Hashes, die als Vorfilter für den Filter gelten sollen.

Abrufen aller Vorfilter

GETbackend/de.eoda.dse.portal.filter.prefilter.rest/
Erfolg

Code: 200
Typ: Application/Json
Inhalt: PreFilter Liste

Code: 204

Abrufen aller Vorfilter für den aktuell angemeldeten Benutzer

GETbackend/de.eoda.dse.portal.filter.prefilter.rest/hasfilter
Erfolg


Code: 200
Typ: Application/Json
Inhalt: PreFilter Liste

Code: 204

Fehler

Code: 404

Filter-Service ist nicht aktiv

Abrufen eines Vorfilters für eine Filter ID und einen Benutzer

GET

backend/de.eoda.dse.portal.filter.prefilter.rest/{filterId}/user/{userId}

URL-Parameter

filterId: Die ID des Filters, dessen Vorfilter abgerufen werden soll.
userId: Die ID des Benutzers, dessen Vorfilter abgerufen werden soll.

ErfolgCode: 200
Typ: Application/Json
Inhalt: PreFilter

Anlegen/Aktualisieren eines Vorfilters

POSTbackend/de.eoda.dse.portal.filter.prefilter.rest/{filterId}/user/{userId}
URL-Parameter

filterId: Die ID des Filters, für den der Vorfilter angelegt werden soll.
userId: Die ID des Benutzers, für den der Vorfilter angelegt werden soll.

Body

Eine Json-Liste von Filter-Hashes

["96bd5c2dc96a64135c1dd0dac6475ab5e5e833b1e33fa7aa9cdcba35b9a3896a"
,"07e6a59b4319f9a68729289851f955eb03be13fa3f4b86920a093a9902da1301"]
Erfolg

Code: 200
Typ: Application/Json
Inhalt: PreFilter

Der Vorfilter wurde angelegt/aktualisiert

Fehler

Code: 400

Ein leerer Body wurde an den Endpunkt gesendet.

Löschen eines Vorfilters

DELETEbackend/de.eoda.dse.portal.filter.prefilter.rest/{filterId}/user/{userId}
URL-ParameterfilterId: Die ID des Filters, für den der Vorfilter angelegt werden soll.
userId: Die ID des Benutzers, für den der Vorfilter angelegt werden soll.
Erfolg

Code: 200
Typ: Application/Json
Inhalt: Prefilter

Der Vorfilter wurde gelöscht

  • No labels