Show TOC

Java-Mapping-API (SAP NetWeaver 2004 und 7.0)Locate this document in the navigation structure

Verwendung

Obwohl die Java-Mapping-API überarbeitet worden ist (siehe: Java-Mapping ) und SAP die Verwendung dieses neuen API für neue Java-Mapping-Programme empfiehlt, bleibt die Java-Mapping-API von SAP NetWeaver 2004 und SAP NetWeaver 7.0 weiterhin im Funktionsumfang von SAP NetWeaver enthalten. Die Java-Mapping-Programme, die Sie mit Hilfe der Java-Mapping-API von SAP NetWeaver 2004 oder SAP NetWeaver 7.0 implementiert haben, bleiben also gültig und müssen nicht angepasst werden.

Achtung

Parametrisierte Java-Mappings werden von der Java-Mapping-API (SAP NetWeaver 2004 und 7.0) nicht unterstützt.

In benutzerdefinierten Funktionen von Message-Mapping-Programmen greifen Sie zudem weiterhin auf die Konstanten der Mapping-Laufzeit über die Java-Mapping-API von SAP NetWeaver 2004 / SAP NetWeaver 7.0 zu.

Voraussetzungen

Beachten Sie unbedingt die Einführungshinweise und Einschränkungen unter Java-Mapping . Sie sind auch für die Java-Mapping-API von SAP NetWeaver 2004 / SAP NetWeaver 7.0 gültig.

Funktionsumfang

Um ein Java-Mapping mit der Java-Mapping-API von SAP NetWeaver 2004 / SAP NetWeaver 7.0 zu programmieren, müssen Sie eine Java-Klasse definieren, die das Java-Interface com.sap.aii.mapping.api.StreamTransformation implementiert. Dieses Interface hat zwei Methoden:

  • public void execute(java.io.InputStream in, java.io.OutputStream out)

    Diese Methode wird zur Prozessintegrations-Laufzeit aufgerufen, um ein Mapping auszuführen. Diese Methode erhält einen Input-Stream für das Ausgangsdokument und einen Output-Stream für das Zieldokument als Parameter. Diese Streams sind typischerweise XML-Dokumente. Sie können aus dem Input-Stream die zu konvertierenden Teilstrukturen einlesen und in den Output-Stream das konvertierte Zieldokument ausgeben.

  • public void setParameter(java.util.Map param)

    Die Process-Integration-Laufzeit übergibt mit dieser Methode Parameter an das Mapping-Programm. Sie wertet diese Parameter zur Laufzeit in der Methode execute() aus. Damit kann der Ablauf des Mapping gesteuert werden.

Das übergegebene Objekt, das das Java-Interface java.util.Map implementiert, enthält sieben Schlüssel/Wertepaare als Parameter. Diese korrespondieren zu entsprechenden Feldern im Message-Header. Abgesehen von der Konstante MAPPING_TRACE sind die Wertobjekte vom Typ java.lang.String . Die Schlüssel Objekte werden in der Klasse com.sap.aii.mapping.api.StreamTransformationConstants definiert:

String-Konstanten der Mapping-Laufzeit

Konstante

Bedeutung

Relevant für PCK

MESSAGE_CLASS

Klassifizierung der Message. Mögliche Werte:

  • ApplicationMessage : Asynchrone oder synchrone Request-Message

  • ApplicationResponse : Antwort auf eine Request-Message

  • SystemAck , ApplicationAck , SystemError , ApplicationError : Acknowledgment-Messages

Ja

VERSION_MAJOR

Version des XI Message-Protokolls. Beispiel: Für das XI 3.0 Message-Protokoll ist VERSION_MAJOR = 3 und VERSION_MINOR = 0.

Nein

Das PCK unterstützt nur das Message-Protokoll XI 3.0.

VERSION_MINOR

Nein

PROCESSING_MODE

Der Modus einer Message kann synchron oder asynchron sein. Entsprechend kann diese Konstante den Wert synchronous oder asynchronous haben.

Ja

MESSAGE_ID

Die Message-ID. Sie kann sich während der Kommunikation verändern.

Response-Messages bekommen eine neue Message-ID.

Wenn aus einer Message neue hervorgehen (Kopieren der Message bei mehreren Empfängern), bekommen die neuen Messages neue Message-IDs.

Ja

REF_TO_MESSAGE_ID

ID einer referenzierten Message, die semantisch zu dieser Message gehört. Beispielsweise merkt sich eine Response-Message über dieses Feld zu welcher Request-Message sie gehört.

Ja

CONVERSATION_ID

Dieses Feld ist nicht obligatorisch in der Message enthalten. Es ermöglicht die Verwendung einer ID zur Gruppierung von zusammengehörenden Messages. Dieses Feld ist nicht dazu gedacht eine Serialisierung von Messages zu realisieren und hat nichts mit dem Serialisierungskontext ( ABAP -Proxy-Laufzeit, Java -Proxy-Laufzeit) zu tun.

Ja

TIME_SENT

Zeitstempel, der angibt, wann die Message beim Sender abgeschickt wurde. Das Format des Zeitstempels ist:

YYYY-MM-DDTHH:MM:SSZ

Der Buchstabe T trennt das Datum von der Zeit, die in der Regel in UTC angegeben ist. Falls es sich um eine lokale Zeit handelt, entfällt das abschließende Z.

Ja

INTERFACE

Name des Sender-Interface. Verwenden Sie ab SAP XI 3.0 diese Konstante anstelle der bisherigen Konstante SENDER_NAME .

Ja

INTERFACE_NAMESPACE

Namensraum des Sender-Interface.

Verwenden Sie ab SAP XI 3.0 diese Konstante anstelle der bisherigen Konstante SENDER_NAMESPACE .

Ja

SENDER_PARTY

Kommunikationspartner, der die Message verschickt hat.

Ja

SENDER_PARTY_AGENCY

Vergebende Agentur für den Sender der Message.

Ja

SENDER_PARTY_SCHEME

Verwendetes Identifikationsschema des Senders.

Ja

SENDER_SERVICE

Kommunikationskomponente auf Senderseite, die die Message verschickt hat. Dabei kann es sich beispielsweise um den Namen eines Business-Systems handeln.

Verwenden Sie ab SAP XI 3.0 diese Konstante anstelle der bisherigen Konstante SENDER_SYSTEM .

Ja

RECEIVER_NAME

Name des Empfänger-Interface.

Ja

RECEIVER_NAMESPACE

Namensraum des Empfänger-Interface.

Ja

RECEIVER_PARTY

Kommunikationspartner, der die Message empfangen soll.

Ja

RECEIVER_PARTY_AGENCY

Vergebende Agentur für den Empfänger der Message.

Ja

RECEIVER_PARTY_SCHEME

Verwendetes Identifikationsschema des Empfängers.

Ja

RECEIVER_SERVICE

Kommunikationskomponente auf Empfängerseite, die die Message erhalten soll. Dabei kann es sich beispielsweise um den Namen eines Business-Systems handeln.

Verwenden Sie ab SAP XI 3.0 diese Konstante anstelle der bisherigen Konstante RECEIVER_SYSTEM .

Ja

MAPPING_TRACE

Gibt ein AbstractTrace-Objekt zurück, mit dem Sie Meldungen in das Monitoring schreiben können.

Nein

Aktivitäten
  1. Implementieren Sie Ihr Java-Mapping, beispielsweise im SAP NetWeaver Developer Studio (siehe auch: Laufzeitumgebung (Java-Mappings) ).

  2. Importieren Sie Ihre Java-Bibliotheken als Archiv in das Enterprise Services Repository (siehe Importierte Archive (XSLT/Java) ).

Beispiel

Das folgende Beispiel zeigt das Setzen und Auswerten der beiden Parameter MAPPING_TRACE und RECEIVER_NAME in einem Java-Mapping-Programm:

import java.io.InputStream; import java.io.OutputStream; import java.util.Map; import java.util.HashMap; import com.sap.aii.mapping.api. AbstractTrace; import com.sap.aii.mapping.api.StreamTransformation; import com.sap.aii.mapping.api.StreamTransformationConstants;

public class JavaMapping implements StreamTransformation {

private Map param = null; private AbstractTrace trace = null;

public void setParameter (Map param) { this.param = param; if (param == null) { this.param = new HashMap(); } }

public void execute(InputStream in, OutputStream out) {

try {

trace = (AbstractTrace)param.get( StreamTransformationConstants.MAPPING_TRACE ); trace.addInfo('...');

// ...

String receiverName = (String)param.get(

StreamTransformationConstants.RECEIVER_NAME);

// ...

}

}

}

Weitere Informationen: Spezieller Zugriff auf Mapping-Laufzeitkonstanten