Attribut Join

images/download/attachments/167859883/image-2024-1-25_12-22-21-version-1-modificationdate-1706181741033-api-v2.png

Ein Attribut Join liefert analog zur Attributprojektion ausgehend von der Haupt-Entität der Suche oder einem abweichenden Attributbesitzerpfad alle oder ausgewählte Attributwerte des per Parameter Attribut ausgewählten Attributtyps.

Die Einsatzmöglichkeiten für den Attribut Join im Kontext unterschiedlicher Attributtypen verdeutlicht die folgende Fallunterscheidung:

Kardinalität
des Attribut-/Subtyps ↓

Attributtyp ist
nicht-typisiert

Attributtyp ist typisiert

konkreter
Subtyp

alle
Subtypen

"singulär" (≤1)

Standardzugriff:
Singuläres-Attribut-Join

(Attribut Join anwendbar aber kein Mehrwert)


Standardzugriff:
Typisiertes-Attribut-Join

(Attribut Join mit Join Bedingung für den (Sub-)Typ einsetzbar)

Ein Attribut Join wertet Instanzen für alle singulären und pluralen Subtypen aus und liefert als Rückgabewert eine "flache" Liste, auf die Projektionen zugreifen können.

"plural" (≥1:)

Attribut Join ist der Standardzugriff

  • Ein nicht-typisiertes Singuläres Attribut ist als Attribut auswählbar. Technisch bietet ein Attribut Join also Zugriff auf den Wert eines Singulären Attributs. Der Singuläres-Attribut-Join liefert allerdings dasselbe Ergebnis.

  • Für ein nicht-typisiertes Plurales Attribut, z. B. die "Kommunikationsinformation" (AddressCommunicationInfo) für den Entitätstyp "Adresse" (Address), stellt ein Attribut Join den Standard-Join dar.

  • Bezieht sich die Attribut-Auswahl auf einen Attributtyp aus der Gruppe der Typisierten Attribute (z. B. "Textattribut" oder "Firmen- und Adressattribut"), liefert der Attribut Join die Attributwerte aller singulären und pluralen Subtypen als "flache Liste".

    • Die Typisierten Attribute mit pluralem Subtyp erscheinen im Rückgabewert also nicht "gruppiert" bzw. "gebündelt" je Attributbesitzer und Subtyp, sondern als individuelle Attributwerte (mit demselben Subtyp aber unterschiedlichem index-Wert.

Im Unterschied zur Attributprojektion kann die Liste der Rückgabewerte für einen Attribut Join durch eine Join Bedingung auf eine Teilmenge eingeschränkt werden.

Konfiguration

Parameter

Datentyp

Beschreibung

Spezifische Parameter

Attributbesitzerpfad

Entität
(Projektion)

Ein Attributbesitzerpfad muss nur explizit durch die Konfiguration einer Projektion (s. Projektionen) definiert werden, wenn die Entität im Kontext der Suche nicht der Besitzer der Attribute ist, die ausgewertet werden sollen.

Dies ist z. B. in den folgenden Fällen relevant:

  • Der Attributbesitzer ist eine per Datenobjekt Join in die Suche einbezogene Entität.

  • Der Attributbesitzer ist eine Position einer Entität im Kontext der Suche.

  • Beim Attributbesitzer handelt es sich um eine in die Daten der Entität im Kontext der Suche eingebettete Entität, z. B. die "Adresse" (address) eines Kontos (s. Benutzer, Firmen).

Attribut

Klasse
(Attributtyp)

Im Auswahlfeld/Combobox-Element für den Parameter Attribut muss eine Auswahl aus den per Dropdown angebotenen Optionen für den Attributtyp erfolgen. Hier stehen nur die Attributtypen zur Auswahl, die der Entitätstyp des anwendbaren Attributbesitzers per Implementierung unterstützt.

HINWEIS◄ Stehen für das Attribut keine Optionen zur Auswahl oder werden Optionen vermisst, dann wurde eventuell versäumt den Attributbesitzerpfad passend zu setzen (z. B. die "Adresse" eines Kontos, für das keine Attribute implementiert sind).

Generische Parameter

Join Alias, Join Typ, Optional, Join Bedingung

s. Datenobjekt Join

Beispiele

Typischer Anwendungsfall: Selektiver Zugriff auf Plurales Attribut

Eine CSV Suche für Benutzer soll je "Benutzername" (username) E-Mail-Adressen auflisten, die für diesen Benutzer über das plurale Attribut "Kommunikationsinformation" der Adresse des Benutzers angegeben sind.

Falls für einen Benutzer mehrere "Kommunikationsinformationen" mit dem Kommunikationstyp "E-Mail" (EMAIL) vorliegen, sollen diese zeilenweise (als mehreren Zeilen für denselben Benutzer) ausgegeben werden.

Sofern im "Kommunikationsinformation"-Attribut ein "Kontext" (communicationContext) angegeben ist, soll dieser Textwert in der Ausgabespalte (CONTEXT) erscheinen.

Konfiguration:

Innerhalb einer CSV Suche für Benutzer wird der rechts abgebildete Attribut Join erstellt:

  • Der Attributbesitzerpfad verweist per Feldprojektion auf das Feld "Adresse" (address) des Benutzerkontos.

  • Als Join Alias ist willkürlich der Name email zugewiesen.

  • Der Join Typ "Left" stellt sicher, dass im Ergebnis auch Benutzer erscheinen, in deren "Kommunikationsinformationen" keine E-Mail-Adresse angegeben ist.

  • Die Optional-Option ist unerheblich, solange sich mindestens eine Projektion für eine Ausgabespalte auf den Alias email bezieht.

  • In der Join Bedingung sorgt eine Feld Einschränkung, dass der Attribut Join email nur "Kommunikationsinformation"-Instanzen zuordnet, die sich im Feld "Typ" (communicationType) auf den Kommunikationstyp "E-Mail" (EMAIL) beziehen.

images/download/attachments/167859883/image-2024-1-25_14-42-32-version-1-modificationdate-1706190152659-api-v2.png


Die Ausgabespalten werden durch drei Instanzen der Feldprojektion definiert:

  • Das Feld "Benutzername" (username) kann dem Benutzerkonto direkt entnommen werden.

  • Über den Alias email werden aus dem Attributwert die Felder "Wert" (communicationValue) und "Kontext" (communicationContext) gelesen.

images/download/attachments/167859883/image-2024-1-25_14-56-29-version-1-modificationdate-1706190989742-api-v2.png

Laufzeitbeispiel:

username,email.communicationValue,email.communicationContext
============================================================
jbond,jb007@mi6.uk,LOGIN
jbond,info@mi6.uk,AOB
mpolo,marco.polo@historyhas.it,ALERTS
mpolo,sales@historyhas.it,AOB
fbeutel,frank.beutel@acme.de,ALERTS
fbeutel,frank.beutel@acme.de,
esblofel,ernst@blofel.de,BLACKMAIL
esblofel,stavro@blofel.de,RANSOM
esblofel,info@blofel.de,AOB
...

Besonderer Anwendungsfall: Zugriff auf mehrere Subtypen eines Typisierten Attributs

Über die Firmenadresse (als Attributbesitzer) können einem Firmenkonto "Adresskontakte" zugeordnet werden. Die betreffenden Daten sind wiederum Adressen, die als Typisiertes Attribut des Typs "Adresskontakt" (AddressContact) behandelt werden, wobei ein Kontakttyp zugewiesen wird. Ener Tupel-Suche für Firmen soll mit den Adressdaten von allen Adresskontakten angereichert werden, deren Kontakttyp entweder "Geschäfftsführer" (CEO) oder "Mitarbeiter" (EMPLOYEE) ist.

Konfiguration:

images/download/attachments/167859883/image-2024-1-25_16-40-38-version-1-modificationdate-1706197238228-api-v2.png

Der oben abgebildeten Attribut Join stellt die gewünschten Adresskontakte über die folgende Parametrierung bereit:

  • Der Attributbesitzerpfad greift über eine Feldprojektion auf das Feld "Adresse" (address) des Firmenkontos zu.

  • Im Parameter Attribut ist der Attributtyp "Adresskontakt" (AddressContact) ausgewählt.

  • Als Join Alias ist willkürlich der Name staff zugewiesen.

  • Der Join Typ "Inner" stellt sicher, dass nur Firmen berücksichtigt werden, für die mindestens ein Adresskontakt vorliegt.

  • Die Option Optional ist unerheblich, da sich Projektionen für Ausgabespalten (s. unten) den Alias staff adressieren.

  • Die Join Bedingung verwendet eine Such-Verknüpfung, die zwei Instanzen der Feldprojektion ver-ODER-t:

    • Die erste Feldprojektion stellt fest, ob das Feld "Typ" einer Adresskontakts als Kontakttyp "Geschäftsführer" (CEO) angibt.

    • Die erste Feldprojektion stellt fest, ob das Feld "Typ" einer Adresskontakts als Kontakttyp "Mitarbeiter" (EMPLOYEE) angibt.

Die Ausgabespalten werden wie rechts abgebildet durch drei Instanzen der Feldprojektion definiert:

  • Zur Identifikation der Firma wird in der ersten Feldprojektion das Feld "Name" aus der Firmenadresse (address.name1) ausgegeben.

  • Die zweite Feldprojektion gibt den Kontakttyp aus dem Feld "Typ" des Adresskontakts aus dem Alias staff aus.

  • Die dritte Feldprojektion liefert das komplette Adresse-Entität aus dem contactAddress-Feld des Adresskontakt-Attributs, sodass im Ergebnis der Tupel-Suche alle Details des Kontakts enthalten sind.

images/download/attachments/167859883/image-2024-1-25_16-41-32-version-1-modificationdate-1706197292280-api-v2.png