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:
Funktionsbaustein - Import-Parameter

Als Rückgabeparameter werden neben einem Return Code, der angibt, ob zu der eingegebenen Kundennummer Daten gefunden wurden, Name und Adressdaten des Debitoren genutzt:
Funktionsbaustein - Export-Parameter

Der Funktionsbaustein muss im Reiter Eigenschaften als „Remote fähiger Baustein“ klassifiziert sein, damit anschließend ein SOAP-Service dazu erstellt werden kann:
Funktionsbaustein - Ablaufart

Die Anlage des Services erfolgt per Rechtsklick auf den Baustein, Menüpunkte Anlegen und Web Service:
WebService zum Funktionsbaustein anlegen

Im folgenden Dialog werden Name und Beschreibung des SOAP-WebServices eingegeben. Die Daten können mit dem SAP-Funktionsbaustein übereinstimmen:
Wizard Anlage Webservice

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:
WebService im SOAMANAGER

Nach Auswahl des Services muss dann im Reiter „Konfiguration“ noch ein Service-Eintrag angelegt werden:
Service im SOAMANAGER anlegen

Danach wird im unteren rechten Bereich die WSDL-URL für den Service angezeigt, die für das aufrufende System erforderlich ist:
WSDL im SOAMANAGER

Mit dem kostenlosen Tool SoapUI kann dann der Service mit Hilfe der WSDL hinzugefügt werden:
WebService zu SoapUI hinzufügen

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:
WebService zu SoapUI hinzufügen mit Beispiel-Request

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:
SoapUI - Test des WebServices

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:
SOAMANAGER - Aktivierung Trace

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:
SOAMANAGER - Anzeige Trace

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.