Profilaufruf

Wertauflöser - Kurzfassung

Zweck: Wandelt die Daten des Eingabewerts in ein "Server XML" um, das in einem synchronen Profilaufruf an das per Profilname identifizierte Lobster_data-Profil übergeben wird.

Siehe auch: Profil aufrufen (Ereignisaktion)

images/download/attachments/201662293/image-2025-3-14_10-2-38-version-1-modificationdate-1741942957742-api-v2.png

Der Profilaufruf-Wertauflöser wandelt die Daten seines Eingabewerts in ein "Server XML" um (s. Server XML aus Objekt erzeugen), um sie an das per Profilname identifizierte Lobster_data-Profil zu übergeben.

  • Optional können beim Profilaufruf die Werte von MSG_CALL-Variablen über Wertauflöser festgelegt werden (Details s. "Konfiguration").

Der Aufruf des Profils erfolgt grundsätzlich synchron. Der Verarbeitungskontext des Wertauflösers wird also unterbrochen, bis das aufgerufene Profil abgearbeitet ist.

  • Falls das aufgerufene Profil nicht existiert, wird der Verarbeitungskontext mit einer Fehlermeldung ("Failed to call profile ...") abgebrochen, was einen Rollback für die ggf. umgebende Transaktion bedingt.

  • Falls das aufgerufene Profil existiert aber nicht "freigeschaltet (aktiv)" ist, wird der Verarbeitungskontext sofort fortgesetzt. Der Wertauflöser gibt dann "Kein Wert" zurück.

  • Falls ein Fehler während der Ausführung des aufgerufenen Profils auftritt bzw. gezielt ausgelöst wird, wird der Verarbeitungskontext abhängig von der Auswahl für die Option Bei Profilfehler abbrechen? abgebrochen oder (mit "Kein Wert" als Rückgabewert des Wertauflösers) fortgesetzt.

Ein Rückgabewert vom Profil kann optional berücksichtigt werden, sofern das Profil einen aktiven Antwortweg für Lobster Data Platform / Orchestration - z. B. per CronPassBackDataResponse (_data-Responder) - bedient.

Der Wertauflöser liefert abhängig von seiner Parametrierung über die Optionen Ergebnis parsen und Als String verwenden - ggf. im Zusammenspiel mit weiteren Details innerhalb der Profilkonfiguration - einen der folgenden Datentypen als Rückgabewert:

  • Aktionsereignis-Inhalt, z. B. mit den Binärdaten einer als Zieldatei des Profils gelieferten Grafik oder Datei (im Feld body)

  • Ein Datenobjekt, das durch "Parsen" einer "Server XML"-Zieldatei des Profils erzeugt wird (s. Objekt aus Server XML erzeugen).

  • Text (String), der entweder direkt aus der vom Profil zurückgegebenen Zieldatei oder dem daraus geparsten Datenobjekt gewonnen wird.

images/s/-95e2zf/9012/8yg2g7/_/images/icons/emoticons/warning.svg ACHTUNGimages/s/-95e2zf/9012/8yg2g7/_/images/icons/emoticons/warning.svg Rein technisch kann der Profilaufruf-Wertauflöser wie jeder andere Wertauflöser an allen Positionen in Konfigurationen eingesetzt werden, an denen ein "Wert" aufgelöst werden soll. Allerdings ist mit Blick auf die Performance die Verwendung in Zusammenhängen Vorsicht geboten, in denen der betreffende Wert besonders häufig "aufgelöst" werden muss. Dies betrifft besonders die Definition von Zuordnungskriterien, die nicht als Logikbaustein (s. Zuordnungskriterien als Logikbausteine) konfiguriert sind und deshalb vom System typischerweise mit sehr hoher Frequenz ausgewertet werden.

Besonderer Anwendungsfall: Aktualisieren einer als Eingabewert übergebenen Entität

Sofern als Eingabewert für den Wertauflöser eine "Entität" als Datenobjekt vorliegt, kann eine geeignete XML-Zielstruktur analog zur bei einem Import anwendbaren Logik als Aktualisierung für diese Entität interpretiert werden. Ob dieser Mechanismus greift oder nicht, hängt von der Auswahl für die Option Ergebnis parsen - ggf. im Zusammenspiel mit den Profilvariablen VAR_PROCESS_XML und VAR_APPLY_TO_INPUT - mit der folgenden Fallunterscheidung ab:

Option "Ergebnis parsen"

VAR_PROCESS_XML

VAR_APPLY_TO_INPUT

Wirkung für Eingabewert (Entität)

Rückgabewert (Hinweis unten beachten!)

images/s/-95e2zf/9012/8yg2g7/_/images/icons/emoticons/check.svg Ergebnis parsen


(Haken) truebzw.
leer oder nicht verwendet

(Haken) truebzw.
leer oder nicht verwendet

Aktualisierung
anhand der Zielstruktur

aktualisierte Entität (geparst)

(Fehler) false

Eingabewert unverändert

Zielstruktur (als Entität geparst)

(Fehler) false

unerheblich

Eingabewert unverändert

images/s/-95e2zf/9012/8yg2g7/_/images/icons/emoticons/error.svg Ergebnis nicht parsen

(Haken) true

(Haken) true

Aktualisierung
anhand der Zielstruktur

Zielstruktur als Text(datei)
im body eines "Aktionsereignis-Inhalt"-Objekts

alle abweichenden Kombinationen

Eingabewert unverändert

HINWEIS◄ Wenn die Option Als String verwenden gesetzt ist, dann wird der in der Tabelle angegebene Rückgabewert nachträglich in einen String umgewandelt:

  • Anstelle einer Entität erscheint dann deren String-Umwandlung, also z. B. 5751:de.lobster.scm.order.bto.Order@658e4a20 für das Datenobjekt einer "Bestellung" mit der ID 5751 (und der Java Object Id 658e4a20).

  • Die String-Umwandlung für ein "Aktionsereignis-Inhalt"-Objekt, das im body den base64-codierten Text einer Zielstruktur enthält, liefert das "Server XML" für die Zielstruktur (und nicht etwa für die aktualisierte Entität).

WICHTIG◄ Während durch einen Import die aktualisierte Entität implizit gespeichert wird, betrifft eine Aktualisierung über den Profilaufruf-Wertauflöser nur das volatile Datenobjekt der betreffenden Entität. Falls ein Profilaufruf-Wertauflöser innerhalb der "Prüfenden Regel" einer Ereignisbehandlung eingesetzt wird, ist der der aktualisierte Stand ausschlaggebend für alle ggf. nachfolgenden Regeln und auch die bei bestandener Prüfung ausgeführten Ereignisaktionen. Ob die Aktualisierung gespeichert und damit dauerhaft wirksam wird, hängt dagegen vom weiteren Kontext des Aufrufs ab. Innerhalb einer Ereignisbehandlung kann die betreffende Entität bei Bedarf über die Ereignisaktion Änderungen später speichern zum Speichern beim erfolgreichen Abschluss der Transaktion vorgemerkt werden.

Zuweisungen an MSG_CALL-Variablen im Profil:

Informationen zum anwendbaren Anmeldekontext (Firma, Rolle, Benutzer) werden - wie bei Profilaufrufen aus Lobster_pro üblich - automatisch den in Profilen vordefinierten MSG_CALL-Variablen zugewiesen. Diese werden zur Laufzeit abhängig von den Anmeldedaten der Sitzung sowie ggf. unter Berücksichtigung von Anpassungen durch die Ereignisaktion Ausführen als automatisch mit Werten befüllt:

Datenobjekt

Wert

Variablenname
(in Lobster_data)

Datentyp
(in Lobster_data)

Firma der Session

ID (id) des Firmenkontos

MSG_CALL_SCM_Company_id

BigInteger

Datenobjekt Firmenkontos als XML (Text)

MSG_CALL_SCM_Company_xml

String

Rolle der Session

ID (id) der Rolle

MSG_CALL_SCM_Role_id

BigInteger

Benutzer der Session

ID (id) des Benutzerkontos

MSG_CALL_SCM_User_id

BigInteger

Benutzername (username)

MSG_CALL_SCM_User_username

String

Datenobjekt des Benutzerkontos als XML (Text)

MSG_CALL_SCM_User_xml

String

Optional können für weitere Variablen Wertzuweisungen zur Übergabe zusätzlicher Daten an das aufgerufene Profil konfiguriert werden.

Konfiguration

Im Parameter Profilname muss das aufzurufende Profil durch eine statische Direkteingabe oder die Auswahl eines Eintrags aus der über die beim Eingeben per "Autovervollständigung" aktivierten Dropdown-Liste identifiziert werden.

HINWEIS◄ Eine Zugriffskontrolle für Profile auf der Basis von Profilsicherheiten ist dabei im Unterschied zum Aufruf von Profilen im Kontext von Formularen nicht gewährleistet. Alle verfügbaren Profile können ausgewählt und ausgeführt werden.

images/download/attachments/201662293/image-2025-3-14_10-8-12-version-1-modificationdate-1741943291825-api-v2.png

Die Option Bei Profilfehler abbrechen? entscheidet, wie die Ereignisverarbeitung auf einen Fehler beim Ausführen des Profils reagiert:

  • Wird die Option Bei Profilfehler abbrechen? ausgewählt, dann führt ein Fehler, der während der Profilausführung auftritt oder ausgelöst wird, zu einer ProcessException im Verarbeitungskontext des Wertauflösers. Innerhalb von Ereignisbehandlungen bewirkt das neben der Ausgabe einer Fehlermeldung immer auch einen Rollback für die aktuelle Transaktion, sofern im Kontext des Wertauflösers Fehler nicht gezielt abgefangen (Try-Catch-Aktion) oder pauschal ignoriert (z. B. bei der Definition von Anhängen in einer E-Mail-Versand-Ereignisaktion) werden.


  • Ist die Option Bei Profilfehler abbrechen? abgewählt (Standard), dann führt das Auftreten bzw. Auslösen eines Fehlers im Zuge der Profilausführung nicht zu einem Abbruch.

  • Der Rückgabewert des Wertauflösers im Fehlerfall hängt von der Herkunft des Fehlers (s. Hinweise rechts) und der Auswahl für die Optionen Ergebnis parsen und Als String verwenden ab.

images/download/attachments/201662293/image-2025-3-14_10-8-46-version-1-modificationdate-1741943325847-api-v2.png

Hinweise zur Fehlerbehandlung:

  • Falls im Zuge eines Profilaufrufs eine ProcessException auftritt oder ausgelöst wird, lautet die Fehlermeldung immer "Failed to call Profile: (...)". Details zur Fehlerursache sind im erzeugten Fehlerbericht unter "Caused by (...)" nachzulesen

  • Der Fehlerbericht für eine ProcessException kann im Meldungsdialog wahlweise heruntergeladen oder per Klick auf "Mehr" eingeblendet und ggf. mit der Browser-Suche ausgewertet werden.


images/download/attachments/201662293/image-2025-3-14_10-9-6-version-1-modificationdate-1741943346335-api-v2.png

Hinweise zur Fehlerbehandlung:

  • Fehler während der Profilausführung werden ignoriert. Allerdings kann eine ProcessException (ggf. mit Rollback) auftreten, z. B. falls das adressierte Profil nicht existiert.

  • Falls laut Konfiguration als Rückgabewert des Wertauflösers ein "Aktionsereignis-Inhalt" erwartet wird (Optionen Ergebnis parsen und Als String verwenden abgewählt), liefert der Wertauflöser im Fehlerfall ein "leeres" Datenobjekt dieses Typs, dessen Felder den Wert null ("kein Wert") enthalten aber nicht insgesamt "kein Wert" (null). Ein Standardwert-Wertauflöser kann daher nur mit Bezug zu einem Feld (z. B. body) eingesetzt werden, um einen Standard-Rückgabewert für den Fehlerfall zuzuweisen. Ist die Option Als String verwenden ausgewählt, liefert der Wertauflöser per Standard die String-Umwandlung des body-Werts, so dass im Fehlerfall "kein Wert" (null) zurückgegeben wird. Dann greift ein Standardwert-Wertauflöser auch ohne expliziten Bezug zu einem Feld des "Aktionsereignis-Inhalt"-Objekts.

  • Falls als Rückgabewert ein "Objekt" erwartet wird (Option Ergebnis parsen ausgewählt), dann hängt der Typ des Rückgabewerts davon ab, wie der Fehler während der Profilausführung zustande kam:

    • Tritt in einer der Phasen beim Ausführen des Profils ein für Lobster_data definierter Fehler auf oder wird im Mapping eine Funktion wie throw exception ausgeführt, dann wird ein spezifisches Fehlerobjekt an Lobster_pro zurückgegeben. Lobster Data Platform / Orchestration identifiziert diesen Fehlertyp nach dem Parsen zwar per entityClass-Variable. Eine spezifische Typprüfung wird für die betreffenden Objekttypen allerdings nicht unterstützt.

    • Ein Profilabbruch kann allerdings auch ausgelöst werden, indem die XML-Struktur eines "Fehlerreaktion"-Objekts (ErrorResponse) der Profilvariablen VAR_ERROR_RESPONSE zugewiesen wird. Dann gibt der Parser im Wertauflöser dieses Objekt zurück, was per Typprüfung festgestellt werden kann.

Die Option Ergebnis parsen legt fest, dass als Rückgabewert des Profils ein Text im XML-Format erwartet wird, der in Lobster Data Platform / Orchestration als "Server XML" eines Objekts interpretiert werden kann.

  • Sofern sich die Eingangsdaten für das Profil auf eine in Lobster Data Platform / Orchestration definierte Entität beziehen, kann die Zielstruktur des Profils als Aktualisierung für die volatilen Daten dieser Entität interpretiert werden. Wie in der schematischen Tabelle oben unter "Besonderer Anwendungsfall" ersichtlich, kann eine Aktualisierung mit und ohne Auswahl der Option Ergebnis parsen genutzt werden. Die Option Ergebnis parsen wird allerdings typischerweise ausgewählt, so dass die aktualisierte Entität als Rückgabewert des Wertauflösers unmittelbar zur Verfügung steht.


  • Ist die Option Ergebnis parsen abgewählt (Standard), dann wird der Rückgabewert des Profils vom Wertauflöser wahlweise als "Aktionsereignis-Inhalt" oder als Text (s. Als String verwenden) zurückgegeben.

images/download/attachments/201662293/image-2025-3-14_10-9-27-version-1-modificationdate-1741943366979-api-v2.png

  • Wenn die Option Ergebnis parsen ausgewählt wird, sollte das Profil bei fehlerfreiem Verlauf eine XML-Zielstruktur zurückgeben, die als "Server XML" lesbar ist. Zum Aufbau einer geeigneten Zielstruktur stehen Lobster_pro Vorlagen (z. B. DEFAULT:list für eine "Liste") bereit. Außerdem spiegeln die Eingangsdaten eines per Profilaufruf adressierten Profils die "Server XML"-Struktur des zugehörigen Eingabewerts wider.


images/download/attachments/201662293/image-2025-3-14_10-9-45-version-1-modificationdate-1741943385113-api-v2.png

  • Liefert das aufgerufene Profil Binärdaten (z. B. den Inhalt einer Grafik oder einer spezifischen Anwendungsdatei), sollte die Option Ergebnis parsen abgewählt sein.

Die Option Als String verwenden entscheidet darüber, ob der Rückgabewert des Wertauflösers die aus dem Profilaufruf gewonnenen Daten direkt oder als Text aufbereitet zurückgeben soll.

  • Wird die Option Als String verwenden ausgewählt, gibt der Wertauflöser die String-Umwandlung des eigentlichen Rückgabewerts zurück.


  • Ist die Option Als String verwenden abgewählt (Standard), werden die Daten (ein geparstes Datenobjekt oder die Binärdaten aus dem Profil als body eines "Aktionsereignis Inhalt"-Objekts) direkt als Rückgabewert verwendet.

images/download/attachments/201662293/image-2025-3-14_10-10-9-version-1-modificationdate-1741943408613-api-v2.png

  • Wird die Option Als String verwenden ausgewählt, können Daten aus dem Profil in Lobster Data Platform / Orchestration als Textwert angezeigt, zugewiesen oder z. B. per Verkettung mit anderen Wertauflösern weiter verarbeitet werden.


images/download/attachments/201662293/image-2025-3-14_10-10-23-version-1-modificationdate-1741943422973-api-v2.png

  • Liefert das aufgerufene Profil Binärdaten (z. B. den Inhalt einer Grafik oder einer spezifischen Anwendungsdatei), sollte die Option Als String verwenden abgewählt sein.

Im Bereich Variablen können über die Symbole images/s/-95e2zf/9012/8yg2g7/_/images/icons/emoticons/add.svg und images/s/-95e2zf/9012/8yg2g7/_/images/icons/emoticons/forbidden.svg Zuweisungen von Werten an Profilvariablen hinzugefügt oder entfernt werden. Je Variable sind folgende Angaben vorgesehen:

  • Ein Variablenname (Pflichtfeld) muss angegeben werden. Dem angegebenen Namen wird im Profil das Präfix MSG_CALL_ vorangestellt. Entsprechende Variablen (im abgebildeten Fall z. B. MSG_CALL_FILENAME_PREFIX) müssen im aufgerufenen Profil explizit angelegt sein, damit ein Wert zugewiesen wird.

  • Als Wert (Pflichtfeld) muss ein Wertauflöser konfiguriert werden, dessen Auswertung zur Laufzeit den Wert für die adressierte Profilvariable bestimmt.

  • Die Option Als Datei übergeben erscheint, falls sich die Konfiguration für den Wert auf einen Datentyp (wie "Aktionsereignis-Inhalt") bezieht, für den anstelle einer direkten Zuweisung wahlweise eine Referenz auf eine Temporärdatei übergeben werden kann, die nach dem Profilaufruf automatisch gelöscht wird.

images/download/attachments/201662293/image-2025-3-14_10-14-13-version-1-modificationdate-1741943652898-api-v2.png