Remote Function Calls und BAPIs beschreiben

Objectives

After completing this lesson, you will be able to:
  • Von SAP-Systemen verwendete Schnittstellentechnologien auflisten
  • den Ablauf eines Remote Function Calls erläutern
  • die Bedeutung und Verwendung von Business-Objekten und BAPIs erläutern

Schnittstellen im Überblick

SAP-Systeme haben auf verschiedenen Kommunikationsebenen Schnittstellen. Diese Schnittstellen lassen sich in SAP-eigene Schnittstellen und offene Schnittstellen unterteilen. Sie reichen von hochtechnischen Verbindungsmöglichkeiten, z.B. über das TCP/IP-Protokoll oder CPI-C, bis hin zu hochspezialisierten Schnittstellen, die für Business-Objekte wie BAPIs oder die im ALE-Umfeld verwendete IDoc-Schnittstelle konzipiert sind. Wenn Sie SAP-eigene Schnittstellen berücksichtigen, verwenden alle höheren Schnittstellen, d.h. solche, die auf Business-Objekte oder Prozesse zugreifen, dieselbe Technologie: den Remote Function Call (RFC).

Mögliche Schnittstellentechniken in SAP-Systemen

Notiz

Weitere Informationen über zusätzliche Schnittstellen finden Sie im SAP Support Portal (https://support.sap.com/connectors) unter dem Quick-Link /connectors.

Remote Function Call

Die Remote-Function-Call-Schnittstelle ist ein SAP-Schnittstellenprotokoll, das auf CPI-C und TCP/IP beruht. Damit wird die Programmierung von Kommunikationsabläufen zwischen verschiedenen SAP-Systemen vereinfacht. Per RFC können vordefinierte Funktionen auf einem entfernten SAP-System oder innerhalb desselben SAP-Systems aufgerufen und ausgeführt werden. RFCs übernehmen die Kommunikationssteuerung, die Parameterübergabe und die Fehlerbehandlung.

RFC beschreibt eine Schnittstelle und nicht die Programmiersprache, in der die aufgerufene Funktion ablaufen soll. Daher ist es möglich, per RFC auch Funktionen in Nicht-SAP-Systemen aufzurufen. Die Kommunikation per RFC zwischen zwei SAP-Systemen läuft so ab, dass aus dem aufrufenden SAP-System über eine im aufgerufenen SAP-System vorhandene RFC-Definition eine bestimmte Funktion angesteuert wird.

Wenn Sie externe Programme per Fernzugriff starten möchten, wird eine außerhalb des SAP-Systems liegende RFC-Schnittstelle benötigt. Diese hat zum Beispiel die Form einer einfachen Dynamic Link Library (DLL). Jede RFC-Schnittstelle ist bidirektional, so dass externe Programme auch über RFCs auf Funktionen in SAP-Systemen zugreifen können.

Notiz

Alle Funktionsbausteine (auch die remotefähigen) werden, zusammen mit ihren Import- und Exportparametern, über den Function Builder angelegt. Den Function Builder erreichen Sie im Menü SAP Easy Access über den Menüpfad WerkzeugeABAP WorkbenchEntwicklungFunction Builder oder über den Transaktionscode SE37.

So rufen Sie einen RFC-Baustein in einem SAP-System auf:

  • Es muss eine technische Verbindung zwischen den beiden Systemen bestehen. Diese Verbindung wird als RFC-Destination bezeichnet.

  • Sie müssen die Import- und Exportparameter kennen (die im Function Builder definiert wurden), um den Remote Function Call ausführen zu können.

RFC-Destinationen

Sie können die RFC-Destinationen im Menü SAP Easy Access über den Menüpfad WerkzeugeAdministrationAdministrationNetzwerkRFC-Destinationen oder über Transaktion SM59 verwalten.

In der Abbildung „Remote Function Call im Detail" erkennen Sie auf der linken Seite das aufrufende SAP-System, in dem eine RFC-Destination mit dem Namen DEST angelegt ist. Ein Ziel einer RFC-Destination in der Transaktion SM59 sollte nicht mit einem SAP-System verwechselt werden, da eine RFC-Destination auf einen bestimmten Mandanten in einem SAP-System zeigt. RFC-Destinationen werden auch als Verbindungen zwischen logischen Systemen bezeichnet; dieser Begriff wird vor allem im Umfeld von Application Link Enabling (ALE) verwendet.

Beachten Sie bei der Definition von RFC-Destinationen in AS-ABAP-basierten SAP-Systemen Folgendes:

  • RFC-Destinationen werden immer an einen bestimmten Mandanten geleitet, wenn ihr Ziel ein AS-ABAP-basiertes SAP-System ist.

  • Auf RFC-Destinationen kann von allen Mandanten eines SAP-Quellsystems aus zugegriffen werden (vorausgesetzt, der Benutzer verfügt über die erforderlichen Berechtigungen).

Das bedeutet, dass Sie viele RFC-Destinationen zwischen zwei ABAP-basierten SAP-Systemen haben können. Da Sie in jeder RFC-Destination einen Anmeldebenutzer für das Ziel angeben können, können Sie auch mehrmals auf Mandanten im Zielsystem zugreifen, z.B. jedes Mal mit einem anderen Anmeldebenutzer. Wenn Sie eine bidirektionale RFC-Verbindung zwischen zwei Systemen benötigen, d.h. das aufgerufene System kann auch RFC-Bausteine im aufrufenden System ausführen, müssen Sie eine äquivalente zweite RFC-Destination im aufgerufenen System einrichten.

Remote-fähige Funktionsbausteine (Remote Function Calls – RFCs)

Per RFC wird ein Funktionsbaustein aus ABAP heraus folgendermaßen in einem anderen System aufgerufen:

Code Snippet
123
CALL FUNCTION <Name> DESTINATION <Destination to Target> EXPORTING ... IMPORTING ...

Hier gibt <Name> den Funktionsbaustein an, der im Zielsystem ausgeführt werden soll. Der Name des <Destination to Target> muss sich auf eine der verfügbaren RFC-Destinationen beziehen. EXPORTING und IMPORTING werden verwendet, um Parameter an den Zielfunktionsbaustein zu übergeben und die zurückgegebenen Parameter zu empfangen.

Wenn Sie eine RFC-Destination anlegen, können Sie Anmeldeinformationen für das Zielsystem angeben. Wenn dies nicht der Fall ist, müssen Sie Anmeldedaten eingeben, wenn Sie die RFC-Destination zur Laufzeit aufrufen. Der im Zielsystem aufgerufene Funktionsbaustein wird mit der Benutzer-ID ausgeführt, die für die RFC-Destination eingegeben wurde.

Notiz

SAP-Systeme können Vertrauensbeziehungen zueinander aufbauen. Wenn ein aufrufendes (sendendes) SAP-System dem aufgerufenen (empfangenden) System als Trusted System bekannt ist und der Benutzer, der den RFC-Aufruf initiiert hat, in beiden Systemen definiert ist, wird kein Kennwort geliefert (Trusted RFC).

RFC ist die wichtigste SAP-eigene Schnittstelle im SAP-Umfeld. RFC-Bausteine, die bestimmte Konventionen erfüllen, werden als BAPIs (Business Application Programming Interfaces) bezeichnet.

BOR und BAPIs

Ein Business Application Programming Interface (BAPI) ist eine standardisierte Programmierschnittstelle, die den internen und externen Zugriff auf Geschäftsprozesse und Daten in SAP-Systemen ermöglicht. BAPIs werden im Business Object Repository (BOR) als Methoden von SAP-Business-Objekten definiert und ermöglichen eine objektorientierte Sicht auf betriebswirtschaftliche Daten eines SAP-Systems.

BAPIs ermöglichen die Integration auf geschäftlicher Ebene, nicht auf technischer Ebene. Dies sorgt für eine größere Stabilität der Verknüpfung und Unabhängigkeit von der zugrunde liegenden Kommunikationstechnologie.

Notiz

BAPIs werden genau wie andere Funktionsbausteine als RFC-fähige Funktionsbausteine mit dem Function Builder, Transaktion SE37, angelegt und getestet und dann als Methoden eines Objekttyps im BOR definiert.

Sie können eine Übersicht der verfügbaren BAPIs im BOR anzeigen, indem Sie z.B. die Drucktaste Business Object Repository in der Anwendungsfunktionsleiste des Business Object Builder (SAP Easy Access Menüpfad WerkzeugeABAP WorkbenchEntwicklungBusiness Object Builder ), Transaktion SWO1 und dann Business Object RepositoryBAPI wählen. Dies führt zum BAPI Explorer (Transaktion BAPI).

Sie können den BAPI Explorer auch direkt über den Transaktionscode BAPI aufrufen.

Einige Anwendungsmöglichkeiten von BAPIs

  • Verknüpfung betriebswirtschaftlicher Prozesse über Systemgrenzen hinweg (zum Beispiel bei der Verwendung von ALE)

  • SAP-interne Nutzung zur Integration von verschiedenen Lösungen im Rahmen von SAP Business Suite

  • Anbindung eines SAP-Systems an das Internet

  • Wird in Verbindung mit SAP-Business-Workflow-Szenarien verwendet, die über Systemgrenzen hinausgehen.

  • Verbindung zu Drittanbietersoftware und Altsystemen herstellen

BAPIs verwenden

Unternehmensszenario

Sie möchten einen Benutzer in einem entfernten SAP-System über ein BAPI sperren.