
Ein Typisiertes-Attribut-Join liefert analog zur Typisiertes-Attribut-Projektion ausgehend von der Haupt-Entität der Suche oder einem abweichenden Attributbesitzerpfad alle oder per Join Bedingung ausgewählte Attributwerte für den als Typ ausgewählten Subtyp des per Parameter Attribut ausgewählten Attributtyps.
Konfiguration
Parameter | Datentyp | Beschreibung |
|---|---|---|
Spezifische Parameter | ||
Attributbesitzerpfad | Entität | 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:
|
Attribut | Klasse | 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 Attributtypen für Typisierte Attribute 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). |
Typ | Dynamischer Aufzählungswert | Das Auswahlfeld/Combobox-Element für den Parameter Typ ermöglicht eine Einfachauswahl für einen Subtyp aus der Dynamischen Aufzählung für das ausgewählte Typisierte Attribut. ►HINWEIS◄ Die im Kontext der Konfiguration verfügbaren Optionen können durch Aufzählungsfilter eingeschränkt sein. ►ANMERKUNG◄ Rein technisch ist die Auswahl optional. Wird kein Typ ausgewählt, wird auf Attributwerte ohne Subtyp geprüft, die nicht existieren können. |
Generische Parameter | ||
Join Alias, Join Typ, Optional, Join Bedingung | ||
Beispiele
Einfacher Anwendungsfall: Zugriff auf "Geschäftsführer"-Adresskontakt(e) für ein Firmenkonto
In einer Tupel-Suche für Firmen/Mandanten soll eine Ausgabespalte Adressdetails für den Geschäftsführer angeben, soweit unter den "Adresskontakten" der Firmenadresse überhaupt ein Eintrag mit dem Kontakttyp "Geschäftsführer" (CEO) angelegt ist.
Firmen ohne Adresskontakt vom Typ "Geschäftsführer" (CEO) soll die Suche nicht als Treffer berücksichtigen.
Konfiguration:
Die rechts abgebildete Konfiguration für einen Typisiertes-Attribut-Join schafft die Grundlage für den Zugriff auf die Adressdaten des Geschäftsführers, wenn ein entsprechender Adresskontakt angelegt ist:
|
|
Wie rechts abgebildet benötigt die Tupel-Suche genau zwei Projektionen:
|
|
►HINWEIS◄ Ob eine Firma über mehrere Adresskontakte mit Kontakttyp "Geschäftsführer" (CEO) verfügen kann oder nicht, steuert die Option "Plurales Attribut" in der Definition für den Aufzählungswert. Sind mehrere "Geschäftsführer" zugeordnet, Die Tupel-Suche listet dieselbe Firma mehrfach auf, wenn mehrere "CEO-Kontakte" vorhanden sind.
Laufzeitbeispiel:
<core:TupleSearchResult maxResults="100" count="24">
<columns>
<name>address.name1</name>
<name>ceo.contactAddress</name>
</columns>
<result>
<row>
<item xsi:type="xsd:string">Mueller GmbH</item>
<item id="12314" ... salutation="MR" name1="Alfonso" name2="Romeo" name3="Dicaprio" xsi:type="base:Address">
...
</item>
</row>
<row>
<item xsi:type="xsd:string">Xflow AG</item>
<item id="22501" ... salutation="MS" name1="Wiebke" name2="Cramer" xsi:type="base:Address">
...
</item>
</row>
<row>
<item xsi:type="xsd:string">Xflow AG</item>
<item id="22501" ... salutation="MR" name1="Carsten" name2="Viereck" xsi:type="base:Address">
...
</item>
</row> ...
</result>Komplexeres Beispiel: Selektiver Zugriff auf Geschäftsführerin(nen)
Eine Variante der Tupel-Suche aus dem vorherigen Beispiel soll nur noch Adresskontakte für den Kontakttyp "Geschäftsführer" (CEO) zulassen, die über das Adressfeld "Anrede" (salutation) durch die Auswahl der Anrede "Frau" (MS) als weiblich gekennzeichnet sind.
Naheliegend wäre für diesen Zweck die folgende Join Bedingung:
Allerdings ergibt diese eine Fehlermeldung (s. a. Joins), wenn man sie im bestehenden Typisiertes-Attribut-Join (
ceo) ergänzt.
A join within a on condition is not possibleDas Problem besteht darin, dass die Join Bedingung sich auf ein Feld der "Adresse"-Entität bezieht, die das
contactAdress-Feld ins Spiel bringt.Der Zugriff auf die
contactAddressimpliziert einen weiteren Join, der explizit formuliert werden muss, damit für ihn eine Join Bedingung angewendet werden kann.
Konfiguration:
Der Typisiertes-Attribut-Join mit dem Join Alias ceo wird wie oben gezeigt (ohne Join Bedingung) beibehalten.
Der rechts abgebildete Mapped Join muss als Bezugspunkt für die Join Bedingung hinzugefügt werden:
|
|
►HINWEIS◄ Solange sich keine der Projektionen für Ausgabespalten auf den zusätzlichen Join Alias | |
Der Screenshot rechts zeigt eine Variant für die Konfiguration der Projektionen:
Mit dieser Anpassung kann für den Mapped Join die Optional-Option wieder ausgewählt werden, ohne dass der Join Typ "Inner" seine einschränkende Wirkung verliert. |
|




