Show TOC

Passende Service-Interfaces für Point-to-Point-KommunikationLocate this document in the navigation structure

Verwendung

Wenn Sie eine Point-to-Point-Kommunikation über die Web-Service-Laufzeit mit Hilfe des Outside-In-Ansatzes entwickeln, legen Sie als ersten Schritt Service-Interfaces im Enterprise Services Repository an. Für die P2P-Kommunikation benötigen Sie ein Outbound-Service-Interface für den Aufruf bei der Consumer-Seite und ein Inbound-Service-Interface für die Implementierung des Service bei der Provider-Seite. Im ES Repository können Sie ein Inbound-Service-Interface einem Outbound-Service-Interface zuordnen. Diese Zuordnung ist nicht zwingend, erleichtert aber die später durchzuführende Konfiguration:

  • Im Backend-System bei der Konfiguration des logischen Ports (Interface-Pattern: zustandslos (XI 3.0 kompatibel) ).

  • Im Integration Directory bei der Konfiguration einer Direktverbindung (alle anderen Interface-Pattern).

Weitere Informationen: Interface-Pattern

Im ES Builder können Sie die Service-Interfaces folgendermaßen zuordnen:

  • Automatisch mit Hilfe eines Wizard

    Der Wizard legt ein Outbound-Service-Interface an, das zu dem jeweiligen Inbound-Service-Interface passt. Er legt auch eine Verbindung zwischen den beiden Service-Iinterfaces an, die angibt, dass die Interfaces zueinander passen und für eine Point-to-Point-Kommunikation verwendet werden können.

  • Manuell, indem Sie Service-Interfaces anlegen und sie einander zuordnen.

Empfehlung

SAP empfiehlt, dass Sie den Wizard verwenden, um automatisch Service-Interfaces anzulegen und zuzuordnen.

Für ein bereits im ES Repository vorhandenes Inbound-Interface legt der Wizard ein Outbound-Interface an. Dann gleicht er die beiden Service-Interfaces miteinander ab. Im Wizard geben Sie einen Namen für das Outbound-Iinterface an, für die Software-Komponentenversion und für den Namensraum, unter dem das Interface abgelegt werden soll. Wenn sich sowohl das Inbound- als auch das Outbound-Interface in der gleichen Software-Komponentenversion befinden, legt der Wizard nur ein neues Outbound-Interface an, das zu dem Inbound-Interface unter dem definierten Ziel-Namensraum passt. Befinden sich die beiden Interfaces jedoch in verschiedenen Software-Komponentenversionen, werden alle Objekte aus der Quell- in die Ziel-Software-Komponentenversion kopiert und ein neues Outbound-Interface wird angelegt. Der Wizard zeigt die Liste aller Objekte unter der Quell-Software-Komponentenversion an, die in die Ziel-Software-Komponentenversion kopiert werden. Die kopierten Objekte erscheinen in der Änderungsliste und müssen aktiviert werden.

Wenn sich Quell- und Ziel-Software-Komponentenversion unterscheiden, werden Verweise auf Objekte aus unterliegenden Software-Komponentenversionen nicht in die Ziel-Software-Komponentenversionen kopiert.

Die referenzierten Objekte werden in folgenden Fällen nicht kopiert:

  • Das Service-Interface, zum Beispiel, gehört zur Software-Komponentenversion A und verweist auf einen Datentyp, der zur Software-Komponentenversion B gehört. Wenn Sie zueinander passende Service-Interfaces in einer neuen Software-Komponentenversion C anlegen, kopiert der Wizard nicht den referenzierten Datentyp von Software-Komponentenversion B nach C.

  • Aggregierte Datentypen, die auf Datentypen von verschiedenen unterliegenden Software-Komponentenversionen verweisen, werden nicht kopiert.

In solchen Fällen gibt der Wizard für jedes Objekt eine Meldung aus, das nicht zur Ziel-Software-Komponentenversion kopiert wurde. Sie müssen die referenzierten Dateien manuell in die Ziel-Software-Komponentenversion kopieren oder Abhängigkeiten zwischen der Ziel-Software-Komponentenversion und der unterliegenden Software-Komponentenversionen definieren, so dass die Service-Interfaces zueinander passen.

Hinweis

IDocs und RFCs können nicht von einer Software-Komponentenversion zur anderen kopiert werden. Sie müssen sie manuell in die Ziel-Software-Komponentenversion importieren und dann die entsprechende Message dem Outbound-Service-Interface zuweisen.

Voraussetzungen

Wenn Sie Service-Interfaces manuell anpassen, muss eines davon editierbar sein. Sie müssen auch den unten beschriebenen Regeln entsprechen.

Wann passen Service-Interfaces zueinander?

Im einfachsten Fall sind die Service-Interfaces bis auf ihren Namen und ihre Kategorie ( Inbound beziehungsweise Outbound ) identisch, nämlich wenn das Outbound-Service-Interface und alle Interface-Objekte, auf die von diesem Service-Interface verwiesen wird, Kopien der entsprechenden Objekte eines Inbound-Service-Interface sind. Wenn aber beispielsweise der Consumer nur eine Operation des Inbound-Service-Interface aufrufen will, ist es nicht notwendig, die anderen Operationen des Inbound-Service-Interface auch beim Outbound-Service-Interface anzulegen.

Einfach ausgedrückt dürfen also die Operationen und die zugehörigen Datenstrukturen des Outbound-Service-Interfaces eine Untermenge der Operationen und zugehörigen Datenstrukturen des zugewiesenen Inbound-Interfaces sein. Der Service-Interface-Editor bietet eine Prüfung für die Service-Interface-Paare an, um die Kompatibilität von Inbound- und Outbound-Service-Interface festzustellen. Diese Kompatibilitätsprüfung geht in mehreren Schritten vor, von den Service-Interfaces über die Operationen bis zu den Datentypen. Um vor einer Zuweisung von Service-Interfaces abschätzen zu können, ob zwei Service-Interfaces zueinander passen, beschreibt der folgende Abschnitt diese Schritte.

Passende Service-Interfaces

Zwei Service-Interfaces passen zueinander, wenn folgende Bedingungen erfüllt sind:

  • Das eine Service-Interface hat die Kategorie Outbound und das andere Service-Interface die Kategorie Inbound . Keines der Service-Interfaces darf abstrakt sein.

  • Die beiden Service-Interfaces haben das gleiche Interface-Pattern .

  • Zu jeder Operation des Outbound-Service-Interface gibt es eine passende Operation beim Inbound-Service-Interface (siehe unten).

Passende Operationen

Eine Operation eines Inbound-Service-Interface passt zu einer Operation eines Outbound-Service-Interface (und umgekehrt), wenn folgende Bedingungen erfüllt sind:

  • Beide Operationen müssen den gleichen Modus haben ( asynchron oder synchron ).

  • Beide Operationen müssen das gleiche Operation-Pattern haben.

  • Der Message-Typ für den Request, auf den von der jeweiligen Operation verwiesen wird, muss den gleichen Namen und den gleichen XML-Namensraum haben. Die Namen der Operationen dürfen unterschiedlich sein. Gleiches gilt für die Response bei synchroner Kommunikation.

  • Verweist die Operation des Inbound-Service-Interface auf einen Fault-Message-Typ, muss auch die Operation des Outbound-Service-Interface auf einen Fault-Message-Typ mit gleichem Namen und XML-Namensraum verweisen.

  • Die Datentypen der Message-Typen, auf die das Outbound-Service-Interface für die Request-Message (und gegebenfalls für die Response- und die Fault-Message) verweist, müssen zu den entsprechenden Datentypen beim Inbound-Service-Interface kompatibel sein (siehe unten).

Passende Datentypen

Die Prüfung, ob die korrespondierenden Datentypen zueinander kompatibel sind, ist ausreichend bis es zum Vergleich von Facetten eines XSD-Typs kommt. Die Datentypen werden nach der gleichen Methode verglichen wie die anderen Objekte: Die Strukturen sind kompatibel wenn sie die gleichen Felder (Elemente und Attribute) enthalten und wenn diese Felder zueinander kompatible Typen, Häufigkeiten, Details und Default-Werte haben. Es gibt jedoch ein paar Ausnahmen, beispielsweise darf die Zielstruktur Attribute oder Elemente enthalten, die nicht in der Ausgangsstruktur vorkommen, wenn diese nicht erforderlich sind und wenn die Häufigkeit optional oder verboten ist (bei Attributen) beziehungsweise minOccurs=0 (bei Elementen). (Welche Struktur die Ausgangsstruktur und welche die Zielstruktur ist, ist abhängig von der Richtung des Message-Austauschs; vergleiche die Übersicht zum Design von Mappings).

Achtung

Die Prüfung kann nicht den gesamten Sprachumfang des XSD-Schemas überprüfen. Für Service-Interfaces, deren Operationen auf externe Messages verweisen, meldet die Prüfung daher nicht notwendigerweise einen Fehler, wenn die Datenstrukturen nicht kompatibel sind. Insbesondere gibt es folgende Einschränkungen:

  • Die verglichenen Datenstrukturen müssen beide korrekt sein. Beispielsweise werden nicht alle korrekten Facetten übersprungen oder in der Kompatibilitätsprüfung berücksichtigt.

  • Einige Sprachelemente des XSD-Schemas, die bei einem Verweis auf eine externe Message in der Datenstruktur enthalten sein können, werden nicht unterstützt. Dazu zählen beispielsweise die Elemente redefine und any sowie die Attribute blockDefault , finalDefault und substitutionGroup .

  • Der Vergleich von Strukturen ist beispielsweise in folgenden Punkten eingeschränkt:

    • Die Details whiteSpace und pattern werden nicht überprüft.

    • Wird für das Feld der Ausgangsstruktur die Facette pattern verwendet, werden alle anderen Details nicht überprüft.

    • Wenn sich die Reihenfolge von den Unterelementen von Ausgangs- und Zielfeld unterscheidet, wird eine Warnung ausgegeben.

Vorgehensweise

Service-Interfaces mit dem Wizard anpassen

  1. Öffnen Sie das Inbound-Service-Interface im Service-Interface-Editor.

  2. Im Editor-Menü, wählen Sie Anfang des Navigationspfads Werkzeuge Nächster Navigationsschritt Passendes Interface anlegen Ende des Navigationspfads.

  3. Folgen Sie den Anweisungen des Assistenten.

Hinweis

Sie können nur ein passendes Outbound-Interface für ein enstprechendes Inbound-Interface im ES Repository anlegen.

Service-Interfaces manuell anpassen

Abhängig davon, welches Service-Interface änderbar ist, können Sie den folgenden Verweis bei den Service-Interfaces eintragen:

  • Ist das Outbound-Service-Interface änderbar, können Sie dort ein oder mehrere passende Inbound-Service-Interfaces eintragen. Bei jedem Inbound-Service-Interface wird das Outbound-Service-Interface als nicht änderbarer Eintrag angezeigt (auch dann, wenn das Inbound-Service-Interface in Bearbeitung ist).

  • Ist das Inbound-Service-Interface änderbar, können Sie dort ein oder mehrere passende Outbound-Service-Interfaces eintragen. Bei jedem Outbound-Service-Interface wird das Inbound-Service-Interface als nicht änderbarer Eintrag angezeigt (auch dann, wenn das Outbound-Service-Interface in Bearbeitung ist).

    Gegenseitige Einträge sind möglich aber nicht erforderlich.

    1. Rufen Sie den Service-Interface-Editor für das änderbare Service-Interface auf.

    2. Wechseln Sie auf die Registerkarte Passende Service-Interfaces .

    3. Fügen Sie pro Service-Interface, auf das sie verweisen wollen, eine Zeile in der Tabelle ein und verweisen Sie auf jedes passende Service-Interface, beispielsweise mit Hilfe der Suchhilfe.

      Hinweis

      Auf Grund der großen Datenmenge im ES Repository kann der ES Builder bei der Suche nicht prüfen, ob die Service-Interfaces passend sind. Deshalb werden auch nicht passende Service-Interfaces in der Suchhilfe angeboten.

    4. Prüfen Sie Ihre Zuweisungen mit Hilfe der Funktion Zuordnung passender Service-Interfaces prüfen.

Ergebnis

Auf der Registerkarte Passende Service-Interfaces markiert der Service-Interface-Editor die passenden Service-Interfaces mit einem blauen Pfeil.