Show TOC Anfang des Inhaltsbereichs

RFC in SAP-Systemen Dokument im Navigationsbaum lokalisieren

In allen SAP-Systemen ist CALL FUNCTION ein integraler Bestandteil der ABAP-Sprache. Diese Anweisung führt eine Funktion (einen Funktionsbaustein) im selben System aus.

REMOTE FUNCTION CALL (RFC) ist eine Erweiterung von CALL FUNCTION in einer verteilten Umgebung. Bestehende Funktionsbausteine können über einen RFC-Aufruf aus einem entfernten System heraus ausgeführt werden. Dazu fügen Sie einfach einen DESTINATION-Parameter zu der CALL FUNCTION-Anweisung hinzu:

Diese Grafik wird im zugehörigen Text erklärt

Der DESTINATION-Parameter zeigt einen Eintrag der Tabelle RFCDES an (die mit Transaktion SM59 gepflegt wird). Dieser Eintrag enthält alle Parameter, die Sie benötigen, um eine Verbindung zum Zielsystem aufzubauen und sich dort anzumelden. 

Sie können RFC zwischen zwei SAP-Systemen verwenden.

Mit Hilfe der RFC-Bibliothek (RFC API) können Sie die RFC-Funktionalität auch zwischen einem SAP-System und einem C-Programm auf verschiedenen Plattformen verwenden. Dabei ist es für den Aufrufer unerheblich, ob der entfernte Funktionsbaustein in einem SAP-Programm oder einem C-Programm läuft.

RFC entbindet den ABAP-Programmierer davon, seine eigenen Kommunikationsroutinen schreiben zu müssen. Bei einem RFC-Aufruf, übernimmt die RFC-Schnittstelle

·        die Konvertierung aller Parameterdaten in die im entfernten System benötigte Darstellung. Dazu gehören auch die Konvertierung von Zeichenketten und alle erforderlichen Hardware-abhängigen Konvertierungen (z.B. Integer, Fixpunkt). Alle ABAP-Datentypen werden unterstützt.

·        den Aufruf der Kommunikationsroutinen, die benötigt werden, um mit dem entfernten System zu kommunizieren.

·        die Handhabung der bei der Kommunikation auftretenden Fehler und, falls erwünscht, die Benachrichtigung des Aufrufers. (Der Aufrufer kann über den Parameter EXCEPTIONS der CALL FUNCTION-Anweisung festlegen, ob er benachrichtigt werden möchte.)

Die RFC-Schnittstelle ist für den ABAP-Programmierer unsichtbar. Die Verarbeitungsschritte für den Aufruf entfernter Programme sind in die CALL FUNCTION-Anweisung integriert. Die Verarbeitungsschritte für das Aufgerufenwerden werden für jeden als entfernt registrierten Funktionsbaustein automatisch generiert (in Form eines RFC-Stub). Dieses Stub-Programm dient dann als Schnittstelle zwischen aufrufendem Programm und Funktionsbaustein.

SAP unterscheidet zwischen einem RFC-Client und einem RFC-Server. Der RFC-Client ist die Instanz, die die RFC-Schnittstelle aufruft, um den Funktionsbaustein auszuführen, der von einem RFC-Server bereitgestellt wird. Im folgenden werden die Funktionsbausteine, die entfernt ausgeführt werden können, als RFC-Funktionen bezeichnet, und die über die RFC-Bibliothek bereitgestellten Funktionen als RFC-Aufrufe.

Alle in einem entfernten RFC-Server-System verfügbaren RFC-Funktionen, die von einem RFC-Client aufgerufen werden, werden transaktional verarbeitet. D.h. nach Ausführung der ersten RFC-Funktion im RFC-Server-System steht der gesamte Kontext (alle global definierten Variablen im RFC-Server-Programm oder im Hauptprogramm eines Funktionsbausteins) für weitere RFC-Funktionen zur Verfügung. Die RFC-Verbindung wird nur in folgenden Fällen geschlossen:

·        Wenn der Kontext des aufrufenden ABAP-Programms beendet ist.

·        Wenn im externen Programm explizit RfcAbort oder RfcClose verwendet wird.

Sie können einen Anwendungs-Server entweder direkt, oder auch im Rahmen einer Lastverteilung über einen Message-Server zuordnen. Dies gilt sowohl für RFCs zwischen zwei SAP-Systemen, als auch für RFCs zwischen einem externen und einem SAP-System.

Um die Ausführung von RFC-Funktionen verläßlich, sicher und von der Verfügbarkeit des RFC-Servers oder RFC-Server-Systems unabhängig zu machen, steht für SAP-Systeme der transaktionale RFC (tRFC) zur Verfügung. Der tRFC stellt sicher, daß der gerufene Funktionsbaustein nur einmal im RFC-Server-System ausgeführt wird.

Bei transaktionalen RFC-Aufrufen müssen die zu einer RFC-Funktion gehörenden Daten zunächst auf einer SAP-Datenbank im RFC-Client-System zwischengespeichert werden. Nach erfolgter Verarbeitung müssen sie dem rufenden ABAP-Programm zurückgemeldet werden. Um alles andere kümmert sich die tRFC-Komponente im SAP-System.

Da bei externen Systemen eine Datenbank nicht immer verfügbar ist, ist die Verbindung zu den tRFC-Schnittstellen so implementiert, dass die auf RFC API basierenden Client- oder Server-Programme einige zusätzliche Verwaltungsfunktionen übernehmen müssen, um sicherzustellen, dass der entsprechende Funktionsbaustein nur einmal ausgeführt wird.

Hinweis

In einem SAP-System können andere SAP-Systeme als Trusted Systeme (Vertrauenssysteme) definiert werden. Trusted Systeme können ohne Passwort auf das aufgerufene (das vertrauende) Trusting System zugreifen.
Weitere Informationen finden Sie unter Trusted System.

 

RFC-Destination

Ende des Inhaltsbereichs