Show TOC Anfang des Inhaltsbereichs

Funktionsdokumentation MessageTransformBean, Migration von Dispatcher-Klassen  Dokument im Navigationsbaum lokalisieren

Verwendung

Die Plain-J2SE-Adapter-Engine bietet bei verschiedenen Adaptern die Möglichkeit, mit externen Java-Klassen die Payload einer XI-Message zu modifizieren. Hierzu müssen die Java-Klassen ein Java-Interface Transformimplementiert haben.

Um solche Klassen auch für die entsprechenden Adapter-Typen in der J2EE-Adapter-Engine verfügbar zu machen, wird mit dem Modul-Prozessor das Modul AF_Modules/MessageTransformBean ausgeliefert, das die für die Plain-J2SE-Adapter-Engine geschriebenen Klassen aufrufbar macht.

Die in der Plain-J2SE-Adapter-Engine enthaltenen Klassen com.sap.aii.messaging.adapter.Conversion und com.sap.aii.messaging.adapter.XSLTConversionsind mit diesem Modul ebenfalls direkt verfügbar.

Andere Klassen, die in XI 2.0 über die Erweiterung des Java-Classpaths in der Adapter-Engine bekannt gemacht wurden, müssen für die Adapter-Engine in einem speziellen Verfahren deployed werden.

Integration

Die Angaben zum Dispatcher werden im Modul-Prozessor vorgenommen.

Siehe: Modul-Prozessor

Funktionsumfang

Übertragung der Konfiguration

      Unter Beispiel für den Einsatz des Dispatcher wird exemplarisch die Konfiguration der nacheinander aufzurufenden Transform-Klassen com.sap.aii.messaging.adapter.Conversion und com.sap.aii.messaging.adapter.XSLTConversiongezeigt. Diese Konfiguration wird auf den Modul-Prozessor übertragen.

      In der Plain-J2SE-Adapter-Engine steht allen Parametern ein Namensraum – im Beispiel namespace1 – voran, der die konkrete Dispatcher-Implementierung beschreibt. Für diesen Dispatcher werden zwei Services definiert, deren Parameter wiederum durch einen weiteren Namensraum – im Beispiel Plain2XMLService und XSLTService identifiziert werden.

Diese beiden Angaben werden in der J2EE-Adapter-Engine bereits durch die Übertragung der Parameter in eine Modulkonfiguration erreicht und entfallen daher als Teil der Parameternamen.

Deployment der externen Klassen für den Modul-Prozessor

Externe Java-Klassen werden analog wie die oben verwendeten Klassen über Transform.Classspezifiziert. Damit solche Java-Klassen vom Modul AF_Modules/MessageTransformBean geladen werden können, müssen sie den entsprechenden Java-Bibliotheken (jar-Dateien) der J2EE-Anwendung erst bekannt gemacht werden.

Die Bekanntmachung erfolgt, wie auch das Deployment von Treibern für den JMS- oder JDBC-Adapter, über die Installation mit der Archivdatei aii_af_jmsproviderlib.sda, die Sie zuvor modifizieren müssen.

Fügen Sie die jar-Datei dem Archiv archive aii_af_jmsproviderlib.sda mit einem Zip-Programm hinzu.

      Ändern Sie die Datei provider.xml aus aii_af_jmsproviderlib.sda.

       Extrahieren Sie provider.xml und fügen Sie die Zeile <jar-name>thejarname</jar-name> jedem jar im Bereich <jars> hinzu.

       Fügen Sie im Bereich <references> folgende Zeile ein:

<reference type="library" strength="weak">com.sap.aii.messaging.runtime</reference>

       Fügen Sie die geänderte provider.xmlwieder dem Archiv hinzu.

Stellen Sie sicher, dass die ursprüngliche Pfadangabe server\ erhalten bleibt. Überprüfen Sie die letzte Pfadangabe.

      Fügen Sie alle jars (ohne Pfadangabe), die Sie in provider.xml definiert haben, dem aii_af_jmsproviderlib.sda hinzu.

      Verwenden Sie den Software Delivery Manager zum Deployment von aii_af_jmsproviderlib.sda.

       Wenn das leere Archiv im Rahmen der Installation bereits deployed wurde, dann wählen Sie im ersten Schritt des Deployment Update deployed SDAs/SCAs that have any version.

       Sonst wird das Deployment mit der Meldung Already been deployed. beendet.

Starten Sie erneut den J2EE Server. Die Bibliotheken sind dem Modul-Prozessor nun bekannt.

Achtung

Das Archiv aii_af_jmsproviderlib.sda wird von mehreren Komponenten und Adaptern der Adapter-Engine benutzt. Stellen sie sicher, dass sie keine Komponenten aus dem Archiv löschen, da sonst der JDBC-Adapter oder der JMS-Adapter nicht mehr funktionstüchtig sein könnten.

Erweitern sie daher immer nur die zuletzt deployte Version von aii_af_jmsproviderlib.sda um die von ihnen benötigten Klassen.

MessageTransformBean Parameter

      Folgende MIME-Content-Felder können Sie zur Beschreibung der Payload setzen:

Weitere Informationen zu den Feldern finden Sie in RFC1806, RFC2045 und RFC2378.

Parameter

Wert

Transform.ContentDisposition

attachment oder inline

z.B. attachement;filename=“abc.txt“

Transform.ContentDescription

Beschreibung

Transform.ContentType

Gibt den Typ der Payload an, z.B. text/plain

Transform.PermanentErrors

true oder false

Sie können festlegen, ob Fehler des Moduls als temporär oder permanent gewertet werden sollen.

Im File-/FTP-Sender-Adapter kann eine Auswertung vorgenommen werden, wenn die Fehlerarchivierung eingeschaltet ist.

Siehe: Konfiguration des File/FTP-Sender-Adapters, dort unter Verarbeitungsparameter, Fehlerhafte Dateien archivieren

      Geben Sie als Parameter für das Modul unter dem Parameternamen TransformClass den Name der Dispatcher-Klasse an.

      Dann geben Sie außerdem alle Parameter an, die an die Dispatcher-Klasse durchgereicht werden sollen. Siehe unten unter Beispiel.

Rufen Sie MessageTransformBean auf, ohne eine Dispatcher-Klasse anzugeben, werden nur die Werte für die MIME-Content-Felder gesetzt.

Beispiel

Folgendes Beispiel zeigt die Konfiguration für die Plain-J2SE-Adapter-Engine und die migrierte Konfiguration im Modul-Prozessor.

Parameterangaben in der Adapterkonfiguration (Plain-J2SE-Adapter-Engine)

Parameter

Wert

namespace1.Service.1

Plain2XMLService

(Plain2XMLService ist ein frei vorgegebener Name.)

namespace1.Plain2XMLService.class

com.sap.aii.messaging.adapter.Conversion

namespace1.Plain2XMLService.xml.conversionType

SimplePlain2XML

namespace1.Plain2XMLService.xml.processFieldNames

fromConfiguration

namespace1.Plain2XMLService.xml.fieldNames

a,b,c

namespace1.Plain2XMLService.xml.fieldSeparator

;

namespace1.Plain2XMLService.xml.documentNamespace

<Dokument-Namensraum>

namespace1.Plain2XMLService.xml.documentName

<Dokumentname>

Die nachgelagerte XSLT-Konvertierung wird durch folgende Einträge in der Konfigurationsdatei veranlasst:

Parameterangaben für die XSLT-Konvertierung in der Adapterkonfiguration (Plain-J2SE-Adapter-Engine)

Parameter

Wert

namespace1.Service.2

XSLTService

(XSLTService ist ein frei vorgegebener Name.)

namespace1.XSLTService.class

com.sap.aii.messaging.adapter.XSLTConversion

namespace1.XSLTService.XSLTConversion.XSLTFileName

Data/DemoConversion.xsl

 

Diese Angaben führen zu:

Angaben in der Verarbeitungssequenz des Modul-Prozessors

Nr

Modulname

Typ

1

AF_Modules/MessageTransformBean

L

2

AF_Modules/MessageTransformBean

L

3

<Adapter-spezifischer Modulname>

L

Achtung

Wenn Sie die Modulkette wie hier explizit konfigurieren, dann müssen Sie das letzte Modul in dieser Kette wie im Modul-Prozessor unter Integration beschrieben setzten.

Angaben in der Modulkonfiguration des Modul-Prozessors

Parametername

Parameterwert

Bemerkung

Transform.Class

com.sap.aii.messaging.adapter.Conversion

Parameter für den ersten Aufruf des Moduls MessageTransformBean

xml.conversionType

SimplePlain2XML

xml.processFieldNames

fromConfiguration

xml.field.Names

a,b,c

xml.fieldSeparator

;

xml.documentNamespace

<Dokument-Namensraum>

xml.documentName

<Dokumentname>

Transform.Class

com.sap.aii.messaging.adapter.XSLTConversion

Parameter für den zweiten Aufruf des Moduls MessageTransformBean

XSLTConversion.XSLTFileName

Data/DemoConversion.xsl

Hinweis

Die Angabe der auszuführenden Java-Klasse wird immer über den Parameter Transform.Classfür das Modul gesetzt. Dieser entspricht dem Parameter <namespace>.class in der Konfiguration der Plain-J2SE-Adapter-Engine.

Die Angabe des Dokumentnamens und den Namesraums ist nur zwingend erforderlich, wenn die Payload der Message im Message-Mapping bearbeitet wird.

Ende des Inhaltsbereichs