Show TOC

MessageTransformBean im Modul-Prozessor einfügenLocate this document in the navigation structure

Verwendung

Mit dem Modul-Prozessor wird das Modul AF_Modules/MessageTransformBean ausgeliefert. Mit diesem Modul können Sie die für die Adapter-Engine (SE) geschriebenen Klassen aufrufen.

Mit dem Modul MessageTransformBean können Sie MIME-Content-Felder setzen und den Dispatcher konfigurieren, der kompatibel zu dem Dispatcher ist, der in der Adapter-Engine (SE) enthalten ist. Sie können mit diesem Modul die Klassen, die für die Adapter-Engine (SE) geschrieben worden sind, im Modul-Prozessor direkt aufrufen.

Die Adapter-Engine (SE) bietet Ihnen bei einigen Adaptern die Möglichkeit, mit externen Java-Klassen die Payload einer XI-Message zu modifizieren. Hierzu müssen die Java-Klassen ein Java-Interface Transform implementiert haben.

Die in der Adapter-Engine (SE) enthaltenen Klassen com.sap.aii.af.sdk.xi.adapter.Conversion und com.sap.aii.af.sdk.xi.adapter.XSLTConversion sind 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.

Weitere Informationen: Module im Modul-Prozessor einfügen , Beispiel für den Einsatz des Dispatchers

Voraussetzungen

In der Adapter-Engine (SE) 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 Adapter-Engine bereits durch die Übertragung der Parameter in eine Modulkonfiguration erreicht und entfallen daher als Teil der Parameternamen.

Vorgehensweise

Deployment externer Klassen für den Modul-Prozessor

  1. Externe Java-Klassen werden analog wie die oben verwendeten Klassen über Transform.Class spezifiziert.

    Damit solche Java-Klassen vom Modul AF_Modules/MessageTransformBean geladen werden können, müssen Sie sie den entsprechenden Java-Bibliotheken (jar-Dateien) der AS Java-Anwendung bekannt machen.

    Die Bekanntmachung erfolgt über die Installation mit der Archivdatei com.sap.aii.adapter.lib.sda , die Sie modifizieren müssen:

    • Fügen Sie die jar-Datei dem Archiv archive com.sap.aii.adapter.lib.sda mit einem Zip-Programm hinzu.
    • Ändern Sie die Datei provider.xml aus com.sap.aii.adapter.lib.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.xml wieder dem Archiv hinzu.
      • Stellen Sie sicher, dass die ursprüngliche Pfadangabe server\ erhalten bleibt. Überprüfen Sie die letzte Pfadangabe.
  2. Fügen Sie alle jars (ohne Pfadangabe), die Sie in provider.xml definiert haben, dem com.sap.aii.adapter.lib.sda hinzu.
  3. Verwenden Sie den Software Delivery Manager zum Deployment von com.sap.aii.adapter.lib.sda .
    • Wenn das leere Archiv im Rahmen der Installation bereits deployed wurde, 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.

  4. Starten Sie erneut den AS Java.

    Die Bibliotheken sind dem Modul-Prozessor nun bekannt.

    Achtung

    Das Archiv com.sap.aii.adapter.lib.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 com.sap.aii.adapter.lib.sda um die von ihnen benötigten Klassen.

MIME-Content-Felder setzen

  1. Folgende MIME-Content-Felder können Sie unter Parametername zur Beschreibung der Payload setzen:

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

    • Transform.ContentDisposition

      Geben Sie unter Parameterwert attachment oder inline an.

      Beispiel: attachement;filename="abc.txt"

    • Transform.ContentDescription

      Geben Sie unter Parameterwert die Beschreibung ein.

    • Transform.ContentType

      Geben Sie unter Parameterwert den Payload-Typ ein.

      Bespiel: text/plain

    • Transform.PermanentErrors

      Geben Sie unter Parameterwert true oder false ein.

      So legen Sie fest, ob Fehler des Moduls als temporär oder permanent gewertet werden sollen.

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

      Weitere Informationen: File-Sender-Adapter konfigurieren , FTP-Sender-Adapter konfigurieren , dort unter Verarbeitungsparameter, Fehlerhafte Quelldateien archivieren.

Parameter für die Dispatcher-Klasse angeben

  1. Geben Sie als Parameter für das Modul unter Parametername TransformClass den Name der Dispatcher-Klasse an.
  2. Geben Sie alle Parameter an, die an die Dispatcher-Klasse durchgereicht werden sollen.

    Weitere Informationen unten unter Beispiel.

Ergebnis

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

Beispiel

Das Beispiel zeigt die Konfiguration für die Adapter-Engine (SE) und die migrierte Konfiguration im Modul-Prozessor.

Adapterkonfiguration der Adapter-Engine (SE)

  • namespace1.Service.1

    Wert: Plain2XMLService (Plain2XMLService ist ein frei gewählter Name.)

  • namespace1.Plain2XMLService.class

    Wert: com.sap.aii. af.sdk.xi .adapter.Conversion

  • namespace1.Plain2XMLService.xml.conversionType

    Wert: SimplePlain2XML

  • namespace1.Plain2XMLService.xml.processFieldNames

    Wert: fromConfiguration

  • namespace1.Plain2XMLService.xml.fieldNames

    Wert: a,b,c

  • namespace1.Plain2XMLService.xml.fieldSeparator

    Wert: ;

  • namespace1.Plain2XMLService.xml.documentNamespace

    Wert:<Dokument-Namensraum>

  • namespace1.Plain2XMLService.xml.documentName

    Wert:<Dokumentname>

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

XSLT-Konvertierung in der Adapterkonfiguration der Adapter-Engine (SE)

  • namespace1.Service.2

    Wert: XSLTService (XSLTService ist ein frei gewählter Name.)

  • namespace1.Plain2XMLService.class

    Wert: com.sap.aii. af.sdk.xi .adapter.XSLTConversion

  • namespace1.XSLTService.XSLTConversion.XSLTFileName

    Wert: Data/DemoConversion.xsl

Angaben in der Verarbeitungssequenz des Modul-Prozessors

  1. AF_Modules/MessageTransformBean
  2. AF_Modules/MessageTransformBean
  3. <Adapter-spezifischer Modulname>

    Alle Module sind vom Typ L .

    Achtung

    Wenn Sie die Modulkette wie hier explizit konfigurieren, müssen Sie das letzte Modul in dieser Kette adapterspezifisch setzen.

    Weitere Informationen: Modulkette für SAP-Adapter im Modul-Prozessor erweitern

Angaben in der Modulkonfiguration des Modul-Prozessors

Die Angabe der auszuführenden Java-Klasse wird immer über den Parameter Transform.Class für das Modul gesetzt. Dieser entspricht dem Parameter <namespace>.class in der Konfiguration der Adapter-Engine (SE).

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

  • Parameter für den ersten Aufruf des Moduls MessageTransformBean
    • Transform.Class

      Wert: com.sap.aii. af.sdk.xi .adapter.Conversion

    • xml.conversionType

      Wert: SimplePlain2XML

    • xml.processFieldNames

      Wert: fromConfiguration

    • xml.field.Names

      Wert: a,b,c

    • xml.fieldSeparator

      Wert: ;

    • xml.documentNamespace

      Wert:<Dokument-Namensraum>

    • xml.documentName

      Wert:<Dokumentname>

  • Parameter für den zweiten Aufruf des Moduls MessageTransformBean
    • Transform.Class

      Wert: com.sap.aii. af.sdk.xi .adapter.XSLTConversion

    • XSLTConversion.XSLTFileName

      Wert: Data/DemoConversion.xsl