aRFC-Aufrufe ähneln einem transaktionalen RFC insofern, dass der Benutzer nicht die erfolgreiche Ausführung abwarten muss, ehe er mit seinem Aufrufdialog fortfahren kann. Es gibt jedoch drei wesentliche Merkmale, in denen sich asynchrone und transaktionale RFCs unterscheiden:
Wenn der Aufrufer einen asynchronen RFC startet, muss der gerufene Server verfügbar sein, um die Anforderung entgegenzunehmen.
Die Parameter von asynchronen RFCs werden nicht in die Datenbank geschrieben, sondern direkt an den Server übergeben.
Während eines asynchronen RFCs kann der Benutzer einen Dialog mit dem entfernten System führen.
Das rufende Programm kann Ergebnisse des asynchronen RFCs empfangen.
Einen asynchronen Funktionsaufruf verwenden Sie immer dann, wenn Sie eine Kommunikation mit einem entfernten System aufbauen müssen, aber mit der Verarbeitung nicht auf die Ergebnisse des Funktionsbausteins warten wollen. Auch asynchrone RFCs können an dasselbe System geschickt werden. In diesem Fall öffnet das System einen neuen Modus (Fenster). Sie können dann zwischen dem rufenden Dialog und dem gerufenen Modus hin- und herspringen.
Um einen Funktionsaufruf asynchron zu starten, verwenden Sie folgende Syntax:
CALL FUNCTION Remotefunction STARTING NEW TASK Taskname
DESTINATION ...
EXPORTING...
TABLES ...
EXCEPTIONS...
Hinweis
Es gibt folgende Aufrufparameter:
TABLES
übergibt Referenzen auf interne Tabellen. Alle Tabellenparameter des Funktionsbausteins müssen Werte enthalten.
EXPORTING
übergibt die Werte von Feldern und Strukturen aus dem rufenden Programm an den Funktionsbaustein. Im Funktionsbaustein sind die entsprechenden Formalparameter als Importparameter definiert.
EXCEPTIONS
RECEIVE RESULTS FROM FUNCTION Remotefunction wird innerhalb einer FORM-Routine verwendet, um die Ergebnisse eines asynchronen RFCs zu erhalten. Es gibt folgende Ergebnisparameter:
IMPORTING
TABLES
EXCEPTIONS
Der Zusatz KEEPING TASK sorgt dafür, dass eine asynchrone Verbindung nach der Ergebnisübergabe bestehen bleibt. Der entsprechende entfernte Kontext (Rollbereich) wird solange weiterverwendet, bis der Aufrufer die Verbindung beendet.
Detaillierte Informationen zum aRFC finden Sie unter:
Eine Beschreibung der einzelnen Anweisungen für aRFC finden Sie hier: