Profil aufrufen
Siehe auch: Element validieren und Profil aufrufen
Das Verhalten Profil aufrufen übergibt Daten aus einem Formular an ein Lobster_data Profil und/oder verarbeitet ggf. zurückgelieferte Daten im Kontext des Formulars.
Das Verhalten Profil aufrufen übergibt Daten aus einem Formular an ein Lobster_data Profil und/oder verarbeitet ggf. zurückgelieferte Daten im Kontext des Formulars.
Ist das Verhalten mit einem Element verknüpft (s. Verhalten für Details) so werden die Daten dieses Elements an das angegebene Profil übergeben.
Um die Daten des gesamten Formulars übergeben zu können, muss explizit das Formular verknüpft werden (Standardkonfiguration).
Existiert keine Elementverknüpfung, so werden die Daten aus dem Kontext des auslösenden Ereignisses an das Profil übergeben. Im Falle einer Verhalten ausführen-Aktion, werden analog dazu die entsprechenden Daten des aufrufenden Verhaltens übergeben.
Hinweis: Ab Lobster_data 4.6 können Profile auch direkt bearbeitet oder erstellt werden (siehe auch _data Profil erstellen Dialog).
Ist kein Ausdruck für Dateiname angegeben, so wird der "Verhaltensname" als Dateiname verwendet. Ansonsten wird der hier ermittelte Textwert angewendet. Die Eingabe daten entsprechen den Daten welche an das Profil gesendet würden, noch bevor der Ausdruck für Datenquelle angewendet wurde.
Über den Ausdruck für Datenquelle können optional die zu sendenden Daten ermittelt werden. Ist kein Wert konfiguriert, so werden die Daten direkt an das Profil gesendet.
Beispiel:
Verhaltensname |
Eingabedaten |
Ausdruck für Dateiname |
Ausdruck für Datenquelle |
Gesendeter Dateiname |
Gesendete Daten |
Hochladen |
{ "name" : "image.jpg" , "content" : "RGFzIGlzdCBrZWluIGVjaHRlcyBCaWxk...." } |
|
|
Hochladen |
{ "name" : "image.jpg" , "content" : "RGFzIGlzdCBrZWluIGVjaHRlcyBCaWxk...." } |
Hochladen |
{ "name" : "image.jpg" , "content" : "RGFzIGlzdCBrZWluIGVjaHRlcyBCaWxk...." } |
{name} |
{content} |
image.jpg |
"RGFzIGlzdCBrZWluIGVjaHRlcyBCaWxk...." |
Hochladen |
{ "name" : "image.jpg" , "content" : "RGFzIGlzdCBrZWluIGVjaHRlcyBCaWxk...." } |
{name} |
|
image.jpg |
{ "name" : "image.jpg" , "content" : "RGFzIGlzdCBrZWluIGVjaHRlcyBCaWxk...." } |
Die Daten werden dann wahlweise als XML, Text oder JSON, angereichert mit Variablen, an das Profil übergeben. Wie die übergebenen/zurückgelieferten Daten zu interpretieren sind, wird über die Einstellungen für Encoder und Decoder konfiguriert.
Encoder / Decoder |
Beschreibung |
SERVER |
Das Datenelement wird an den Server geschickt, der daraus ein Export-XML erzeugt und an das Profil weitergibt. |
CLIENT |
Auf dem Client wird aus dem Datenobjekt ein XML erzeugt (Browser-Funktionalität). Dieses XML ist nicht konform mit dem Export-XML und auch nicht "typsicher". |
JSON |
Das Datenelement wird an den Server geschickt, der aus dem Objekt einen Text im JSON-Format erzeugt und an das Profil weitergibt. |
TEXT |
übergibt die Daten als reinen Text an das Profil |
STATIC_TEXT |
übergibt einen statisch definierten Text an das Profil |
CSV (nur Decoder) |
Parst den vom Profil zurückgelieferten Text als CSV (Comma separated values). Die erste Zeile definiert dabei die Datenfelder der separierten Werte. |
Liefert das Profil Daten zurück (s. eigener Abschnitt unten), so könnten diese von den Aktionen des Verhaltens ausgewertet werden. Die Daten können z. B. mit der Aktion Elementdaten setzen auf einen Container gesetzt werden.
Rückgabewert als Download
Wird die Option Als Download gesetzt, dann werden die Daten, die das Profil liefert, an den Browser für einen Download übergeben.
Im Profil können zwei Variablen definiert werden, die ausgewertet und im Header des Download-Request gesetzt werden:
Variable VAR_CONTENT_TYPE
Mit der Variablen VAR_CONTENT_TYPE kann der Content-Type direkt gesetzt werden. Für einen Download einer Excel-Datei kann z. B. der Wert application/octet-stream verwendet werden.
Wird nichts angegeben, dann wird der Default-Wert application/xml gesetzt, und dann versucht der Browser die Datei als xml zu interpretieren.
Das Verhalten (Download oder direktes Öffnen im Browser) kann für die verschiedenen Content-Types im Browser konfiguriert werden.
Beispiele für gültige Content-Types
Content-Type |
Dateityp |
application/pdf |
PDF-Datei |
application/rtf |
Rich-Text- Datei |
text/plain |
Text-Datei |
text/html |
HTML-Datei |
application/octet-stream |
Datei für den Download. z. B. für docx, xlsx ... |
Variable VAR_RESPONSE_FILENAME
Ist diese Variable gesetzt, wird beim Download der Inhalt der Variablen als Dateiname verwendet.
Ist die Variable VAR_CONTENT_TYPE nicht gesetzt, dann wird versucht über die Dateierweiterung einen Content-Type zu ermitteln.
Zuweisungen an 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 |
Außerdem können über den Button Variablen benutzerdefinierte Variablen Werte zugewiesen werden:
Im Lobster_data-Profil kann auf den Wert einer Variablen über den angegebenen Namen zugegriffen werden.
Die Werte der Variablen werden dabei als Berechnungsausdruck ausgewertet, deren Eingabewert der vom Auslöser übergebene Wert ist.
Mit den Symbolen
und
können weitere Variablen hinzugefügt oder bestehende entfernt werden.
Der Button Übernehmen speichert die Konfiguration der Variablen und schließt den Dialog wieder.
Daten vom Profil zurück liefern und verarbeiten
Damit ein Profil Daten an Lobster Data Platform / Orchestration zurückgibt, muss im Profil ein Ausgangsweg die Eigene Klasse SCM:de.lobster.scm.dw.util.CronPassBackDataResponse verwenden.
Liefert das Profil keine Daten zurück, so liefert auch das Verhalten "Profil aufrufen" den Rückgabewert "falsch" und somit werden die Aktionen bei "wahr" nicht ausgeführt.
Liefert das Profil Daten zurück, so werden diese an die Aktionen bei "wahr" übergeben. Ein klassischer Anwendungsfall hierfür ist die Aktion Elementdaten setzen.
Besondere Rückgabewerte
Boolescher Wert (true/false)
Gibt das Profil den Booleschen Wert true als statischen Text zurück, dann werden die Aktionen bei "wahr" ausgeführt.
Gibt das Profil den Booleschen Wert false als statischen Text zurück, dann werden die Aktionen bei "falsch" ausgeführt.
Fehlerantwort
Die Option Globales Fehlerhandling muss gesetzt sein, damit ein Fehler aus dem Profilaufruf in der grafischen Oberfläche an den Benutzer erscheinen kann.
Um eine Fehlerantwort direkt aus dem Profil heraus zu erzeugen, gibt es zwei grundsätzliche Möglichkeiten:
Verwenden der throw exception _data-Funktion in der Mapping-Phase des _data-Profils
Erzeugen einer ErrorResponse-Struktur als Rückgabewert des _data-Profils
Für die zweite Variante bietet Lobster_data eine Strukturvorlage für die Zielstruktur im Mapping an: Lobster SCM / core:ErrorResponse.
Das _data-Profil muss dann als Integration Unit (IU) die XMLNoTemplateUnit verwenden.
Als Decoder muss in der Konfiguration des .Profil aufrufen v4.12.0-Verhaltens für diesen Zweck "SERVER" ausgewählt sein.
►ACHTUNG◄ Als Root-Knoten zum Generieren des XMLs muss der ErrorResponse-Knoten angegeben sein!
Die per Vorlage bereitgestellte ErrorResponse-Struktur bietet folgende Felder an:
Feldname |
Beschreibung |
||||||||||||||||||||||||
errorCode |
frei definierbarer Fehlercode zur Identifizierung des Fehlers. Standard ist "0" |
||||||||||||||||||||||||
httpResponseStatus |
ein optionaler HTTP Response Status (200 für OK). Standard ist 0 |
||||||||||||||||||||||||
locale |
optional kann hier der Schlüsselwert für die Sprache festgelegt werden (z. B. de oder en_US). Als Standardwert gilt die Standardsprache des Benutzers. |
||||||||||||||||||||||||
errorText |
eine Klartextbeschreibung für den Fehler (z. B. "Etwas ist schiefgelaufen!") |
||||||||||||||||||||||||
stackTrace |
ein detaillierter Text, der zur technischen Aufklärung des Fehlers beitragen soll; typischerweise würde hier der Aufrufstapel des Programms festgehalten |
||||||||||||||||||||||||
errorType |
der Fehlertyp (z. B. Process Exception, Fatal Error, etc.) |
||||||||||||||||||||||||
requestLog |
ein Log-Ausschnitt, der im Falle einer PROCESS_EXCEPTION im Bereich "Request Log" aufgeführt wird; kann in der Regel in diesem Kontext leer gelassen werden |
||||||||||||||||||||||||
errorLevel |
der Error-Level (Zahl), der die Schwere des Fehlers angibt und die Darstellungsweise des Fehlers steuert Folgende Error-Level werden unterstützt:
|
►HINWEIS◄ Die _data Mapping-Funktion "Localization Task" kann dazu verwendet werden, um Fehlermeldungen über die Sprachverwaltung zu lokalisieren.