XSLT-Mapping von adapterspezifischen
Attributen
Im Message-Header einer XI-Message gibt es einen Header für adapterspezifische Message-Attribute, über den Sender-Adapter zusätzliche Informationen in den Message-Header schreiben können. Auf diese Weise können Sender-Adapter Informationen in die Message schreiben, die erst zur Laufzeit bekannt sind (siehe: Adapterspezifische Attribute im Message-Header).
Um Felder dieses Headers in einem Mapping-Programm zu ändern, nutzen Sie typischerweise ein Java-Mapping-Programm (siehe auch: Java-Mapping von adapterspezifischen Attributen). Nichtsdestotrotz können Sie auch die entsprechenden Klassen als Java-Erweiterung in einem XSLT-Programm nutzen.
In diesem Beispiel werden die Java-Klassen für ein Mapping des Message-Headers für adapterspezifische Message-Attribute in einem XSLT-Programm verwendet, um den Parameter Directory des File-Adapters zu ändern. Das XSLT-Programm ist folgendermaßen aufgebaut:
...
1. Zuerst werden die notwendigen Java-Klassen als Namensräume deklariert:
¡ java.util.map, um auf die Konstanten der Mapping-Laufzeit zugreifen zu können. Der Header für die adapterspezifischen Message-Attribute ist als Map mit dem Namen DynamicConfiguration hinterlegt.
¡ com.sap.aii.mapping.api.DynamicConfiguration und com.sap.aii.mapping.api.DynamicConfigurationKey für das Mapping des Headers.
2. Der Parametername inputparam ist festgelegt und dient dazu, der Java-Laufzeit die Konstanten der Klasse StreamTransformationConstants zu übergeben.
3. Um den Header für die dynamische Konfiguration zu ändern, holt sich das XSLT-Programm die Map des Headers, legt einen Schlüssel für den Parameter Directory des File-Adapters an, holt sich den aktuellen Wert für diesen Parameter über die Methode get(), verkettet diesen Verzeichnispfad mit der XSLT-Methode concat und ersetzt den Wert über die Methode put().
XSLT-Mapping-Programm mit Java-Erweiterung
<?xml version="1.0" encoding="UTF-8"?> |