Show TOC Anfang des Inhaltsbereichs

Funktionsdokumentation Import für WSDL-Dokumente im rpc-style  Dokument im Navigationsbaum lokalisieren

Verwendung

Der Integration Builder erlaubt den Import von WSDL-Dokumenten, um die darin enthaltenen Message-Definitionen verwenden zu können. Unter bestimmten Voraussetzungen können Sie die importierten Message-Definitionen als externe Messages in weiteren Editoren des Integration Builders und der Proxy-Generierung verwenden.

Link auf externe Webseite

Aus technischen Gründen unterstützen die Proxy-Generierung und die jeweiligen Editoren im Integration Builder nicht den gesamten Sprachumfang von XML Schema beziehungsweise WSDL. Eine Übersicht, welche Sprachelemente unterstützt werden ist in einem Excel-Spreadsheet dokumentiert, der auf dem SAP Service Marketplace unter der Internetadresse service.sap.com/xi ® Media Library ® Documentation: SAP XI 3.0 (SP11) – Supported XML Schema and WSDL (EN).

Der Integration Builder erwartet externe Messages im Format document-style. Trotzdem können Sie auch WSDL-Dokumente importieren, die im Format rpc-style vorliegen. Der Integration Builder setzt solche Dokumente in ein äquivalentes WSDL-Dokument im Format document-style um.

Voraussetzungen

     Obwohl es nicht Standardkonform ist, kann ein WSDL-Dokument sowohl Operationen mit Message-Definitionen im Format document-style als auch Operationen im Format rpc-style enthalten. In einem solchen Fall müssen Sie vor dem Import aus dem WSDL-Dokument zwei machen: Eines, das ausschließlich Definitionen im document-style Format enthält und eines, das ausschließlich Definitionen im rpc-style enthält.

     Das WSDL-Dokument im Format rpc-style sollte außerdem keine soapenc:Array-Typen verwenden, die oft im Rahmen der SOAP-Kodierung in Dokumenten mit diesem Format genutzt werden. soapenc:Arraynutzt das Tag <xsd:any>, das von Editoren des Integration Builders beziehungsweise der Proxy-Generierung entweder ignoriert oder nicht unterstützt wird.

Link auf externe Webseite

Sie können die soapenc:Array-Typen durch eine äquivalente <sequence> ersetzen, siehe auch das folgende Beispiel von WS-I unter der Internetadresse http://www.ws-i.org/Profiles/BasicProfile-1.0-2004-04-16.html#refinement16556272.

     Sie haben eine externe Definition im Integration Builder (Design) angelegt.

Funktionsumfang

Beim Import eines WSDL-Dokuments im Format rpc-style nimmt der Integration Builder einige Umsetzungen vor. Im folgenden ist mit einem Ausgangsdokument, das zu importierende WSDL-Dokument im Format rpc-style gemeint und mit dem dazu gehörenden Zieldokument das beim Import zu erzeugende WSDL-Dokument im Format document-style. Nach einem erfolgreichen Import sehen Sie das Ausgangsdokument auf der Registerkarte Importiertes Dokument und das Zieldokument auf der Registerkarte WSDL.

Die Definitionen in einem WSDL-Dokument lassen sich zwei Bereichen zuordnen: Einer abstrakten Beschreibung (enthält die Elemente <wsdl:types>, <wsdl:message> und <wsdl:portType>) und einer konkreten Beschreibung (enthält die Elemente <wsdl:binding> und <wsdl:service>). Im Integration Repository wird nur die abstrakte Beschreibung benötigt. Daher konzentiert sich die Importfunktion auf diesen Teil.

Umsetzung von Namensräumen

Für WSDL-Dokumente im Format rpc-style kann es in der konkreten Beschreibung des WSDL-Dokuments verschiedene SOAP-Bindings für die gleiche Operation geben. In solchen Fällen kann jedes SOAP-Binding einen anderen Namensraum haben, der den Namensraum des Wurzelelements der Message bestimmt. (siehe auch: http://www.w3.org/TR/wsdl#_soap:body).

Um den Import des Ausgangsdokuments zu vereinfachen, ignoriert der Integration Builder den Teil mit der konkreten Beschreibung und damit den Namensraum des SOAP-Bindings. Statt dessen geht der Integration Builder bezüglich des Namensraums folgendermaßen vor:

     Der Ziel-Namensraum des WSDL-Schemas (von <wsdl:definitions>) wird beim Import als Ziel-Namensraum für das Wurzelelement der Messages übernommen.

     Die Ziel-Namensräume der Schemata für die WSDL-Typen (von <wsdl:types>) bleiben beim Import gleich.

     Stimmt der Ziel-Namensraum für das Wurzelelement der Messages mit dem Ziel-Namensraum eines anderen Schemas überein, werden die beiden Schemata in ein gemeinsames Schema des Zieldokuments aufgenommen.

Umsetzung von Namen

Für WSDL-Dokumente im Format rpc-style gibt es einige Namenskonventionen, über die Namenskonflikte vermieden werden. Beispielsweise sollte der Name des Wurzelelements einer Input-Message einer Operation den gleichen Namen wie die Operation haben. Um diese Konventionen für importierte WSDL-Dokumente zu gewährleisten, geht der Integration Builder alle <wsdl:portType>-Definitionen und alle Operationen dieser Definitionen im Ausgangsdokument durch und passt die Namen der Wurzelelemente für Messages an, falls sie nicht der Konvention entsprechen.

Der Name des Wurzelelementes einer Message wird im Tag <wsdl:part> über das Attribut element festgelegt. In der folgenden Tabelle wird zur Vereinfachung nur von dem Namen der Message gesprochen, gemeint ist aber der Name des Wurzelelements:

Namensumsetzungen für Message-Definitionen

Typ der Message

Umsetzung beim Import

Input-Message

Wenn es im Zieldokument noch keine Message mit dem Namen der gerade eingelesenen Operation gibt, erzeugt der Integration Builder eine solche neue Message und ein neues Element mit der Message-Definition.

Output-Message

Wenn es im Zieldokument noch keine Message gibt, die den gleichen Namen wie der gerade eingelesenen Operation und dem zusätzlichen Suffix „Response“ hat, erzeugt der Integration Builder eine solche neue Message und ein neues Element mit der Message-Definition.

Fault-Message

Wenn es im Zieldokument noch keine Fault-Message mit dem gleichen Namen wie die gerade eingelesene Fault-Message im Ausgangsdokument gibt, kopiert der Integration Builder die Fault-Message inklusive Message-Definition in das Zieldokument.

Aktivitäten

Um das parameter-orientierte WSDL-Dokument zu importieren, wählen Sie beim Import im Listenfeld Messages den Eintrag Unter Annahme von rpc-style (siehe auch: Externe Definitionen).

 

 

 

 

Ende des Inhaltsbereichs