Show TOC Anfang des Inhaltsbereichs

 Prozessdokumentation Transaktionaler RFC (tRFC)  Dokument im Navigationsbaum lokalisieren

 

Bei Verwendung des transaktionalen RFC (tRFC) wird der gerufene Funktionsbaustein im gerufenen System genau einmal ausgeführt (Service-Eigenschaft: Exactly Once).

Das entfernte System muss 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 Datenbank des SAP Systems 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.

Transaktionale RFCs verwenden das Suffix IN BACKGROUND TASK.

Wie bei synchronen Aufrufen definiert der Parameter DESTINATION einen Programmkontext im entfernten System. Wenn Sie also mit derselben Destination einen Funktionsbaustein mehrmals oder mehrere Funktionsbausteine einmal aufrufen, können Sie im selben Kontext auf die globalen Daten des gerufenen Funktionsbausteins zugreifen.

Das System protokolliert die RFC-Anforderung in den Datenbanktabellen ARFCSSTATE und ARFCSDATA mit allen Parameterwerten. Sie können die Protokolldatei mit der Transaktion SM58 anzeigen. Wenn das rufende Programm ein COMMIT WORK erreicht, wird der RFC-Aufruf dem angeforderten System zur Ausführung übergeben.

Alle tRFCs mit einer einzigen Destination, die zwischen zwei COMMIT WORK vorkommen, gehören zu einer einzigen logischen Arbeitseinheit (LUW).

 

Ablaufschema tRFC

Diese Grafik wird im zugehörigen Text erklärt

Beispielsweise können Sie transaktionale RFCs für komplexe Prozesse verwenden, die eine Aktualisierung verwandter Datenbanktabellen während unterschiedlicher Phasen innerhalb einer Transaktion erfordern.

Die Verwendung transaktionaler RFCs stellt sicher, dass alle geplanten Aktualisierungen ausgeführt werden, sobald das Programm die Anweisung COMMIT WORK erreicht.

Achtung

Funktionsbausteine, die transaktional aufgerufen werden sollen, dürfen keine EXPORT-Parameter in der Definition enthalten, da ein IMPORTING-Parameter im aufrufenden Programm zu einem Syntaxfehler führt.

Beachten Sie auch, dass Sie Funktionsbausteine, die Rückrufe durchführen, nicht transaktional aufrufen dürfen.

Systemverfügbarkeit

Falls das entfernte System nicht verfügbar ist, plant das SAP-System den Report RSARFCSE mit der entsprechenden Transaktionskennung (TID) als Variante für die Hintergrundverarbeitung ein. Dieser Report, der asynchrone Aufrufe zur Ausführung übergibt, wird solange immer wieder aufgerufen, bis er eine Verbindung mit dem gewünschten System hergestellt hat.

Bei einer Einplanung im Hintergrund läuft RSARFCSE automatisch in vorbestimmten Zeitintervallen (Standard: alle 15 Minuten, bis zu 30 Versuche). Dieses Intervall und die Anzahl der Versuche können Sie beliebig einstellen. Verwenden Sie dazu die Erweiterungsprogramme SABP0000 und SABP0003.

In der Transaktion SM59 wählen Sie auf dem Bild für eine Destination Bearbeiten TRFC Optionen, um diese Destination zu konfigurieren. Dabei können Sie die Anzahl der Versuche zum Verbindungsaufbau und den Zeitraum zwischen den Versuchswiederholungen festlegen.

Kann das System während der vorgegebenen Zeit nicht erreicht werden, ruft das System RSARFCSE nicht länger auf, sondern schreibt den Status CPICERR in die Tabelle ARFCSDATA. Der entsprechende Eintrag in der Tabelle ARFCSSTATE wird, ebenfalls nach Verstreichen eines bestimmten Zeitraums (Standard: acht Tage), gelöscht (auch diesen Zeitraum können Sie selbst einstellen). Es ist jedoch weiterhin möglich, solche Einträge mit der Transaktion SM59 von Hand zu starten. 

 

Weitere Informationen

Eine Beschreibung der Anweisungen für tRFC finden Sie unter

      CALL FUNCTION IN BACKGROUND TASK  

 

Ende des Inhaltsbereichs