Doppelte Personen + Assets per ASQL Filter finden (UUX)

Der AD-Datenprovider rastet aus, Empirum Konnektor macht Probleme oder deine Kollegen haben immer noch nicht verstanden, wie man richtig nach Assets sucht und legen ständig die schon vorhanden an?

Keine Sorge, es gibt einen einfachen Weg über eigene Filter doppelte Personen, Benutzerkonten oder Assets zu finden. Dafür brauchen wir zwar etwas ASQL und ein kleines Subquery, aber wir erklären alles ganz einfach und verständlich. So zumindest die Idee 😉

Du solltest außerdem bereits wissen, wie man eigene Filter in der UUX anlegen kann.

Doppelte Personen via Vor- und Nachname finden

filter für doppelte personen matrix42 stammdaten

Basisklasse der Datenquelle: SPSUserClassBase

ID In Subquery(SPSUserClassBase AS UCB, base.ID, base.LastName = UCB.LastName AND base.FirstName = UCB.FirstName AND base.ID<>UCB.ID)Code-Sprache: SQL (Structured Query Language) (sql)
Erklärung

Wir fangen mit der Erklärung mal von vorne an (bitte nicht falsch verstehen), da es so zumindest für mich einfacher zu erklären ist. Da es sich hierbei um einen Datenquellfilter des Navigationselements “Personen” handelt, kann man sich das ganz Statement in Etwa so vorstellen:

Select UnsereDefiniertenSpaltenInderDatenquelle from SPSUserClassBase where 
ID In Subquery(SPSUserClassBase AS UCB, base.ID, base.LastName = UCB.LastName AND base.FirstName = UCB.FirstName AND base.ID<>UCB.ID) 
Code-Sprache: HTML, XML (xml)

Die Bedingung:

Der Filter besagt, die ID des Objektes der Datenquelle (sprich im Falle vom Navigationselement Personen die ID aus der SPSUserClassBase) muss von dem Subquery zurückgegeben werden.

Das Subquery

Das Subquery kann man sich in ASQL wie eine eigene Select-Abfrage vorstellen, dessen Syntax durch Subquery() initiiert wird und durch 3 kommagetrennte Parameter in der Klammer bestimmt ist.

Parameter 1: Die Tabelle

SPSUserClassBase AS UCB,Code-Sprache: PHP (php)

Der erste Teil bestimmt, welche Tabelle aufgerufen wird und welchen Alias sie bekommt, in unserem Fall können wir also die 2te SPSUserClassBase innerhalb des Subquery mit “UCB” ansteuern.

Parameter 2: Der Rückgabewert

base.ID,Code-Sprache: CSS (css)

base.ID ist der Rückgabewert des Subquery, welches für alle Datensätze zurückgegeben wird, auf die die Bedingung (nächster Parameter) zutrifft. Via “base” können wir übrigens die Basisklasse ansteuern.

Genau das ist das besondere am Subquery! Wir haben 2 Tabellen (Die Basistabelle, wir nennen sie UserClassBase1 & die UserClassBase2 aus dem Subquery) und können diese miteinander vergleichen.

Parameter 3: Where Abfrage

base.LastName = UCB.LastName AND base.FirstName = UCB.FirstName AND base.ID<>UCB.IDCode-Sprache: HTML, XML (xml)

Nun da wir beide Tabellen referenzieren können und den Rückgabewert festgelegt haben, können wir entscheiden, welche Datensätze wir zurückliefern wollen. In diesem Fall alle, bei denen:

  1. Nachname der Basisklasse und der 2ten Klasse identisch sind (UCB)
  2. Vorname der Basisklasse und der 2ten Klasse identisch sind (UCB)
  3. IDs der Basisklasse und der 2ten Klasse NICHT identisch sind

Somit bekommen wir als Rückgabe des Subquerys alle IDs von Einträgen der SPSUserClassBase, deren Vor- und Nachname identisch sind, deren IDs sich aber unterscheiden. Also höchstwahrscheinlich doppelte Datensätze.

Verstanden oder verwirrter als vorher? Falls du noch Fragen hast, lass gerne ein Kommentar da!

Doppelte Computer via Name finden

filter für doppelte computer objekte matrix42 asset management

Basisklasse der Datenquelle: SPSAssetClassBase

ID In Subquery(SPSAssetClassBase AS ACB, base.ID, base.T(SPSComputerClassBase).Name = ACB.T(SPSComputerClassBase).Name AND base.ID<>ACB.ID)Code-Sprache: SQL (Structured Query Language) (sql)

Vielen Dank fürs Lesen! Ich hoffe, dir hat der Artikel gefallen und du hast jetzt das nötige Handwerkszeug, eigene Filter zu schreiben.

Falls du praktische Filter hast, die der Matrix42 Gemeinschaft nützen können, schreibe doch einfach ein Kommentar und teile deinen Filter mit uns!

Foto des Autors
Autor
Simon
Gründer von morpheus42, ESM Senior Consultant, Kaffee-Suchtie & Smart Home Fanatiker. A wise man once said: "Have you cleared the Cache?"

Abonnieren
Benachrichtige mich bei
guest
3 Comments
Oldest
Newest Most Voted
Inline Feedbacks
Alle Kommentare anzeigen
Send this to a friend