SAP Web Services in ABAP: Ein umfassender Leitfaden für Entwicklung und Nutzung

Screenshot: SAP SE80 Object Navigator - Web Service Assistent starten

In der modernen SAP-Systemlandschaft ist die reibungslose Integration verschiedener Anwendungen und externer Systeme entscheidender denn je. Sap Web Services spielen hierbei eine zentrale Rolle, indem sie eine standardisierte und flexible Methode für die Kommunikation zwischen Systemen auf Basis offener Standards wie SOAP und WSDL bereitstellen. Dieser Leitfaden richtet sich an ABAP-Entwickler und -Anfänger, die lernen möchten, wie man einen SAP Web Service bereitstellt, konsumiert und dessen Ausführung im ABAP-System nachverfolgt. Wir beleuchten die notwendigen Schritte und Tools, um Sie auf den Weg der effektiven Nutzung von SAP Web Services zu bringen.

Bereitstellung eines SAP Web Service Providers in ABAP

Die Bereitstellung eines Web Service aus einem ABAP-System ermöglicht es anderen Systemen, auf Funktionalitäten und Daten zuzugreifen, die in Ihrem SAP-System verankert sind. Der folgende Abschnitt beschreibt, wie ein einfacher Funktionsbaustein als Web Service bereitgestellt wird.

1. Erstellung eines Remote-fähigen Funktionsbausteins

Zunächst ist ein ABAP-Funktionsbaustein erforderlich, dessen Logik später über den Web Service verfügbar gemacht werden soll. Für unser Beispiel erstellen wir einen Funktionsbaustein, der eine Produktbeschreibung basierend auf einer übergebenen Produkt-ID zurückgibt.

Signatur und Quellcode des Funktionsbausteins:

FUNCTION ZGET_PROD_DESCRIPTION.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" VALUE(IV_PROD_ID) TYPE COMM_PRODUCT-PRODUCT_ID
*" EXPORTING
*" VALUE(RV_TEXT) TYPE STRING
*"----------------------------------------------------------------------
 SELECT SINGLE A~short_text INTO rv_text
 FROM COMM_PRSHTEXT AS A
 INNER JOIN comm_product AS B ON B~product_id = iv_prod_id
 AND B~product_guid = A~product_guid.
ENDFUNCTION.

Es ist absolut entscheidend, diesen Funktionsbaustein als “Remote-enabled” zu kennzeichnen. Dies geschieht in den Attributen des Funktionsbausteins und erlaubt den externen Aufruf über RFC oder Web Services. Ohne diese Einstellung kann der Funktionsbaustein nicht als SAP Web Service exponiert werden.

2. Starten des Web Service Erstellungs-Assistenten

Nachdem der Funktionsbaustein vorbereitet ist, nutzen wir den Web Service Erstellungs-Assistenten, um die Service-Definition zu generieren. Dieser Assistent führt Sie Schritt für Schritt durch den Prozess.

Screenshot: SAP SE80 Object Navigator - Web Service Assistent startenScreenshot: SAP SE80 Object Navigator – Web Service Assistent starten

Navigieren Sie in der Transaktion SE80 zum Object Navigator, wählen Sie den Funktionsbaustein aus und klicken Sie mit der rechten Maustaste, um den Assistenten zu starten (oder verwenden Sie das Menü “Hilfsmittel” -> “Wiederverwendbare Objekte” -> “Web Service”). Folgen Sie den Anweisungen des Assistenten, um die Erstellung abzuschließen. Achten Sie dabei auf die Auswahl der geeigneten Authentifizierungsmethode, die den Sicherheitsanforderungen Ihres Anwendungsfalls entspricht. Dies kann von der einfachen Benutzer/Passwort-Authentifizierung bis hin zu komplexeren SSL-basierten Szenarien reichen. Die Sicherheit von Schnittstellen ist ein zentraler Aspekt jeder Systemintegration. Wer sich auch für andere Softwarelösungen interessiert, findet Informationen zum Liberty Office kostenloser Download.

Weiterlesen >>  SAP NWDS: Meisterhaft Ansichten und Editoren in der Workbench verwalten

3. Service-Definition und WSDL-URL

Nach Abschluss des Assistenten finden Sie die erstellte Service-Definition im Object Navigator.

Screenshot: SAP SE80 Service-Definition mit WSDL-Tab für ABAP Web ServiceScreenshot: SAP SE80 Service-Definition mit WSDL-Tab für ABAP Web Service

Wechseln Sie zum Reiter “WSDL”. Hier finden Sie den Link zur WSDL-Datei (Web Services Description Language) Ihres neuen Web Services. Die WSDL-Datei ist eine XML-basierte Beschreibung der Schnittstelle des Web Services und dient als “Vertrag” zwischen dem Service-Provider und dem Service-Konsumenten. Notieren Sie sich diesen Link, da er für die Konfiguration und den Konsum des Services essenziell ist.

4. Konfiguration in SOAMANAGER

Obwohl die Service-Definition erstellt ist, muss der Web Service noch im System aktiviert und ein Endpunkt konfiguriert werden, um extern erreichbar zu sein. Dies geschieht über die Transaktion SOAMANAGER.

Screenshot: SAP SOAMANAGER Übersicht der Web Service KonfigurationScreenshot: SAP SOAMANAGER Übersicht der Web Service Konfiguration

Starten Sie die Transaktion SOAMANAGER und klicken Sie auf “Web Service Configuration”. Hier können Sie Ihre soeben erstellte Service-Definition finden. Klicken Sie auf den Hyperlink Ihrer Service-Definition, um eine neue Dienstkonfiguration zu erstellen.

Screenshot: SOAMANAGER - Neuen SAP Web Service Endpunkt anlegenScreenshot: SOAMANAGER – Neuen SAP Web Service Endpunkt anlegen

Wählen Sie aus Sicherheitsgründen die Option “SSL” (Secure Sockets Layer), um eine verschlüsselte Kommunikation zu gewährleisten, insbesondere wenn sensible Daten übertragen werden. Diese Maßnahme ist unerlässlich für die Datenintegrität und den Schutz vor unautorisiertem Zugriff.

Klicken Sie auf “Fertigstellen”.

Screenshot: SOAMANAGER - Abschluss der Konfiguration eines SAP Web Service ProvidersScreenshot: SOAMANAGER – Abschluss der Konfiguration eines SAP Web Service Providers

Ihr SAP Web Service ist nun bereit für den Konsum. Klicken Sie auf das Symbol, um die Endpunkt-URL abzurufen.

Notieren Sie sich diese URL für die spätere Verwendung beim Konsum des Services. Sie ist der direkte Zugriffspunkt für externe Systeme.

Screenshot: SOAMANAGER - Generierte URL für den Konsum des ABAP Web ServiceScreenshot: SOAMANAGER – Generierte URL für den Konsum des ABAP Web Service

Konsumieren eines SAP Web Service in ABAP

Das Konsumieren eines externen oder intern bereitgestellten Web Services in einem ABAP-System ermöglicht es Ihrem SAP-System, auf Funktionalitäten anderer Anwendungen zuzugreifen.

1. Service Consumer in SE80 anlegen

In der Transaktion SE80 erstellen Sie einen neuen Service Consumer. Wählen Sie die Option “Externe WSDL”, da Sie die URL der WSDL-Datei des bereitzustellenden Services verwenden werden.

Weiterlesen >>  Microsoft Word Grundlagen – Der einfache Einstieg

Screenshot: SAP SE80 - Service Consumer erstellen über externe WSDL-URLScreenshot: SAP SE80 – Service Consumer erstellen über externe WSDL-URL

Geben Sie die WSDL-URL ein, die Sie im letzten Schritt der Web Service Provider-Erstellung erhalten haben (aus SOAMANAGER, nicht aus SE80 direkt).

2. Aktivierung des Consumer Proxy und Klassenname

Aktivieren Sie Ihren Consumer Proxy. Das System generiert automatisch eine ABAP-Klasse, die als Schnittstelle zum Web Service dient. Notieren Sie sich den Namen dieser ABAP-Klasse. Sie wird im ABAP-Report verwendet, um den Web Service aufzurufen.

Screenshot: SAP SE80 - Aktivierung des Consumer Proxy für SAP Web ServicesScreenshot: SAP SE80 – Aktivierung des Consumer Proxy für SAP Web Services

3. Logischen Port in SOAMANAGER erstellen

Ähnlich wie bei der Provider-Konfiguration muss auch für den Consumer ein logischer Port in SOAMANAGER erstellt werden, um die Verbindung zum tatsächlichen Endpunkt des Web Services herzustellen.

Screenshot: SOAMANAGER - Erstellung eines logischen Ports für SAP Web Service KonsumScreenshot: SOAMANAGER – Erstellung eines logischen Ports für SAP Web Service Konsum

Stellen Sie sicher, dass Sie die korrekte URL verwenden, die Sie im letzten Schritt der Web Service-Erstellung erhalten haben. Die Verwendung der WSDL-URL, die direkt aus SE80 stammt, führt zu einem Fehler, da sie lediglich die Definition, nicht aber den aktiven Endpunkt beschreibt.

Screenshot: Fehlermeldung bei falscher URL-Verwendung im SAP Web Service KonsumScreenshot: Fehlermeldung bei falscher URL-Verwendung im SAP Web Service Konsum

Eine fehlerhafte URL-Konfiguration ist eine häufige Fehlerquelle. Achten Sie stets darauf, die Endpunkt-URL aus der SOAMANAGER-Konfiguration zu verwenden. Für allgemeine Softwarefragen kann es hilfreich sein, sich über “Libre Office oder Microsoft Office” zu informieren, um die beste Lösung für Ihre Bedürfnisse zu finden. Wer eine spezifische Software wie PowerPoint für Linux herunterladen möchte, findet hierzu auch weiterführende Anleitungen.

4. Web Service im ABAP-Report aufrufen

Jetzt können Sie den Web Service in einem ABAP-Report aufrufen. Die Datentypen für die Ein- und Ausgabeparameter können Sie in SE80 einsehen, indem Sie die generierte Consumer-Proxy-Klasse untersuchen.

data: lr_proxy TYPE REF TO CO_ZPRODUCTDESCRIPTION4,
      input TYPE ZGET_PROD_DESCRIPTION,
      output TYPE ZGET_PROD_DESCRIPTION_RESPONSE.

input-iv_prod_id = 'ARNO_TEST004'.

CREATE OBJECT lr_proxy
  EXPORTING
    LOGICAL_PORT_NAME = 'ZLP_JERRY1'.

CALL METHOD lr_proxy->ZGET_PROD_DESCRIPTION
  EXPORTING
    input = input
  IMPORTING
    output = output.

Dieser Code zeigt, wie ein Objekt der Consumer-Proxy-Klasse instanziiert und der Web Service-Aufruf über die Methode des Proxys getätigt wird. Nach der Ausführung des Reports sollte das Ergebnis des Web Service-Aufrufs im ABAP-System sichtbar sein.

Screenshot: Ergebnis der SAP Web Service Ausführung im ABAP DebuggerScreenshot: Ergebnis der SAP Web Service Ausführung im ABAP Debugger

Das Ergebnis zeigt die erwartete Produktbeschreibung, die vom Web Service Provider zurückgegeben wurde.

Weiterlesen >>  SolidWorks auf Mac und iOS: Möglichkeiten, Herausforderungen und Überlegungen

Ablaufverfolgung (Tracing) der SAP Web Service Ausführung

Bei der Entwicklung und Fehlerbehebung von SAP Web Services ist es entscheidend, die Ausführung und den Datenfluss nachvollziehen zu können. Die Transaktion SRT_UTIL bietet hierfür leistungsstarke Tracing-Funktionen.

Trace-Konfiguration mit SRT_UTIL

Um die Ausführung eines Web Services zu verfolgen, konfigurieren Sie zunächst das Tracing für Ihren Benutzer in der Transaktion SRT_UTIL.

Screenshot: SRT_UTIL - Konfiguration des Funktions-Trace für SAP Web ServicesScreenshot: SRT_UTIL – Konfiguration des Funktions-Trace für SAP Web Services

Fügen Sie eine neue Konfiguration für den Benutzer hinzu, der den Web Service-Aufruf auslöst. Stellen Sie den “Functional Trace” auf “High”, um detaillierte Informationen zu erfassen. Bei Bedarf können Sie auch den Performance- und Payload-Trace aktivieren, um Leistungsdaten oder die vollständigen Request-/Response-Nachrichten zu protokollieren. Speichern Sie die Konfiguration, um die Änderungen zu aktivieren.

Analyse der Trace-Ergebnisse

Führen Sie den Report aus, der den Web Service-Aufruf startet. Sobald die Ausführung abgeschlossen ist, wechseln Sie in der Transaktion SRT_UTIL zum Reiter “Functional Trace” und klicken Sie auf “Aktualisieren”. Sie sollten nun mehrere Einträge für die Ablaufverfolgung sehen.

Screenshot: SRT_UTIL - Anzeige der Funktions-Trace-Ergebnisse eines SAP Web Service AufrufsScreenshot: SRT_UTIL – Anzeige der Funktions-Trace-Ergebnisse eines SAP Web Service Aufrufs

Doppelklicken Sie auf die Zeile vom Typ “Response”, um die Details der vom Service Provider zurückgegebenen Daten einzusehen. Hier finden Sie beispielsweise den Wert der Produktbeschreibung, der als Ergebnis des Web Service-Aufrufs übermittelt wurde. Diese detaillierte Ansicht ist unerlässlich für die Diagnose von Problemen und die Validierung der korrekten Datenübertragung. Für weitere technische Einblicke in Software auf verschiedenen Plattformen, kann man sich auch mit der Installation von Microsoft Word auf Mac M1 beschäftigen oder schauen, wie man Photoshop 2022 RAR nutzt.

Fazit

Die Beherrschung von SAP Web Services ist eine Schlüsselkompetenz für jeden ABAP-Entwickler, der moderne Integrationsszenarien in SAP-Systemen realisieren möchte. Dieser Leitfaden hat Ihnen die grundlegenden Schritte zur Bereitstellung, zum Konsum und zur Fehlerbehebung von SAP Web Services im ABAP-Kontext aufgezeigt. Von der Vorbereitung des Funktionsbausteins über die Konfiguration in SE80 und SOAMANAGER bis hin zur Ablaufverfolgung mit SRT_UTIL haben Sie einen umfassenden Überblick über den Lebenszyklus eines SAP Web Service erhalten. Durch die Anwendung dieser Techniken können Sie robuste und effiziente Schnittstellen entwickeln, die die Kommunikation zwischen heterogenen Systemen ermöglichen und die digitale Transformation Ihres Unternehmens vorantreiben. Nutzen Sie dieses Wissen, um Ihre SAP-Integrationsprojekte erfolgreich umzusetzen und die volle Leistungsfähigkeit Ihrer SAP-Systeme zu erschließen.