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)
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.
ACHTUNG
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!) |
|
(Haken) truebzw. |
(Haken) truebzw. |
Aktualisierung |
aktualisierte Entität (geparst) |
(Fehler) false |
Eingabewert unverändert |
Zielstruktur (als Entität geparst) |
||
(Fehler) false |
unerheblich |
Eingabewert unverändert |
||
|
(Haken) true |
(Haken) true |
Aktualisierung |
Zielstruktur als Text(datei) |
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 |
Datentyp |
ID (id) des Firmenkontos |
MSG_CALL_SCM_Company_id |
BigInteger |
|
Datenobjekt Firmenkontos als XML (Text) |
MSG_CALL_SCM_Company_xml |
String |
|
ID (id) der Rolle |
MSG_CALL_SCM_Role_id |
BigInteger |
|
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. |
|
Die Option Bei Profilfehler abbrechen? entscheidet, wie die Ereignisverarbeitung auf einen Fehler beim Ausführen des Profils reagiert:
|
Hinweise zur Fehlerbehandlung:
Hinweise zur Fehlerbehandlung:
|
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.
|
|
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.
|
|
Im Bereich Variablen können über die Symbole
|
|