Übergebene Variablen, Listen und Maps (Profilketten und Sub-Profile)
Variablen
Präfix
Bei der ersten und zweiten (nicht der dritten!) Möglichkeit werden die Variablen des aufrufenden Profils an das aufgerufene Profil übergeben. Dabei wird aber das Präfix MSG_CALL_ hinzugefügt. Das Präfix wird allerdings nur einmal vorangestellt. Es kommt also nie zu Variablennamen mit einem Präfix MSG_CALL_MSG_CALL_.
Bei der dritten Möglichkeit (siehe dort) können Variablen über HTTP Request Header gesetzt werden.
Variablen werden auch an aufgerufene Sub-Profile übergeben.
Zugriff
Das folgende Profil kann auf diese Variablen nur zugreifen (ab Phase 1), wenn sie dort auch definiert wurden. Hat Profil 1 also eine Variable var__Test, dann wird die Variable MSG_CALL_var__Test übergeben und Profil 2 muss eine Variable MSG_CALL_var__Test definieren, um auf den Inhalt der Variable zugreifen zu können. Groß-/Kleinschreibung ist zu beachten.
Ist im Folgeprofil das Mapping deaktiviert, sind auch keine Variablen definiert. Damit kann auf keinen der Werte der Variablen des aufrufenden Profils zugegriffen werden. Werden die Variablenwerte im Folgeprofil dennoch benötigt, ohne dass dort ein Mapping erforderlich ist, muss man sich mit folgendem Vorgehen behelfen.
Mapping im Folgeprofil aktivieren.
Dummy-Mapping (z. B. nur ein Feld) erstellen.
In den Antwortwegen des Folgeprofils als Inhaltstyp wie empfangen einstellen. Der im Mapping erstellte Zielbaum wird damit ignoriert.
Namenskonflikte
Soll eine Variable über mehrere Profile per Message weitergeleitet werden, sollte darauf geachtet werden, dass alle Folgeprofile keine Variablennamen verwenden, die eines der vorhergehenden Profile verwendet, da es aufgrund des vorangestellten Präfixes MSG_CALL_ sonst zu Namenskonflikten und unkalkulierbarem Verhalten bei der Variableninitialisierung in Folgeprofilen kommen kann.
Beispiel: Profil 1 ruft Profil 2, dieses ruft wiederum Profil 3 auf. In Profil 1 gibt es eine Variable Count. Diese wird als MSG_CALL_Count an Profil 2 weitergegeben. Gibt es nun in Profil 2 auch eine Variable Count, dann wird zweimal (und möglicherweise mit unterschiedlichen Werten) die Variable MSG_CALL_Count an Profil 3 weitergegeben. Einmal die in Profil 2 angelegte Variable MSG_CALL_Count (um auf die aus Profil 1 übergebene Variable zugreifen zu können) und dann die in Profil 2 angelegte Variable Count mit dem vorangestellten Präfix MSG_CALL_.
Profil-Neudurchlauf
Wird ein Neudurchlauf für ein Profil gestartet, das Variablen von einem einem anderen Profil erhalten hat, dann sind diese verfügbar, da sie in den Metadaten gespeichert sind. Siehe auch Abschnitt Metadaten-Editor.
Listen und Maps (und Variablen in Map)
Um Listen und Maps an andere Profile zu übergeben (Phase 3), können Sie die Funktionen serialize map/list(a,b) und deserialize map/list(a,b,c) verwenden, bzw. den Autoserialisierungsmechanismus über die System-Variable VAR_AUTOSERIALIZE_DATA. Zudem kann die Funktion copy variables into map(a,b,c,d) benutzt werden, um alle Variablen des aufrufenden Profils in eine Map zu schreiben (und dann als Map zu übergeben), wodurch man sich die Verwendung des Präfixes MSG_CALL_ sparen kann.
Übergebene Variablen im Control Center überprüfen
Die an Folge- und Sub-Profile übergebenen Variablen können Sie im Control Center (siehe Abschnitte Übersicht und Fehler) über den Metadaten-Editor überprüfen.
Andere Datenstrukturen
Andere Datenstrukturen werden nicht von Profil zu Profil übergeben.
Es stehen aber systemweite Datenstrukturen zur Verfügung. Beachten Sie aber bitte, dass nur System-Konstanten in Phase 1 verfügbar sind. Systemweite Nummernkreise und systemweite permanente Werte stehen nur in Phase 3 zur Verfügung. Wollen Sie diese Werte in Phase 1 benutzen, müssen sie den Umweg über Variablen oder System-Konstanten gehen.