!--a11y-->
Transaktionale RFC-Aufrufe 
Daten zwischen zwei SAP-Systemen können zuverlässig und sicher über den transaktionalen RFC (tRFC) übergeben werden.
Der gerufene Funktionsbaustein wird im RFC-Server-System genau einmal ausgeführt. 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). Näheres zu LUWs, TIDs und der Statusabfrage von transaktionalen Aufrufen finden Sie unter Transaktionale Integrität von tRFCs.
Transaktionale RFC-Anfoderungen werden über TCP/IP oder X400 übergeben mit den Parameterdaten als Byte-Strom.
Beispielsweise können Sie transaktionale RFCs für
spezielle Aktualisierungsprozeduren verwenden. Einige komplexe Dialoge
erfordern die Aktualisierung einer Reihe verwandter Datenbanktabellen während
unterschiedlicher Phasen innerhalb einer Transaktion. Wenn die
Funktionsbausteine zur Aktualisierung auf einer entfernten Maschine liegen und
wenn die Änderungen an den Tabellen nicht unbedingt ausgeführt sein müssen
bevor der Dialog weiterläuft, dann können Sie transaktionale RFC-Aufrufe
verwenden. Anstatt warten zu müssen bis jede einzelne Aktualisierungsprozedur
abgeschlossen ist, kann der Benutzer ohne Verzögerung die Transaktion bis zum
Ende durchführen. Die Verwendung transaktionaler RFCs stellt sicher, dass alle
geplanten Aktualisierungen ausgeführt werden, sobald das Programm die
Anweisung COMMIT WORK erreicht.

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.
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 (oder siehe SAP-Erweiterungskonzept und CALL CUSTOMER-FUNCTION).
In der Transaktion SM59 (Menüpfad Werkzeuge ®Administration, Verwaltung ® Netzwerk ® RFC Destinationen) wählen Sie Destination®TRFC Optionen, um die einzelnen Destinationen 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.