Kontakt & Service
Jetzt Beratung vereinbaren

In wenigen Schritten einen Beratungs­termin mit unseren Experten buchen.

Anwender Helpdesk

Hilfestellung bei Problemen in Ihren SAP-Systemen.

Schulungen

Unser Schulungsangebot. Jetzt informieren!

Webinare

Unser Webinarangebot. Jetzt informieren!

SAP SOAP Web Services

News & Wissen Schnittstelle SAP SOAP Web Service: Datenaustausch in Echtzeit

In meinem vorherigen Artikel bin ich auf die verschiedenen Möglichkeiten eingegangen, wie sich ein SAP S/4HANA-System an andere Systeme anbinden lässt. Diesmal geht es um die Schnittstelle SAP SOAP Web Service: Erfahren Sie anhand eines Beispiels, wie ebendiese angebunden werden kann und worauf man dabei achten sollte.

SAP SOAP Web Service - Simple Object Access Protocol: Allgemeine Beschreibung

SAP SOAP Web Service ist eine Art von Webdienst, der das Simple Object Access Protocol (SOAP) verwendet, um Daten zwischen Systemen zu übertragen. SOAP ist ein Messaging-Protokoll, das es Anwendungen ermöglicht, strukturierte Daten über das Internet unter Verwendung des HTTP- oder HTTPS-Protokolls auszutauschen. Sie zählt insgesamt zu den etwas neueren Schnittstellen und erfreut sich großer Beliebtheit.

SAP stellt ein Webdienst-Framework bereit, mit dem Entwickler Webdienste im SAP-System erstellen und nutzen können. Das Framework basiert auf dem SOAP-Protokoll und der Web Services Description Language (WSDL). Es ermöglicht eine einfache Integration von SAP-Systemen mit anderen Systemen, wie z. B. Nicht-SAP-Systemen (AWS, etc.) oder mobilen Geräten.

SAP Web Services können für eine Vielzahl von Zwecken verwendet werden, z. B. für die Datenübertragung zwischen Systemen, die Integration mit externen Anwendungen oder sogar als Mittel für den Fernzugriff auf SAP-Funktionen. Sie werden typischerweise in Szenarien verwendet, in denen ein Datenaustausch in Echtzeit erforderlich ist oder in denen die Verwendung eigener Protokolle nicht möglich ist.

Die Nutzung eines SAP SOAP Web Services ist ein unkomplizierter Prozess. Grundsätzlich werden in SAP die Funktionen in Form von Funktionsbausteinen angelegt und ausprogrammiert. Anschließend wird anhand der Funktionsbausteine/-gruppen ein sogenanntes WSDL (Web Service Description Language)-File erzeugt. Dieses WSDL-File enthält alle Informationen zu den einzelnen Funktionen sowie der Export- und Importparameter. Über die Transaktion „SOAMANAGER“ wird der Service bzw. das Binding angelegt. Dieser Service wird dem externen System zur Verfügung gestellt und kann in Form einer URL aufgerufen werden.

Web Services gelten bei SAP als eigenständige Softwarekomponente, die von beliebig vielen Anwendungen genutzt werden können. Die ausgetauschten Daten basieren auf dem XML-Format und werden über das Netzwerkprotokoll SOAP (Simple Object Access Protocol) ausgetauscht.

WSDL

Die Web Services Description Language (WSDL) ist eine XML-basierte Sprache, die verwendet wird, um die von einem Webdienst angebotene Funktionalität zu beschreiben. Im Kontext von SAP-Systemen wird die WSDL verwendet, um die Schnittstelle von SAP-Webdiensten zu definieren, die auf dem Simple Object Access Protocol (SOAP) basieren und von anderen Systemen oder Anwendungen verwendet werden können.

Die WSDL-Datei definiert den Dienst, einschließlich der ausführbaren Operationen, der Eingabe- und Ausgabeparameter und des Speicherorts des Dienstes.

Eine WSDL-Datei besteht aus mehreren Elementen, darunter:

  • das Definitionselement, das die Gesamtstruktur der WSDL-Datei enthält
  • das Element „types", das die im Dienst verwendeten Datentypen definiert
  • das Nachrichtenelement, das die Eingabe- und Ausgabeparameter für jede Operation definiert
  • das portType-Element, das die Operationen definiert, die vom Dienst ausgeführt werden können
  • das Bindungselement, das definiert, wie der Dienst an ein bestimmtes Protokoll wie SOAP gebunden ist
  • das Dienstelement, das den Ort des Dienstes definiert

Zusammenfassend ist WSDL eine XML-basierte Sprache, die verwendet wird, um die von Webdiensten angebotene Funktionalität zu beschreiben. Im Kontext von SAP-Systemen wird sie verwendet, um die Schnittstelle von SAP-Webdiensten zu definieren.

Web Service anlegen – Beispiel: Austausch von Daten zwischen zwei SAP-Systemen

Nachfolgend ein Beispiel für einen einfachen SAP SOAP Web Service. In diesem Beispiel ruft ein Report den Web Service mit der Funktion zur Ermittlung des Materialkurztextes auf. Die Anfrage enthält die Materialnummer. Der Rückgabewert des Funktionsbausteins enthält den Materialkurztext zum angegebenen Material.

Es ist wichtig zu beachten, dass dies ein einfaches Beispiel ist und dass in realen Szenarien die Anforderung und Antwort wahrscheinlich komplexer ist und zusätzliche Parameter enthalten sind.

Reihenfolge der Umsetzung bis zur Nutzung eines Web Service:

  • Funktionsbaustein anlegen – muss RFC-fähig sein
  • Web Service (Provider) anlegen
  • Service im SOAMANAGER anlegen und WSDL-File bzw. URL speichern
  • Test der Anwendung über SoapUI – auch über andere Tools möglich
  • Anlegen des Consumer Webservice anhand der erstellten WSDL
  • Service/Binding im SOAMANAGER anlegen und aktivieren
  • Programm, das den Webservice aufruft, erstellen und ausführen
  • Test und Monitoring

Anlegen Funktionsbaustein und Service-Provider

Anlegen eines Funktionsbausteins mit den Informationen die zur Verfügung gestellt werden sollen. Im Reiter Eigenschaften/Attributes muss das Häkchen für RFC-fähig gesetzt werden.

Anlegen des Service Providers über SE80. Anhand des Wizards können Einstellungen zum Web Service vorgenommen werden. In den Einstellungen wird der Funktionsbaustein zugeordnet, das Authentication-Profil ausgewählt und das Paket sowie der Transport ausgewählt.

Nach Fertigstellung des Web Services sollte im Menübaum ein neuer Ordner „Enterprise Services“ mit der Service Definition vorhanden sein.

Die neue Service Definition in der Übersicht mit allen Informationen.

SOAMANAGER

Bevor der Web Service durch andere Systeme genutzt werden kann, benötigen diese eine Beschreibung, wie und mit welchen Parametern der Web Service funktioniert. Diese Definition steckt in einem WSDL-File und wird zum Konsumieren des Web Services in SAP ABAP und anderen externen Systemen benötigt. Die Transaktion SOAMANAGER öffnet einen Browser für den Zugriff auf das SOA-Management und bietet die Möglichkeit, eine Download-URL für das WSDL-Dokument zu ermitteln.

Für die Konfiguration von Web Services stellt SAP den sogenannten SOA Manager zur Verfügung. Das Tool kann über den Transaktionscode SOAMANAGER gestartet werden und ermöglicht die einfache Konfiguration von benötigten Consumer-Proxys und Service Providern. Die Kommunikation zwischen dem Service und dem Service-Consumer wird hierbei über den logischen Port des Consumer-Proxys realisiert. Dabei kann der Port Aufrufe immer nur an einen einzigen Service-Endpunkt senden. Im Gegensatz dazu ist es jedoch möglich, dass ein Service-Endpunkt mehrere logische Ports aufruft.

Normale Web Service-Konfiguration plus einfache Web Service-Konfiguration (wird später beim Service Consumer verwendet):

Über das Suchfeld kann die Service Definition gesucht werden. Dieses ist in der Regel als Z* Objekt angelegt.

Über den Button „Create Service“ kann das Binding angelegt werden. Über den HTML-Website-Button (vierter von links) kann das WSDL-File angezeigt und gespeichert werden.

Nachdem das Binding angelegt wurde, kann die WSDL abgespeichert werden. Diese Datei muss als .WSDL gespeichert werden.

Testtool – SoapUI

Dies ist ein kostenloses Tool, das für den Test genutzt werden kann. An dieser Stelle können auch andere Tools verwendet werden. In die SoapUI kann das WSDL-File importiert werden.

Anschließend kann über den Request die jeweilige Funktion im XML-Format angezeigt und aufgerufen werden.

Request befüllen mit dem Übergabeparameter, in unserem Fall die Materialnummer.+

Je nach Einstellungen muss die Authorization im Testtool eingetragen werden.

Eingabe der Parameter:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:sap-com:document:sap:soap:functions:mc-style">

<soapenv:Header/>

<soapenv:Body>

<urn:ZsoapWsTemplate>

<IvMatnr>3007-01</IvMatnr>

</urn:ZsoapWsTemplate>

</soapenv:Body>

</soapenv:Envelope>

Ergebnis:

<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">

<soap-env:Header/>

<soap-env:Body>

<n0:ZsoapWsTemplateResponse xmlns:n0="urn:sap-com:document:sap:soap:functions:mc-style">

<EvMaktx>2 GB Dual Channel DDR2 SDRAM at 533MHz</EvMaktx>

</n0:ZsoapWsTemplateResponse>

</soap-env:Body>

</soap-env:Envelope>

Rückmeldung 200 - OK, dass der Aufruf erfolgreich war. Fehler können über die Monitoring-Transaktionen eingesehen werden.

Anlegen Service Consumer

Service Consumer anlegen mit den Einstellungen wie beim Service Provider. Hier muss das WSDL-File als lokales File oder als URL angegeben werden. Sollte das WSDL-File nicht dem richtigen Format entsprechen, kann es beim Upload zu Fehlern kommen. Dann muss das WSDL-File angepasst werden.

Resultat nach Anlage des Service Consumer im Menübaum:

Fertiger Consumer Web Service, ähnlich dem des Service Providers:

Aufruf anhand eines Reports aus einem SAP-System. Die Klasse „ZWSCO_ZWS_TEMPLATE“ wurde beim Anlegen des Consumers automatisch generiert und wird von uns für den Aufruf verwendet.

Monitoring

SRT_UTIL – Web Service Utilities

SRT_LOG – Error Log

Dieses Beispiel beinhaltet sowohl einen Service Provider wie auch einen Service Consumer. Je nach Anforderung wird jedoch meistens nur eines von beidem benötigt. Bei einem Service Provider legen wir das WSDL-File an und stellen es dem externen System zur Verfügung. Bei einem Service Consumer, „konsumieren“ wir eine WSDL eines externen Systems. Hierzu wird der Service anhand der zur Verfügung gestellten WSDL angelegt.

Fazit & Einschätzung

Zusammenfassend lässt sich sagen, dass SAP SOAP Web Services ein leistungsstarkes Tool zur Integration von SAP-Systemen mit anderen Systemen (SAP und Non-SAP) sind und den Datenaustausch in Echtzeit ermöglichen.

Im speziellen profitieren Unternehmen welche Daten über verschiedenste Systeme hinweg austauschen. Dieser Datenaustausch kann durch die einfache Handhabung schnell implementiert werden und ohne Probleme jederzeit erweitert werden. Dank der Flexibilität lassen sich Webservices unter unterschiedlichsten Bedingungen einsetzen. Sie sind einfach zu erweitern und mehrfach nutzbar. Unter diesem Aspekt lässt sich sagen, dass Webservices durch Ihre durchwegs positiven Eigenschaften einen wichtigen Bestandteil in einer modernen Systemlandschaft ausmacht und durch richtigen Einsatz einen Mehrwert für verschiedenste Bereiche schafft.

 

Stand: 20. April 2023
Newsletter Setzen Sie auf fundiertes Wissen aus allen Bereichen unserer Branche. Regelmäßig und stets aktuell.
Beratende Person
Kontakt Haben Sie Fragen oder wünschen weitere Informationen? Unsere Experten beraten Sie gerne.