Der FindEntityAttribute-Präprozessor dient zum Zugriff auf die ID oder einen anderen Wert einer Entität in einem Import für eine andere Entität, der einem bestimmten Zielattribut (XML-Attribut) der importierten Entität als Wert zugewiesen werden soll.
Der Präprozessor muss dazu innerhalb des XML-Knotens der Objektstruktur platziert werden, deren Attribut er setzen soll. Er enthält einen search-Knoten, der als Suche oder Tupel-Suche ausgeprägt werden kann.
Aus einer Suche wird immer die ID (
id) als Wert für das Zielattribut übernommen.Um einen anderen Wert als die ID (
id)zuzuweisen, kann anstelle des KnotensISearchProjectiongenau eine Projektion angegeben werden, um eine einspaltige Tupel-Suche zu definieren.
In beiden Fällen definiert das erste Egebnis den Wert des Zielattributs.
Die folgende Struktur kann ausgehend von der Vorlage preProcessor:FindEntityAttribute (s. Orchestration-Vorlagen) direkt an der gewünschten Position einer Import-Struktur eingebunden werden.

Parameter | Typ | Bedeutung | Inhalt (Fixwert/Beispiel) |
|---|---|---|---|
| String-Attribut | Typ des Preäprozessors |
|
| String-Attribut | Entitätstyp für die auszuführende Suche |
|
| String-Attribut | Name des Zielattributs, dessen Wert gesetzt werden soll |
|
| Unterknoten | definiert eine Suche für den per | s. Beispiel unten |
Beispiel:
Für die Firma "MY COMPANY" soll per Single-Import ein Gastbenutzer (s. Gastbenutzer) erstellt werden, für den das Firmenkonto als Besitzer (ownerId) gelten soll, das auch die "MY COMPANY" besitzt.
<?xml version="1.0" encoding="UTF-8"?>
<core:Import ... xmlns:base="SCM.BASE" action="CREATE">
<base:GuestUser loginToken="DEMO_GUEST_USER_TOKEN" active="true" locale="de" roleId="2201" maxLogins="3" loginCount="0"
emailAddress="user@madeup.compa.ny" maxConcurrentSessions="1">
<!-- Firmenkonto für den Gastbenutzer als Attribut companyId zuordnen -->
<preProcessor xsi:type="core:FindEntityAttribute" type="base:CompanyAccount" targetAttribute="companyId">
<search>
<core:SimplePropertySearch projection="address.name1" compareType="==" stringValue="MY COMPANY"></core:SimplePropertySearch>
</search>
</preProcessor>
<!-- Dessen Besitzer auch als Besitzer des Gastbenutzerkontos per Attribut ownerId zuordnen -->
<preProcessor xsi:type="core:FindEntityAttribute" type="base:CompanyAccount" targetAttribute="ownerId">
<search>
<core:SimplePropertySearch projection="address.name1" compareType="==" stringValue="MY COMPANY"></core:SimplePropertySearch>
<core:PropertyProjection property="ownerId"></core:PropertyProjection>
</search>
</preProcessor>
</base:GuestUser>
</core:Import>Der erste Präprozessor führt eine Suche nach einem Firmenkonto aus, dessen Name (
address.name1) "MY COMPANY" lautet. Dessen ID (id) wird dem Firma-Feld (XML-AttributcompanyID) für den Gastbenutzer zugewiesen.Der zweite Präprozessor führt eine Tupel-Suche nach einem Firmenkonto mit denselben Kriterien aus, spezifiziert aber eine Projektion für das Besitzer-Feld (
ownerId). Diese wird dem Besitzer-Feld (XML-AttributownerId) für den Gastbenutzer zugewiesen.