How-to: SAP IDoc per HTTP empfangen
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 zu machen ist es erforderlich den entsprechenden Dienst zu aktivieren. Was genau zu tun ist, wird im Folgenden beschrieben.
Schritt 1: Service aktivieren
Im ersten Schritt wird der Service “idoc_xml” aktiviert. Dazu wird die Transaktion SICF (Pflege der Services) aufgerufen und nach dem Hierarchie-Typ “SERVICE” gefiltert.
Im darauffolgenden Fenster kann nach dem Servicenamen “idoc_xml” gefiltert und der Service per Rechtsklick “Service aktivieren” aktiviert werden. Der Service befindet sich in dem Pfad default_host\sap\bc\.
Hinweis
In der Partnervereinbarung muss der entsprechende Eingangsparameter für den Dokumenttyp gesetzt sein. Dies ist in der Transaktion WE20 für den beteiligten Partner möglich.
Testen der Übermittlung des IDoc
Zum Testen kann die App “Postman” aus dem Chrome Web Store verwendet werden. Mit Hilfe dieser App kann ein http Request an das SAP-System gesendet werden und der erfolgreiche Eingang überprüft werden. In Postman wird die Request URL in folgender Form eingeben:
http://[System-Adresse]:[Port]/sap/bc/idoc._xml?sap-client=[clientnr]
Falls erforderlich können im Reiter “Autorisierung” Zugangsdaten gepflegt werden. Im Reiter “Body” wird das IDoc als XML eingefügt. Über die Schaltfläche “Send” wird die Anfrage an das SAP-System gesendet.
In Postman wird bei erfolgreicher Übermittlung der Status “200 OK” angezeigt. Dies bedeutet, dass das IDoc erfolgreich an das SAP-System übermittelt wurde.
Im SAP-System kann das Ergebnis in der Transaktion WE02 angezeigt werden. Dort befindet sich nun ein eingegangenes IDoc. Dieses IDoc findet man unter dem entsprechenden Dokumententyp. Dort erhält man über den Status Informationen über den Verarbeitungsstand innerhalb von SAP.
Spezialfall: Statusänderung
Ein Spezialfall eines eingehenden IDoc ist eines vom Typ STATUS. Dieser Typ wird dazu verwendet, den Status eines bestehenden IDoc zu verändern. So kann zum Beispiel ein System welches ein IDoc empfangen hat, eine Rückmeldung über den Verarbeitungsstand geben. Damit das SAP-System ein solches IDoc verarbeiten kann, muss die entsprechende Partnervereinbarung angepasst werden. In der Partnervereinbarung muss in den Eingangsparametern der Nachrichtentyp STATUS hinzugefügt werden. SAP liefert den entsprechenden Vorgangscode „STA1“ direkt mit. Ein Beispiel für ein Statusupdate im XML-Format könnte wie folgt aussehen:
Die entscheidenden Elemente sind dabei diejenigen, die das Statusupdate enthalten. Im Element <E1Stats> werden alle Informationen gesammelt. Dazu gehören die Nummer des zu ändernden IDoc (<DOCNUM>), Datum und Zeit der Änderung (<LOGDAT>, <LOGTIM>) sowie der Status den das IDoc bekommen soll (<STATUS>). Durch die Angabe des Vorgangscodes im Eingangsparameter wird die Statusänderung automatisch verarbeitet. Im Beispiel wird der Status auf 12 gesetzt:
Auf diese Art und Weise können SAP-Systeme und auch nicht-SAP-Systeme eine Rückmeldung zu einem IDoc geben.