Übersicht
Ausgehend von Operationen von Service-Interfaces und Message-Typen im ES Repository können Sie Mappings für eine Ausgangs- und eine Ziel-Operation definieren:

Analog können Sie auch entsprechende Mappings für den Fall definieren, dass es sich bei der Ausgangs- oder Ziel-Operation um ein IDoc, einen RFC, oder ein anderes über Adapter angebundenes Interface handelt.

Die Grafik zeigt, dass Sie pro Operation auf Message-Typen für drei verschiedene Anwendungsfälle verweisen können:
·
Request (asynchrone und synchrone
Kommunikation)
Der Request ist die Message, die der Consumer über eine Operation am
Outbound-Service-Interface an eine korrespondierende Operation am
Inbound-Service-Interface schickt.
·
Response (nur synchrone Kommunikation)
Die Response ist die direkte Antwort, auf die der Consumer nach dem Versenden
der Request-Message wartet. Die Message geht also vom Provider
(Inbound-Service-Interface) zum Consumer
(Outbound-Service-Interface)
·
Fault (asynchrone und synchrone
Kommunikation)
Message, die im Fehlerfall auf Provider-Seite an den Consumer gesendet wird
(synchroner Fall) oder für das Monitoring persistiert wird (asynchroner
Fall).
Die Pfeile in der Grafik deuten die Richtung des Message-Austauschs zur Laufzeit an: Die Operation, die eine Message sendet, wird im Kontext von Mappings auch Ausgangsoperation bezeichnet und die Operation, die eine Message empfängt, auch Zieloperation. Sie können jeweils Mapping-Programme für die Abbildung von einem Message-Typ einer Ausgangsoperation auf den Message-Typ einer Zieloperation definieren (je nach Typ der Operation für die Request-, Response- und die Fault-Message). Der Enterprise Services Builder unterstützt hierfür folgende Mapping-Programme:
· Message-Mappings, die über einen graphischen Editor im ES Builder definiert werden können. Für die Laufzeit wird daraus Java-Quellcode erzeugt.
· XSL- und Java-Mappings, die als Archiv in das ES Repository importiert werden können
· XSLT und ABAP-Mappings, die Kunden mit der ABAP Workbench implementieren können (siehe Mapping-Entwicklung mit der ABAP Workbench).
Grundsätzlich ist es möglich für das gleiche Paar von Message-Typen (beziehungsweise dem entsprechenden Teil eines importierten oder externen Interface) mehrere Mapping-Programme im ES Repository anzulegen beziehungsweise zu importieren.
SAP empfiehlt den Einsatz von Message-Mappings. In Einzelfällen kann es dennoch sinnvoll sein, andere Mapping-Programme einzusetzen, beispielsweise weil aus einem vorhergehenden Integrationsprojekt bereits XSLT- oder Java-Mapping-Programme existieren.
Zur Ausführungsgeschwindigkeit der Mapping-Programm-Typen lässt sich folgendes feststellen:
● Handgeschriebene Java-Programme von erfahrenen Java-Entwicklern sollten in der Regel schneller sein als der generierte Java-Quellcode von Message-Mappings.
● Message-Mappings können mit weit größeren Messages umgehen als XSLT. Bezüglich der Geschwindigkeit hängt es von der Komplexität des Mappings ab, ob ein XSLT-Programm oder ein Message-Mapping schneller ist. Tests haben gezeigt, dass Message-Mappings gerade bei größeren Messages in der Ausführungszeit schneller sind als äquivalente XSLT-Mapping-Programme.
● Erfahrungen haben außerdem gezeigt, dass Java-basierte Mapping-Programme schneller sind als ABAP-basierte Mapping-Programme.
Bei der Definition von Mapping-Programmen für Request-, Response- oder Fault-Message ist diese Definition erst einmal losgelöst von den Operationen, die auf die zugehörigen Message-Typen verweisen. Zudem können Sie einen Message-Typ für mehrere Operationen wiederverwenden. Die Definition eines Mapping-Programms ist also noch losgelöst von einem konkreten Interface-Paar, über das Sie später die Kommunikation zwischen Sender und Empfänger implementieren. Zudem kann es je nach Art der Operation mehrere Mapping-Programme geben, die für ein Interface-Paar eingesetzt werden sollen.
Das Operation-Mapping stellt die Verbindung zwischen Operationen um Mapping-Programmen her:
· Mit einem Operation-Mapping geben Sie für ein ausgewähltes Paar von Operationen zugehörige Mapping-Programme für Request-, Response- beziehungsweise Fault-Message an. Mit einem Operation-Mapping registrieren Sie also Mapping-Programme zur Design-Zeit. Ein RFC oder ein IDoc wird in diesem Zusammenhang auf der gleichen Ebene wie eine Operation angesehen (weitere Informationen: Interfaces, Operationen und Message-Typen).
· Sie können bei einem Operation-Mapping auch mehrere Mapping-Programme im Request- und Response-Fall angeben, die hintereinander ausgeführt werden sollen.
Außerdem können Sie mehrere
Operation-Mappings für das gleiche Paar von Operationen definieren, um mehrere
Varianten im ES Repository anzubieten. Zur Konfigurations-Zeit greift der
Kunde oder ein Berater nur auf Operation-Mappings zu statt auf die einzelnen
Mapping-Programme. Das spart Aufwand bei der Konfiguration einer
Interface-Ermittlung
im Integration Directory.
Unabhängig von der Technologie, die man für Mappings einsetzt, unterscheidet man zwischen:
· Struktur-Mappings, bei denen die Struktur eine XML-Dokuments auf die Struktur eines anderen XML-Dokuments abgebildet wird.
· Werte-Mappings, bei denen die Werte eines XML-Dokuments auf Werte eines anderen XML-Dokuments abgebildet werden.
In dem folgenden Beispiel werden Daten über eine Flugbuchung mit Hilfe von XML-Dokumenten ausgetauscht. Das XML-Schema des Ausgangsdokuments sieht mehr Hierarchiestufen vor als das XML-Schema des Zieldokuments. Zudem sieht das Schema des Zieldokuments nicht alle Informationen vor, die das Schema des Ausgangsdokuments zulässt. Beide Strukturen kann man über ein Strukturmapping aufeinander abbilden.
Beispiel für ein nötiges Wertemapping ist die Passagierklasse: Im dargestellten Ausgangsdokument wird diese Information über einen String, im Zieldokument über einen Dezimalwert kodiert. Ein weiteres Beispiel wäre das Format des Datums.

Mit dem graphischen Mapping-Editor des ES Builder können Sie Struktur-Mappings auf einfache Weise (per drag und drop) definieren und mit Hilfe von einer Funktion Felder aus Ausgangs- und Zielstruktur einander zuordnen, für die ein Werte-Mapping nötig ist.