Show TOC Anfang des Inhaltsbereichs

Komponentendokumentation RFC Dokument im Navigationsbaum lokalisieren

Einsatzmöglichkeiten

Die Kommunikation zwischen Anwendungen verschiedener Systeme im SAP-Umfeld kann sowohl die Verbindung zwischen SAP-Systemen also auch zwischen SAP- und Nicht-SAP-Systemen umfassen. Der Remote Function Call (RFC) ist die SAP-Standardschnittstelle zur Realisierung dieser Kommunikation. Der RFC ruft eine Funktion auf, die in einem entfernten System ausgeführt werden soll.

Synchroner RFC

Die erste Version des RFC ist der synchrone RFC (sRFC). Dieser RFC-Typ führt den Aufruf einer Funktion auf der Grundlage der synchronen Kommunikation durch, d.h. die beteiligten Systeme müssen zum Zeitpunkt des Aufrufs beide ansprechbar sein.

Transaktionaler RFC (tRFC)

Der transaktionale RFC (tRFC, ursprünglich auch asynchroner RFC genannt) ist eine asynchrone Kommunikationsmethode, die den gerufenen Funktionsbaustein im RFC-Server genau einmal ausführt. Das entfernte System muß in dem Moment, in dem das RFC-Client-Programm einen tRFC ausführt, nicht verfügbar sein. Die tRFC-Komponente speichert die gerufene RFC-Funktion zusammen mit den zugehörigen Daten in der SAP-Datenbank unter einer eindeutigen Transaktionskennung (TID).

Wird ein Aufruf gesendet während das Empfangssystem nicht verfügbar ist, bleibt der Aufruf in der lokalen Warteschlange stehen. Das rufende Dialogprogramm kann weiterlaufen ohne darauf zu warten, ob der Funktionsbaustein mit oder ohne Erfolg durchgeführt wurde. Wird das Empfangssystem nicht innerhalb eines bestimmten Zeitraums aktiviert, so wird der Aufruf als Hintergrund-Job eingeplant.

Der tRFC wird immer dann verwendet, wenn eine Funktion als Logical Unit of Work (LUW) ausgeführt werden soll. Innerhalb einer LUW werden dann alle Aufrufe

·         in der Reihenfolge ausgeführt, in der sie aufgerufen werden

·         im selben Programmkontext im Zielsystem ausgeführt

·         in einer einzigen Transaktion ausgeführt: sie werden entweder komplett auf die Datenbank geschrieben (COMMIT) oder komplett zurückgesetzt (ROLLBACK).

Der Einsatz des tRFC ist also immer dann sinnvoll, wenn Sie gewährleisten wollen, dass die transaktionale Reihenfolge von Aufrufen gewährleistet ist.

Nachteile des tRFC

·       Mit dem tRFC werden alle LUW's unabhängig voneinander behandelt. Dies kann aufgrund der Vielzahl von aktivierten tRFC-Prozessen zu einer deutlichen Verschlechterung der Performance sowohl im Sendesystem als auch im Zielsystem führen.

·       Ferner kann die in der Anwendung definierte Reihenfolge der LUW's nicht eingehalten werden. Es besteht also keine Gewähr, daß die vom Anwendungsprogramm vorgegebene Reihenfolge der Transaktionen auch eingehalten wird. Es gibt lediglich die Garantie, daß alle LUW's früher oder später übertragen werden.

Queued RFC (qRFC)

Um eine von der Anwendung vorgegebene Reihenfolge mehrerer LUW's zu garantieren, kann eine Serialisierung des tRFC über Queues (Eingangs- oder Ausgangsqueue) vorgenommen werden. Dieser RFC-Typ wird als queued RFC (qRFC) bezeichnet.

qRFC stellt also eine Erweiterung des tRFC dar. Dabei wird eine LUW (Transaktion) erst dann übertragen, wenn sie keine Vorgänger (bezogen auf die in verschiedenen Anwendungsprogrammen definierte Reihenfolge) in den beteiligten Queues hat.

Der Einsatz des qRFC ist immer dann sinnvoll, wenn Sie eine Verarbeitung verschiedener Transaktionen in einer vorgegebenen Reihenfolge sicherstellen wollen.

RFC: Datenübertragung

Alle RFC-Typen werden über CPI-C bzw. TCP/IP übertragen. Sie stellen eine Form der Gateway-Kommunikation dar.

Weitere Informationen

·       RFC-Grundlagen (BC-MID-RFC)

·       Das RFC API

·       RFC-Programmierung in ABAP

·       Queued Remote Function Call (qRFC)

·       StrukturlinkSAP-Gateway

 

 

Ende des Inhaltsbereichs