How-to: SAP IDoc über HTTP versenden

Die gängigste Variante der Übertragung von IDocs von einem auf ein anderes System ist der Weg über das Dateisystem. Eine weitere Möglichkeit der Übertragung von IDocs ist das direkte Senden per http. Die Voraussetzungen dafür bringt SAP bereits mit, sodass lediglich die Konfiguration an entsprechenden Stellen notwendig ist jedoch keine weitere Software oder ähnliches benötigt wird.

Damit IDocs per http aus einem SAP-System gesendet werden können, müssen zunächst eine RFC-Verbindung und ein entsprechender Port konfiguriert werden. Wie diese beiden Schritte vollzogen werden und die Verbindung getestet wird kann wird im Folgenden dargestellt.

Unser E-Book zum Thema SAP IDoc

SAP IDoc [E-Book]

In diesem E-Book ist unser Know-how zu SAP IDoc zusammengefasst.

Schritt 1: Konfiguration RFC-Verbindung

Der erste Schritt ist die Konfiguration einer RFC-Verbindung. Dazu öffnet man die Transaktion SM59 (Konfiguration der RFC-Verbindungen). Hier gibt es mehrere Typen von RFC-verbindungen aus denen einer ausgewählt wird. Im vorliegenden Beispiel, soll das IDoc an einen externen Server versendet werden, daher wird “http-Verbindungen zu ext. Server” markiert und über die Schaltfläche “Anlegen” öffnet sich die Konfigurationsmaske.

Konfiguration der RFC-Verbindung

Konfiguration der RFC-Verbindung

Hier wird der Verbindung zunächst ein Name gegeben sowie eine Beschreibung gepflegt. Im vorliegenden Beispiel heisst die RFC-Verbindung “ZTEST”. Im Reiter “Technische Einstellungen” können Zielmaschine, Servicenummer und Pfadpräfix gepflegt werden. Im Beispiel ist der externe Server ein online Tool, welches den http-Request entgegennimmt und die übermittelten Daten anzeigt. Daher ist die Zielmaschine “mockbin.org”, die Servicenummer (oder Port) bleibt leer und das Pfadpräfix ist der Pfad zu unserem sogenannten “bin”, den wir angelegt haben also “/bin/4502cf8b-b2b8-4ee8-8ff8-f30ab60022ee”. Der “bin” ist der “Behälter” in dem die gesendeten Anfragen gesammelt werden. Also gibt der Pfad den Ablageort der Anfragen an. Die übrigen Reiter bleiben unbeachtet.

Tipp: Unter mockbin.org kann mit einem Klick auf “Create Bin” ganz einfach ein “bin” angelegt werden. Im Konfigurationsfenster als Vorlage XML auswählen und “bin” erstellen. Die zugehörige URL kann dann aus der Adressleiste des Browsers übernommen werden.

Daten der RFC-Verbindung

Daten der RFC-Verbindung

Schritt 2: Port einrichten

Der zweite Schritt ist die Einrichtung des Ports. Dies geschieht in der Transaktion WE21. Hier ist das Vorgehen zunächst ähnlich zu Schritt 1. Es gibt erneut mehrere Typen und es wird einer ausgewählt um dann mit der Schaltfläche “Anlegen (F7)” fortzusetzen. Im Beispiel wird der Port Typ “XML-http” verwendet. Dieser ist für die Übertragung per http gedacht. Nach dem Klick auf die Schaltfläche “Anlegen” öffnet sich im rechten Teil des Fensters eine Maske zur Konfiguration des neuen Ports. Zunächst werden ein Name und eine Beschreibung gepflegt. Hinter RFC-Destination wird die in Schritt 1 konfigurierte RFC-Verbindung eingetragen. Im verwendeten Beispiel “ZTEST”. Beim “Content type” wird text/xml ausgewählt. Die Checkbox “SOAP-Protokoll” kann wahlweise aktiviert oder deaktiviert werden. SOAP ist ein Netzwerkprotokoll für den Datenaustausch, welches verwendet werden kann, aber nicht muss. Bei der Verwendung von SOAP muss sichergestellt sein, dass das empfangende System das entsprechende Format unterstützt. Im Beispiel bleibt die Checkbox deaktiviert, sodass SOAP nicht verwendet wird.

Hinzufügen des Ports

Hinzufügen des Ports

Schritt 3: IDoc-Verarbeitung Testen

Mit diesen beiden Schritten ist die Konfiguration in SAP bereits abgeschlossen und die Verbindung kann getestet werden. Dazu beinhaltet SAP die Transaktion WE19. Mit dieser Transaktion kann ein IDoc zu Testzwecken versendet werden. Unter anderem gibt es dort die Möglichkeit ein bestehendes IDoc als Vorlage zunehmen und eine Kopie davon zu versenden. Dies ermöglicht einen praxisnahen Test. Diese Variante ist auch diejenige, die im Beispiel verwendet wird. Dazu wird über die Wertehilfe eine passende Vorlage gesucht und verwendet.
Tipp: Am besten verwendet man, falls vorhanden, ein IDoc welches an den Partner gerichtet war, welcher zukünftig per http erreicht werden soll. So kann mit echten Daten getestet werden und eine manuelle Eingabe von Testdaten wird umgangen.

Testwerkzeug - Wahl der Vorlage

Testwerkzeug – Wahl der Vorlage

Im darauffolgenden Fenster, wird das IDoc in einer Baumstruktur dargestellt und die Daten können angepasst werden. Da ein neuer Port angelegt wurde müssen auf jeden Fall die Felder des Kontrollsatzes angepasst werden. Zum Öffnen der entsprechenden Maske genügt ein Doppelklick auf die Daten hinter “EDIDC”.

Testwerkzeug - IDoc Ansicht

Testwerkzeug – IDoc Ansicht

Im Beispiel wird für den Empfänger der Port “ZTEST_PORT” und “Partnernummer MI7CLNT800” verwendet. Der Port wurde im zweiten Schritt konfiguriert und die Partnernummer ist die ID des Geschäftspartners, an den das IDoc “adressiert” sein soll. Für den Absender wird der Port des SAP Systems verwendet und die entsprechende Partnernummer angegeben. Im Beispiel sind sendender und empfangender Partner identisch. Der Nachrichtentyp ist der aus der Vorlage übernommene.
Achtung: Der Port muss in der Partnervereinbarung als Ausgangsparameter vorhanden sein!

Der Versand wird mit einem Klick auf die Schaltfläche “Standard Ausgabe” gestartet.

Testwerkzeug - Kontrollsatzfelder editieren

Testwerkzeug – Kontrollsatzfelder editieren

Wenn der Versand erfolgreich war erscheint folgende Meldung:

Sendebestätigung

Sendebestätigung

Ergebnis:

Das Ergebnis ist in SAP in der Transaktion WE02 sichtbar. Das versendete IDoc hat den Status 03 “Datenübergabe an Port OK”.

Ergebnis - IDoc Liste

Ergebnis – IDoc Liste

Im online Tool findet man das Ergebnis unter mockbin.org/bin/4502cf8b-b2b8-4ee8-8ff8-f30ab60022ee.

Ergebnis - Test Tool

Ergebnis – Test Tool

Im nächsten Blogbeitrag wird die Konfiguration zum Empfangen eines IDoc beschrieben.

Felix Tissen

Felix Tissen

Mein Name ist Felix Tissen und ich bin SAP Consultant bei mindsquare. Individuelle Softwarelösungen sind meine Leidenschaft.

Sie haben Fragen? Kontaktieren Sie mich!



Das könnte Sie auch interessieren

Nicht nur das Senden eines IDoc, sondern auch das Empfangen ist per http möglich. Beide Richtungen der Datenübermittlung sind unabhängig voneinander konfigurierbar. Um das Empfangen von IDocs per http möglich […]

weiterlesen

XI, PI, PO oder doch Cloud Integration? Wer sich heute mit den Middleware-Lösungen von SAP befassen möchte, stößt erstmal auf eine Vielzahl von ähnlich klingenden Begriffen. Aber was bedeuten diese […]

weiterlesen

SAP IDoc ist ein SAP-Werkzeug, mit denen Sie den Datenaustausch mit Ihren Partnern abbilden können. IDocs werden in SAP für die Übertragung von Informationen bzw. Nachrichten verwendet. Was sich genau […]

weiterlesen

4 Kommentare zu "How-to: SAP IDoc über HTTP versenden"

Vielen Dank – sehr informativ.
Wir haben einen externen webshop, welcher mit einer file-Schnittstelle beliefert wird und auch Aufträge aus dem webshop per file zurückmeldet.
Es werden also im batch Stammdaten und Buchungen per xml-file exportiert und importiert.
Man könnte nun also alle relevanten Stammdatenänderungen, Aufträge, Faktura, etc. per idoc über http versenden und das real time?
Und alle idoc Schnittstellen (hier SD) und ports etc sind vorhanden? So daß man das Ganze in ein paar Wochen umstellen könnte?

Antworten

Hallo Herr Mann,
die XML-HTTP Schnittstelle kann den Weg über die XML-Datei Schnittstelle ersetzen. SAP-seitig muss der entsprechende Port eingerichtet werden. Analog zu dem, den es für die XML-Datei Schnittstelle gibt. Hinzu kommt die RFC-Verbindung und die Partnervereinbarung.
Eine weitere wichtige Voraussetzung ist, dass der Webshop mit den HTTP-Anfragen umgehen kann.

Sind diese Voraussetzungen gegeben, ist eine Umstellung möglich.

Viele Grüße
Felix Tissen

Antworten

Hallo Herr Tissen,

wie kann ich mir anzeigen lassen, ob ein IDoc tatsächlich an das externe System des Partnerunternehmens versendet wurde?
Denn beim Partnerunternehmen kommt nichts an, obwohl im IDoc-Status “Datenübergabe an Port OK” und “IDoc wurde an ein SAP-System oder ein externes Programm gesendet” steht.
Es handelt sich dabei nicht um eine RFC-Verbindung.
Unser Port ist in dem Fall die SAP-POT (T für Test). Eine Partnervereinbarung ist ebenfalls vorhanden.

Danke im Voraus.

Viele Grüße
Yusuf Araz

Antworten

Hallo Herr Araz,

leider ist im IDoc Monitoring nicht sichtbar, ob die Nachricht auch wirklich beim Empfänger angekommen ist.
Dies liegt daran, dass sich das IDoc Monitoring auf die Sendersicht beschränkt.
Es könnte zum Beispiel an einer Firewall liegen, dass die Nachricht den Empfänger nicht erreicht.
Ob die Verbindung zum Empfänger generell funktioniert, können Sie über einen Verbindungstest in der SM59 prüfen.

Bei weiteren Fragen wenden Sie sich gerne per Mail an info@erlebe-software.de .

Viele Grüße
Felix Tissen

Antworten

Schreiben Sie einen Kommentar

Bitte füllen Sie alle mit * gekennzeichneten Felder aus. Ihre E-Mail Adresse wird nicht veröffentlicht.





Kontaktieren Sie uns!
Alexander Koessner-Maier
Alexander Kössner-Maier Kundenservice