!--a11y-->
Das GlobalContainer-Objekt 
Mit diesem Objekt können Sie Werte zwischenspeichern, die Sie beim nächsten Aufruf einer beliebigen benutzerdefinierten Funktion des gleichen Message-Mappings wieder auslesen wollen. Beachten Sie dabei, dass die Aufrufreihenfolge von benutzerdefinierte Funktionen vorgegeben ist. Sie hängt von der Position der Zielfelder ab, denen die Funktion zugewiesen wurde.

Stellen Sie sich eine Zielstruktur im Mapping-Editor vor, bei der alle Strukturknoten ausgeklappt sind. Die Felder werden vom Wurzelknoten ausgehend von oben nach unten prozessiert.
Außerdem können Sie – ähnlich wie beim Container-Objekt - über das GlobalContainer-Objekt auf Felder des Message-Headers zugreifen.
Um ein globales Container-Objekt zu bekommen, rufen Sie die Methode getGlobalContainer() des Container-Objektes auf.
Methoden des Objekts GlobalContainer
Methode |
Verwendung |
void |
Speichert das Objekt obj unter dem Namen parName in einen globalen Container, auf den alle benutzerspezifischen Funktionen eines Message Mappings zugreifen können. |
Object |
Gibt das Objekt zurück, das über die Methode setParameter im globalen Containers unter dem Namen parName gespeichert wurde. Gibt es keinen solchen Parameter, gibt getParameter den Wert null zurück. |
Map getParameters(); |
Gibt eine Map für den Zugriff auf Felder des Message-Headers zurück. Sie greifen analog wie im Beispiel unter Das Container-Objekt beschrieben auf die Felder zu. |
Das folgende Beispiel geht nur auf die Verwendung von getParameters() ein. Der Quellcode fragt in einer benutzerdefinierten Funktion die Konstante INTERFACE_NAMESPACE ab, gibt sie über das MappingTrace-Objekt als Information aus und als Ergebnis der Funktion zurück:
GlobalContainer globalContainer;
AbstractTrace trace;
String headerField;
java.util.Map map;
// Get
trace using the container object
// (which is passed by parameter ‘container’
// to this user-defined
function)
trace = container.getTrace();
// To
get a global container, use method getGlobalContainer()
// of the container object
globalContainer = container.getGlobalContainer();
//
There are two ways of getting the runtime constant map now:
// a) by calling container.getTransformationParameters() or
// b) by calling globalContainer.getParameters().
map = globalContainer.getTransformationParameters();
// get the value for a header field
headerField = (String) map.get(
StreamTransformationConstants.INTERFACE_NAMESPACE);
// output value to trace and return it
trace.addInfo("INTERFACE_NAMESPACE:" + headerField);
return headerField;
Zur Design-Zeit haben die Konstanten der Mapping-Laufzeit noch keinen Wert. Der Mapping-Editor gibt daher in der Testumgebung nur einen Test-String für die jeweilige Konstante aus.
Siehe auch: Spezieller Zugriff auf Mapping-Laufzeitkonstanten.