Anfang des Inhaltsbereichs

Funktionsdokumentation Multi-Mappings  Dokument im Navigationsbaum lokalisieren

Verwendung

Ein Multi-Mapping ist ein Mapping-Programm, das sich nicht auf die Transformation einer Ausgangs-Message auf eine Ziel-Message beschränkt. Sie haben die folgenden Möglichkeiten:

      Sie können ein Multi-Mapping im Transformationsschritt eines Integrationsprozesses verwenden. In diesem Fall unterstützt die Mapping-Laufzeit 1:n-, n:1- und n:m-Transformationen. Sie können eine beliebige Anzahl von Ausgangs-Messages auf eine beliebige Anzahl von Ziel-Messages abbilden.

      Sie können ein Multi-Mapping verwenden, um während des logischen Routings eine Message auf mehrere unterschiedliche (und meist kleinere) Messages abzubilden. In diesem Fall ist also nur eine 1:n-Transformation möglich.

Integration

Wie bei allen Mapping-Programmen müssen Sie auch ein Multi-Mapping-Programm einem Operation-Mapping zuordnen, das Sie später im Integration Directory verwenden, um die Mapping-Programme für Ausgangs- und Zieloperationen zu konfigurieren.

Verarbeitung von Multi-Mappings zur Laufzeit

Multi-Mappings beziehen sich auf mehrere Message-Strukturen. Um diese Strukturen aufeinander abzubilden, nimmt die Mapping-Laufzeit alle Ausgangs-Messages eines Multi-Mappings in eine gemeinsame Ausgangsstruktur und alle Ziel-Messages eines Multi-Mappings in eine gemeinsame Zielstruktur auf. Auf diese Weise reduziert sich die Anforderung, mehrere Messages aufeinander abzubilden, darauf, eine Ausgangsstruktur auf eine Zielstruktur abzubilden.

Beispiel

Grundsätzlich können Sie mit allen Mapping-Programm-Typen ein Multi-Mapping implementieren. Der folgende Abschnitt geht zur Vereinfachung davon aus, dass Sie ein Multi-Mapping als Message-Mapping implementieren.

Gegeben seien folgende Message-Typen, die Sie aufeinander abbilden wollen:

Message-Typen für Ausgangsstruktur

Message-Typ (Ausgangsstruktur)

Message-Typ (Zielstruktur)

OrderHeader (1)

Order (1)

OrderItem (0..unbounded)

OrderInfo (1)

Sie können diese Message-Typen auf der Registerkarte Messages im Mapping-Editor angeben. Außerdem können Sie pro Message-Typ eine Häufigkeit festlegen. Sobald die Ausgangs- oder die Zielstruktur aus mehreren Messages bestehen kann, baut der Mapping-Editor sowohl für die Ausgangs- als auch für die Zielstruktur jeweils eine übergeordnete Struktur auf, in die die Ausgangs- und Ziel-Messages aufgenommen werden. Das Wurzelelement ist in so einem Fall immer <Messages>, für jede Ausgangs- beziehungsweise Ziel-Message fügt der Mapping-Editor ein Element <MessageN> ein, wobei N die Position der Message laut Registerkarte Messages ist. Eine Message-Instanz zu den oben angegebenen Messages sieht folgendermaßen aus:

Diese Grafik wird im zugehörigen Text erklärt

Für jedes Message-Schema (hier: für jeden Message-Typ) gibt es also ein <MessageN>-Element. Message-Typ <OrderItem> kann in der Message-Instanz beliebig oft als Unterelement von <Message2> vorkommen. Welche Elemente in dem Multi-Mapping aufeinander abgebildet werden, ist über die Nummern angedeutet.

Namensraum im Multi-Mapping

Fügen Sie in Ihrem Mapping immer den Namensraum http://sap.com/xi/XI/SplitAndMerge zum Root-Tag hinzu.

Beispiel

Beispiel für ein Multi-Mapping:

<?xml version="1.0" encoding="UTF-8"?>

<sm:Messages xmlns:sm="http://sap.com/xi/XI/SplitAndMerge">

  <Message1>

 

..</Message1>

 

  <MessageN>

 

  </MessageN>

</sm:Messages>

Zur Laufzeit werden die Message-Instanzen in einem Integrationsprozess gesammelt und in eine Struktur gestellt. Sobald das Mapping-Programm ausgeführt wurde, werden die Messages erneut an verschiedene Message-Instanzen übergeben.

Ausführung mehrerer Multi-Mappings hintereinander

Über ein Operation-Mapping können Sie mehrere Mapping-Programme für die Transformation einer Request- oder Response-Message hintereinander ausführen (beispielsweise, um die Anzahl von erforderlichen Mapping-Programmen in einer Systemlandschaft zu reduzieren). In solchen Fällen besteht ein Operation-Mapping aus mehreren Schritten. Die Schritte werden in der angegebenen Reihenfolge ausgeführt (von oben nach unten). Das Ergebnis des Mapping-Programms aus dem vorhergehenden Schritt wird jeweils an das Mapping-Programm des nachfolgenden Schritts weitergereicht. Jeder Schritt kann auf ein Mapping-Programm verweisen, das eine 1:1-, eine 1:n-, eine n-1- oder eine m:n-Transformation durchführt.

Für Multi-Mappings (1:n-, n:1- oder m:n-Transformationen) gilt in diesem Zusammenhang:

      Der vorhergehende Schritt muss genauso viele Messages erzeugen, die der nachfolgende Schritt erwartet.

      Multi-Mappings arbeiten wie oben dargestellt mit einem Umschlag, um alle Messages in eine Struktur aufzunehmen. Verweist einer der Schritte auf ein Multi-Mapping-Programm, müssen alle weiteren Schritte ebenso mit diesem Umschlag arbeiten.

Beispiel

Das Mapping für eine Request-Message besteht aus zwei Message-Mapping-Programmen: Einer 1:1-Transformation und einer 1:n Transformation. Da das letztere Message-Mapping sowohl für die Ziel-Message als auch für die Ausgangs-Message mit dem Multi-Mapping-Umschlag arbeitet, muss das Message-Mapping für die 1:1-Transformation ebenso ein Transformations-Ergebnis mit einem Multi-Mapping-Umschlag erzeugen.

Funktionsumfang

Wenn Sie im Mapping-Editor mehrere Ausgangs- oder Ziel-Messages angeben, zeigt der Mapping-Editor den oben beschriebenen Aufbau der Ausgangs- und Zielstruktur unmittelbar in der Strukturübersicht an. Der Mapping-Editor unterstützt folgende Message-Schemata für Multi-Mappings:

      (Fault-)Message-Typen

      IDocs, RFCs (Request-, Response- oder Fault-Messages), siehe Import von IDocs und RFCs.

      Message-Strukturen aus externen Definitionen

Sie können darüber hinaus auch Multi-Mappings als externe Mapping-Programme entwickeln, indem Sie das Message-Schema der Request-Message aus einem Operation-Mapping exportieren.

Weitere Informationen:

Multi-Mappings für Integrationsprozesse entwickeln

Multi-Mappings für Message-Splits entwickeln

 

 

 

 

 

Ende des Inhaltsbereichs