core:FindEntityAttribute (Präprozessor)

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 Knotens ISearchProjection genau 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. Lobster_pro Vorlagen) direkt an der gewünschten Position einer Import-Struktur eingebunden werden.

images/download/attachments/58590324/image2020-9-28_14-8-2-version-1-modificationdate-1601294883983-api-v2.png

Parameter

Typ

Bedeutung

Inhalt (Fixwert/Beispiel)

xsi:type 

String-Attribut

Typ des Preäprozessors

core:FindEntityAttribute

type

String-Attribut

Entitätstyp für die auszuführende Suche

base:Role
targetAttribute

String-Attribut

Name des Zielattributs, dessen Wert gesetzt werden soll

role

search

Unterknoten

definiert eine Suche für den per type spezifizierten Entitätstyp

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-Attribut companyID) 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-Attribut ownerId) für den Gastbenutzer zugewiesen.