Erweiterte (Mapping-basierte)
Interface-Ermittlung
In einer erweiterten Interface-Ermittlung
geben Sie die Inbound-Interfaces nicht manuell an, sondern wählen zunächst ein
Multi-Mapping aus.
Die Inbound-Interfaces ergeben sich dann aus den Ziel-Interfaces des
Multi-Mappings. Zur Laufzeit werden die Inbound-Interfaces beim
Mapping-Schritt ermittelt.
Ein typischer Anwendungsfall für die erweiterte Interface-Ermittlung liegt vor, wenn die Ausgangs-Message ein Element der Häufigkeit 0 ... unbounded(für mehrere Positionen eines Datensatzes) besitzt und zur Laufzeit mehrere Messages (für die einzelnen Positionen) entstehen sollen.

Ein Beispiel ist die Aufteilung einer Gesamtbuchung für einen Anschlussflug mit mehreren Teilstrecken in Einzelbuchungsaufträge (für die einzelnen Teilstrecken).
Diesen Anwendungsfall können Sie mit einer Standard-Interface-Ermittlung (ohne Verwendung eines Integrationsprozesses) nicht realisieren. Mit einer Standard-Interface-Ermittlung können Sie zwar mehrere (N) Inbound-Interfaces (mit unterschiedlichem Mapping) angeben. In diesem Fall werden aus der Ausgangs-Message vor dem Mapping-Schritt N Messages mit gleicher Payload und verschiedenen Empfänger-Interfaces erzeugt, die dann abhängig vom Empfänger-Interface unterschiedlich transformiert werden. Daher wäre es denkbar, die Mappings so zu schreiben, dass das erste Mapping aus der Ausgangs-Message eine Message erzeugt, die nur die erste Position enthält, das zweite Mapping eine Message, die nur die zweite Position enthält, und so weiter. Dies funktioniert aber nicht mehr, wenn die Anzahl der Positionen mit jeder neuen Ausgangs-Message variieren kann.
Mit einer erweiterten Interface-Ermittlung können Sie für diesen Anwendungsfall einen Mapping-basierten Message-Split konfigurieren. Hierzu ordnen Sie der Interface-Ermittlung ein Multi-Mapping zu, das ein Ziel-Interface mit einem Element der Häufigkeit 0...unbounded besitzt. Zur Laufzeit werden die Einzel-Messages (für die einzelnen Positionen) beim Mapping-Schritt berechnet. Die Einzel-Messages werden zunächst zu einer Bulk-Message zusammengefasst. Die Bulk-Message wird dann als Ganzes an die Adapter Engine übergeben. Erst von der Adapter Engine wird die Bulk-Message wieder in ihre Einzel-Messages zerlegt (siehe Grafik).

Verhalten zur Laufzeit beim Message-Split
Beachten Sie, dass sowohl die Bulk-Message, als auch alle Einzel-Messages jeweils einen Message-Header mit einem Empfänger-Interface besitzen (siehe Grafik).

Empfänger-Interfaces von Bulk-Message und Einzel-Messages
Im Header der Einzel-Messages steht das jeweilige Empfänger-Interface. Es ergibt sich aus der Definition des Multi-Mappings. Beachten Sie, dass sich die Empfänger-Interfaces der Einzel-Messages voneinander unterscheiden können. Das Empfänger-Interface der Bulk-Message ist stets die Konstante InterfaceCollection (Namensraum http://sap.com/xi/XI/System).
Wenn beim Message-Split nur eine Message entsteht, bleibt die ursprüngliche Message-Struktur erhalten. In diesem Fall wird keine Bulk-Message mit nur einer Einzel-Message erzeugt.
Sie können einer erweiterten Interface-Ermittlung auch ein Multi-Mapping mit mehreren unterschiedlichen Ziel-Interfaces zuordnen (1:n-Transformation). Jedes Ziel-Interface kann wiederum Elemente mit der Häufigkeit 0 ... unbounded enthalten.

Bei einem Mapping-basierten Message-Split können die Messages nicht über unterschiedliche Adapter-Engines versendet werden. Dies bedeutet für die Konfiguration: Allen Empfängervereinbarungen, die im Schlüssel ein durch das Mapping gegebenes Empfänger-Interface eingetragen haben, dürfen nur Kommunikationskanäle mit den folgenden Adaptertypen zugeordnet werden:
- RFC-Adapter
- SAP Business Connector-Adapter
- File/FTP-Adapter
- JDBC-Adapter
- JMS-Adapter
- SOAP-Adapter
- Marketplace-Adapter
- Mail-Adapter
- RNIF-Adapter
- CIDX-Adapter
Darüber hinaus müssen alle Adapter auf derselben Adapter-Engine laufen.
Auch Adapter, die von Partnern entwickelt wurden, unterstützen einen Mapping-basierten Message-Split, sofern sie auf derselben Adapter-Engine laufen.

Attachments der ursprünglichen Message werden nicht in die Messages, die beim Message-Split entstehen, übernommen.
Aktivitäten
Um einen Mapping-basierten Message-Split zu realisieren, führen Sie folgende Schritte durch:
...
1.
Integration Repository:
Definieren Sie das Multi-Mapping (siehe
Multi-Mappings für
Message-Splits entwickeln).
2. Integration Directory: Definieren Sie die Interface-Ermittlung.
Beachten Sie folgende Besonderheiten:
○ Im Schlüssel der Interface-Ermittlung muss das Ausgangs-Interface des Multi-Mappings als Sender-Interface eingetragen sein.
○ Der Interface-Ermittlungs-Typ muss auf Erweitert eingestellt sein.
○ Wählen Sie das zuvor definierte Multi-Mapping aus dem Integration Repository aus.
Verwenden Sie hierzu die
Eingabehilfe (
).
Im Rahmen Inbound-Interfaces werden die Ziel-Interfaces des Interface-Mappings angezeigt.
Die Spalte Häufigkeit zeigt an, wie viele Messages (für ein Inbound-Interface) beim Mapping-Schritt erzeugt werden.