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.

images/download/attachments/189432203/image-2024-10-1_12-4-25-version-1-modificationdate-1727777065766-api-v2.png

  • 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.
Dieser Datentyp sollte für Lobster Data Platform / Orchestration-Typen bevorzugt verwendet werden. Für das Mapping in Lobster_data sind bereits entsprechende Strukturvorlagen hinterlegt.

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".
►HINWEIS◄
Diese Variante wird nur noch aus Kompatibilitätsgründen angeboten. Sie sollte aber nicht mehr verwendet werden.

JSON

Das Datenelement wird an den Server geschickt, der aus dem Objekt einen Text im JSON-Format erzeugt und an das Profil weitergibt.
HINWEIS◄ Das JSON-Format kann ebenfalls wie der SERVER-Datentyp verwendet werden, wenn im Root-Knoten ein Feld mit dem Namen clazz mit dem entsprechenden qualifizierten Klassennamen angelegt wird.

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
(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


Außerdem können über den Button Variablen benutzerdefinierte Variablen Werte zugewiesen werden:

images/download/attachments/189432203/image2022-7-29_8-41-55-version-1-modificationdate-1727777060231-api-v2.png

  • 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 images/s/-95e2zf/9012/8yg2g7/_/images/icons/emoticons/add.svg und images/s/-95e2zf/9012/8yg2g7/_/images/icons/emoticons/forbidden.svg 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:

  1. Verwenden der throw exception _data-Funktion in der Mapping-Phase des _data-Profils

  2. 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:

Wert

Name

Beschreibung / Ausgabe

0

SEMANTIC_EXCEPTION

ein gewöhnlicher Fehler, wie er z. B. bei Fehlbedienung durch den Benutzer durchaus zu erwarten ist ► Anzeige von errorText

1

PROCESS_EXCEPTION

ein fataler Fehler, der i. d. R. unerwartet auftritt und sämtliche oben angegebenen Details zur Analyse (z. B. durch einen Administrator) bereitstellt

2

NOTIFICATION_SUCCESS

zeigt eine als "Erfolg" gekennzeichnete Benachrichtigung, die nur den errorText wiedergibt

3

NOTIFICATION_WARNING

zeigt eine als "Warnung" gekennzeichnete Benachrichtigung, die nur den errorText wiedergibt

4

NOTIFICATION_ERROR

zeigt eine als "Fehler" gekennzeichnete Notification, die nur den errorText wiedergibt

5

NOTIFICATION_INFO

zeigt eine als "INFO" gekennzeichnete Notification, die nur den errorText wiedergibt

6

SUPPRESS

unterdrückt den Fehlers für den Benutzer komplett; der Fehler ist nur über die Entwicklerkonsole des Browsers nachvollziehbar

►HINWEIS◄ Die _data Mapping-Funktion "Localization Task" kann dazu verwendet werden, um Fehlermeldungen über die Sprachverwaltung zu lokalisieren.