Einrichtung von SOAP-WebServices in SAP
Christoph Reise / 13.10.21 / Managed Services
Im Rahmen eines Entwicklungsprojekts sollen Daten aus SAP in einer Webanwendung ausgegeben und dort geändert werden können. Als Schnittstellentechnik sollen SOAP-WebServices verwendet werden, da es sich dabei um einen etablierten Standard handelt und die Implementierung in SAP mit geringem Aufwand möglich ist.
Für jeden WebService wird zunächst ein Funktionsbaustein benötigt, der Daten ausgibt bzw. Eingaben verarbeitet. Als Beispiel wird ein neuer Funktionsbaustein angelegt, der Daten zu Debitoren aus der Finanzbuchhaltung (Modul SAP-FI) liefert.
Bei den Import- und Export-Parametern des Bausteins muss das Häkchen in der entsprechenden Spalte gesetzt sein (Wertübergabe), da bei RFC-fähigen Bausteinen keine Referenzparameter zulässig sind.
Als Import-Parameter wird die Kundennummer verwendet:
Als Rückgabeparameter werden neben einem Return Code, der angibt, ob zu der eingegebenen Kundennummer Daten gefunden wurden, Name und Adressdaten des Debitoren genutzt:
Der Funktionsbaustein muss im Reiter Eigenschaften als „Remote fähiger Baustein“ klassifiziert sein, damit anschließend ein SOAP-Service dazu erstellt werden kann:
Die Anlage des Services erfolgt per Rechtsklick auf den Baustein, Menüpunkte Anlegen und Web Service:
Im folgenden Dialog werden Name und Beschreibung des SOAP-WebServices eingegeben. Die Daten können mit dem SAP-Funktionsbaustein übereinstimmen:
Nach der Anlage des Services muss dieser in der ABAP Workbench aktiviert werden. Anschließend wird Transaktion SOAMANAGER aufgerufen und darin nach dem Service gesucht:
Nach Auswahl des Services muss dann im Reiter „Konfiguration“ noch ein Service-Eintrag angelegt werden:
Danach wird im unteren rechten Bereich die WSDL-URL für den Service angezeigt, die für das aufrufende System erforderlich ist:
Mit dem kostenlosen Tool SoapUI kann dann der Service mit Hilfe der WSDL hinzugefügt werden:
Das Häkchen bei „Create sample requests“ kann gesetzt werden, damit das Tool Beispiel-Abfragen erstellt, mit denen der Service anschließend getestet werden kann:
In SoapUI müssen dann unter „Auth“ noch die Anmeldedaten für einen SAP-User hinzugefügt werden, mit dem der Zugriff auf SAP erfolgt.
Dann wird in den Eingabeparametern auf der linken Seite eine Debitorennummer eingegeben und der Request zum Test abgeschickt:
Falls erforderlich kann in Transaktion SOAMANAGER außerdem ein Trace aktiviert werden, um so für nachfolgende Requests die genauen Ein- und Ausgabeparameter nachvollziehen zu können. Dies ist insbesondere bei der Analyse von Problemen hilfreich. Dazu unter „Protokolle und Traces“ die Trace-Konfiguration öffnen und den Trace-Level auf „Vollständiger Trace“ ändern:
Alle Requests und Responses innerhalb der angegebenen Zeit (z. B. 300 Sekunden) werden dann vollständig protokolliert und können im Protokoll/Trace-Viewer angezeigt werden. Im unteren Bereich werden links der Request und rechts die Response angezeigt:
Fazit: SOAP-WebServices sind eine effiziente Technologie, um Daten aus SAP in anderen Systemen anzeigen oder ändern zu können. Im Zusammenspiel mit SoapUI und SAP-Transaktion SOAMANAGER lassen sich Requests und Responses gut testen, sowie mögliche Fehler mit Hilfe des Tracings von Payloads genau analysieren.