Übersicht
Ausgehend von Message-Interfaces und Message-Typen im Integration Repository können Sie Mappings für ein Interface-Paar (Ausgangs- und Ziel-Interface) definieren:

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

Wie in der Grafik angedeutet, enthält im Standardfall ein Request die Daten, die über den Output-Message-Typ des Outbound-Message-Interface festgelegt sind. Zur Laufzeit geht ein Request vom Outbound-Interface zum Inbound-Interface. Analog umfasst die Response die Daten, die über den Output-Message-Typ des Inbound-Message-Interface festgelegt sind. Sie hat eine dem Request entgegengesetzte Richtung. Werden auf Inbound-Seite Fehler ausgelöst, können diese über Fault-Messages an den Sender gemeldet und dort behandelt werden. Fault-Messages gehen wie die Response vom Inbound-Interface zum Outbound-Interface. Sie können Mappings für Request-, Response- und Fault-Messages definieren. Die Exchange Infrastructure unterstützt hierfür folgende Mapping-Programme:
● Message-Mappings, die über einen graphischen Editor im Integration Builder definiert werden können. Für die Laufzeit wird daraus Java-Quellcode erzeugt.
● XSL- und Java-Mappings, die als Archiv in das Integration 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 Output- und Input-Message-Typ (beziehungsweise dem entsprechenden Teil eines importierten oder externen Interface) mehrere Mapping-Programme im Integration 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 Interfaces, die auf die zugehörigen Message-Typen verweisen. Zudem können Sie einen Message-Typ für mehrere Interfaces wiederverwenden, so dass die alleinige Definition eines Mapping-Programms nicht ausreicht, um die Verbindung, die ja auf der Zuordnung von Outbound- und Inbound-Interface basiert, zu ermöglichen.
Diese Rolle übernimmt das Interface-Mapping:
● Mit einem Interface-Mapping geben Sie für ein ausgewähltes Interface-Paar zugehörige Mapping-Programme für Request-, Response- beziehungsweise Fault-Message an. Mit einem Interface-Mapping registrieren Sie also Ihre Mappings für ein Interface-Paar.
● Sie können bei einem Interface-Mapping auch mehrere Mapping-Programme im Request- und Response-Fall angeben, die hintereinander ausgeführt werden sollen.
Außerdem können Sie mehrere Interface-Mappings für das gleiche Interface-Paar definieren, um mehrere Varianten im Integration Repository anzubieten. Zur Konfigurations-Zeit kann der Kunde das passende Mapping in einer Interface-Ermittlung auswählen und im Directory speichern.
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 Quelldokuments sieht mehr Hierarchiestufen vor als das XML-Schema des Zieldokuments. Zudem sieht das Schema des Zieldokuments nicht alle Informationen vor, die das Schema des Quelldokuments zulässt. Beide Strukturen kann man über ein Strukturmapping aufeinander abbilden.
Beispiel für ein nötiges Wertemapping ist die Passagierklasse: Im dargestellten Quelldokument 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 Integration Builder können Sie Struktur-Mappings auf einfache Weise (per drag und drop) definieren und mit Hilfe von einer Funktion Felder aus Quell- und Zielstruktur einander zuordnen, für die ein Werte-Mapping nötig ist.