ABAP-Proxy
Inhaltsverzeichnis
Kommunikation mit ABAP-Proxys
Aufgrund der einfachen Integrationsmöglichkeiten werden ABAP-Proxys häufig in Verbindung mit SAP PI (Process Integration) eingesetzt, um eine Webschnittstelle einzurichten. Bei SAP PI handelt es sich um eine Middleware, die die Kommunikation zwischen dem SAP-System und Fremdsystemen ermöglicht. Die Proxys verbinden die jeweiligen Systeme mit SAP PI und sind daher ebenfalls Bestandteil des Kommunikationsprozesses. Neben SAP PI kommen häufig auch SAP PO (Process Orchestration) und SAP XI (Exchange Infrastructure) als Middleware mit ABAP-Proxys zum Einsatz.
Aufbau von ABAP-Proxys
SOAP-Webservice
Ein ABAP-Proxy ist ein SOAP-Webservice (Simple-Object-Access-Protocol-Webservice). Bei SOAP handelt es sich um ein Nachrichtenprotokoll, das die Kommunikation zwischen verschiedenen Anwendungen standardisiert – es legt daher Regeln für den Datenaustausch fest. SOAP basiert auf den Standards der Beschreibungssprache WSDL (Web Services Description Language), welche Schnittstellen definiert.
Consumer- und Provider-Proxys
Grundsätzlich wird bei ABAP-Proxys zwischen Consumer- und Provider-Proxys unterschieden. Ein ABAP-Consumer-Proxy basiert auf einem Outbound-Service-Interface und ruft einen bereits vorhandenen Webservice auf, d. h. er „konsumiert“ ihn. Die bereitgestellte Schnittstelle des aufgerufenen Webservices bestimmt über die WSDL-Beschreibung auch die Schnittstelle (also Eingangs- und Ausgangsparameter) des ABAP-Consumer-Proxys.
In einer ABAP-Entwicklung wird ein Consumer-Proxy durch eine Proxy-Klasse repräsentiert, also eine ABAP-OO-Klasse, deren Proxy-Methode automatisch durchlaufen wird, wenn der sendende Webservice Daten an die Schnittstelle übergibt. In dieser Methode kann ein Entwickler dann die gewünschte SAP-Logik implementieren, um die Daten zu verarbeiten und ggf. eine Antwort an den Webservice zurückzuschicken.
Der ABAP-Provider-Proxy hingegen stellt einen Webservice nach außen, d. h. für andere Systeme, bereit. Die Schnittstelle für In- und Output-Parameter kann dabei aus verschiedenen Objekten wie RFC-Bausteinen abgeleitet werden. Der Proxy besteht dann aus einem ABAP-Object-Interface und einer implementierenden Klasse. Um die Schnittstelle mit Daten aus z. B. einem ABAP Programm zu versorgen, wird die Proxy-Methode der implementierenden Klasse aufgerufen und über Ein- und Ausgangsparameter mit Daten versorgt bzw. die Antwort wieder entgegengenommen.
Erstellen von ABAP-Proxys
Um vorhandene ABAP-Proxys einzusehen oder neue anzulegen, gehen Entwickler in die Transaktion „SPROXY“, den Enterprise Services Repository Browser. Im Anschluss können sie über den Button „MDR-Proxy anl.“ einen Wizard öffnen, mit dem sich neue Proxys erstellen lassen. In den meisten Fällen sind ABAP-Proxys im Zusammenspiel mit einem ESR (Enterprise Service Repository) im Einsatz, welches eine Middleware, z. B. SAP PI, bereitstellt. Dabei wird ein Proxy im ESR angelegt und über die Verbindung im SAP-System generiert.
Proxy-Standards
ABAP-Proxys bestehen aus Interface-Objekten: Hierunter zählen die Kommunikationsschnittstellen selbst sowie die entsprechenden Parameter und Datentypen. Ein generierter ABAP-Proxy kann seinen Interface-Objekten anhand von Metadaten im Integration Repository zugeordnet werden. Das Integration Repository ist ein digitales Archiv, indem sich die auszuliefernden Informationen für mehrere Integrationsszenarien befinden.
Kommunikationsschnittstellen
Kommunikationsschnittstellen verfügen entweder über einen synchronen oder einen asynchronen Modus. Zudem besitzen sie eine Kategorie, die bestimmt, welche ABAP-Proxy-Art generiert wird.
Kommunikationsschnittstellen werden in Outbound-Message-Interfaces und Inbound-Message-Interfaces unterschieden. Ein Outbound-Message-Interface wird auf einer ABAP-Objektklasse abgebildet – hierbei handelt es sich um eine abstrakte Darstellung mit Komponenten, die den Zustand und das Verhalten von ABAP-Objekten definieren. Die Inbound-Message wird über Client-Proxys übertragen, die Informationen an die Inbound-Schnittstelle senden. Bei der Generierung eines Proxys wird eine ABAP-Objektschnittstelle für das Inbound-Message-Interface erzeugt. Entwickler implementierten das Inbound-Message-Interface über eine ABAP-Objektklasse, um den Service zur Verfügung zu stellen.
Dem gegenüber stehen Server-Proxys. Diese werden aufgerufen, um einen Dienst zu starten, der ein Ergebnis synchron zurückgibt.
Das System generiert je nach Art der Kommunikation verschiedene Methoden mit folgenden Namen:
- EXECUTE_SYNCHRONOUS bei synchronen Interfaces
- EXECUTE_ASYNCHRONOUS bei asynchronen Interfaces
Diese Namen gelten unabhängig davon, ob es sich bei den Interfaces um Inbound- oder Outbound-Message-Interfaces handelt. Weitere Methoden von Proxy-Klassen beziehen sich auf die Implementierung von Protokollen oder die Aktivierung des Nachrichtenaustauschs.
Für Unternehmen, die SAP XI verwenden, sind folgende Schnittstellen relevant:
- Schnittstellen für den Nachrichtenaustausch zwischen Anwendungssystemen
- Schnittstellen, die von einem komponentenübergreifenden Integrationsprozess zum Senden und Empfangen von Nachrichten verwendet werden
Unternehmen können auf Schnittstellen zurückgreifen, die bereits in beiden Systemen vorhanden oder über einen Adapter an SAP XI angebunden sind. Zudem lassen auch Schnittstellen wie Message-Interfaces nutzen. Entwickler können die verschiedenen Schnittstellen auch in einem kollaborativen Prozess miteinander verbinden.
Parameter und Datentypen
Outbound- und Inbound-Message-Interfaces können als verschiedene Parameter für den ABAP-Proxy festgelegt werden. So wird der Ausgabemeldungstyp zu einem Parameter mit dem Namen OUTPUT und der Eingabemeldungstyp zu einem Parameter mit dem Namen INPUT – OUTPUT bezieht sich entsprechend auf eine ausgehende Nachricht, während sich INPUT auf eine eingehende Nachricht bezieht.
Beide Parameter stellen die Strukturen des jeweiligen Nachrichtentyps dar und enthalten ein Feld für die dazugehörige Datenkomponente. Diese wird über den Namen des Nachrichtentyps kommuniziert: Wenn der Nachrichtentyp zum Beispiel ein Report ist und auf den Datentyp InvoiceData verweist, wird eine entsprechende Struktur erzeugt.
Wiederverwendbare Datentypen bei der Proxy-Generierung werden im ABAP-Dictionary gespeichert – hierunter fallen zum Beispiel Datenelemente und Strukturen. Das ABAP Dictionary erzeugt Felder einer Struktur für lokale Elemente oder Attribute, sodass angelegte Datentypen aus dem Integration Repository wiederverwendet werden können.
Integration
Entwickler können ABAP-Proxy-Objekte nicht manuell im SAP-System, sondern nur mithilfe der ABAP-Proxy-Erzeugung ändern. Das liegt daran, dass ABAP-Proxy-Objekte lediglich Datenstrukturen abbilden, die im Integration Repository hinterlegt sind.
Nachrichtenschnittstellen mit RFC- oder IDoc-Nachrichten
Auch für Nachrichtenschnittstellen, die auf RFC- oder IDoc-Nachrichten verweisen, lassen sich ABAP-Proxys erstellen. Die erzeugten Proxy-Objekte verwenden den Namen des Message-Interfaces, der von der Nachricht als Präfix in der technischen Bezeichnung wiedergegeben wird. Die Proxy-Objekte der RFC- oder IDoc-Nachrichten gehören zum übergeordneten Message-Interface und werden bei der Erzeugung neuer Proxys nicht wiederverwendet.
Daten vom SAP-System an einen Outbound-Proxy senden
Um Daten vom SAP-System an einen Outbound-Proxy zu senden, entwickeln Verantwortliche ein Programm in der Transaktion „SE38“. Über das Programm werden die Datensätze an die erzeugte Proxy-Klasse gesendet, die sie an den Integration Server weitergibt.
Fazit
Verantwortliche nutzen ABAP-Proxys, um verschiedenen Systeme mittels Webschnittstelle mit dem SAP-System zu verbinden. Um Webschnittstellen bereitzustellen, verwenden Unternehmen häufig SAP PI, SAP PO oder SAP XI als Middleware.
Haben Sie weitere Fragen zu ABAP-Proxys? Kontaktieren Sie uns gerne, damit wir Sie bei Ihrem individuellen Anliegen beraten können.
Weitere interessante Seiten zu ABAP-Proxys:
Kostenlose Fachliteratur passend zu ABAP-Proxys:
Websession: ABAP-Proxy
Sollten Sie Fragen zu uns und unserer Arbeit oder konkret zu Umstellungsprojekten haben, dann vereinbaren Sie eine kostenlose Websession mit uns.
FAQ
Was sind ABAP Proxys?
Ein ABAP-Proxy ist ein SOAP-Webservice (Simple-Object-Access-Protocol-Webservice). Bei SOAP handelt es sich um ein Nachrichtenprotokoll, das die Kommunikation zwischen verschiedenen Anwendungen standardisiert. Es legt daher Regeln für den Datenaustausch fest.
Wofür benötigt man ABAP Proxys?
ABAP Proxys verwendet man für die Einrichtung möglicher Webschnittstellen im Zusammenhang mit dem SAP-System.