Show TOC Anfang des Inhaltsbereichs

Hintergrunddokumentation RFC-Destinationen   Dokument im Navigationsbaum lokalisieren

Beim Aufruf eines Funktionsbausteins über die RFC-Schnittstelle muss das aufrufende Programm die Parameter der Verbindung in Form einer Destination angeben. Die Destination legt die Art der Verbindung, das Partnerprogramm und das Zielsystem fest. Sie wird mit der Transaktion SM59 verwaltet und unterscheidet eine Vielzahl an Verbindungen wie z.B. TCP/IP- oder SAP-Verbindungen. Beim synchronen RFC muss die Destination explizit angegeben werden. Beim asynchronen und transaktionalen RFC kann eine Destination angegeben werden. Wenn keine Destination angegeben ist, wird der Funktionsbaustein über die RFC-Schnittstelle im gleichen System aufgerufen. Je nach Ausführungsart gelten folgende Bedingungen:

      Bei sRFC- und aRFC-Aufrufen werden die Werte der Aufrufparameter direkt an den Funktionsbaustein übergeben, während diese bei transaktionalen Aufrufen bis zur Ausführung in der Datenbank zwischengespeichert werden.

      Bei aRFC-Aufrufen ist keine Verbindung mit Fremdsystemen möglich (TCP/IP-Verbindungen in der Transaktion SM59).

      Bei sRFC-Aufrufen werden die Ergebnisse der aufgerufenen Funktion direkt übernommen. Bei aRFC-Aufrufen können die Ergebnisse in Callback-Routinen mit der Anweisung RECEIVE empfangen werden, während bei transaktionalen Aufrufen keine Ergebnisübergabe möglich ist.

      Der Server des gerufenen Funktionsbausteins muss bei sRFC- und aRFC-Aufrufen verfügbar sein.

Damit ein Funktionsbaustein über die RFC-Schnittstelle aufgerufen werden kann, muss er in seinen Eigenschaften als remote-fähig gekennzeichnet sein. Für seine Schnittstellenparameter ist nur die Wertübergabe erlaubt. Auch bei Tabellenparametern wird implizit eine Wertübergabe durchgeführt. Remote-fähige Funktionsbausteine können innerhalb des Systems, in dem sie definiert sind, entweder über die RFC-Schnittstelle oder auch wie normale Funktionsbausteine aufgerufen werden. Der normale Aufruf erfolgt mit der Anweisung CALL FUNCTION ohne einen der Zusätze DESTINATION, STARTING NEW TASK, IN BACKGROUND TASK, IN BACKGROUND UNIT. Für den Aufruf über die RFC-Schnittstelle muss entweder die spezielle Destination "NONE" (siehe unten) angegeben oder ein aRFC bzw. transaktionaler RFC ohne Angabe einer Destination ausgeführt werden.

Alle möglichen Destinationen sind in der Datenbanktabelle RFCDES abgelegt, deren Inhalt mit der Transaktion SM59 verwaltet wird. Beim Remote-Aufruf eines Funktionsbausteins aus einem ABAP-Programm wird die Destination hinter dem Zusatz DESTINATION der Anweisung CALL FUNCTION als Schlüsselwert der Spalte RFCDEST der Datenbanktabelle RFCDES angegeben. In der zugehörigen Zeile der Datenbanktabelle sind alle in der Transaktion SM59 festgelegten Parameter für die Kommunikation mit dem externen System abgelegt.

Es gibt zwei vordefinierte Destinationen, die nicht über der Transaktion SM59 gepflegt werden müssen:

      Die Destination "NONE" bewirkt, dass der Funktionsbaustein auf demselben Applikationsserver wie das aufrufende Programm gestartet wird, allerdings über die RFC-Schnittstelle und in einem eigenen RFC-Kontext. Diese Destination ist bei allen Aufrufarten möglich.

      Die Destination "BACK" kann in einem entfernt aufgerufenen Funktionsbaustein verwendet werden und verweist zurück auf den Aufrufer. Diese Angabe ist nur in Funktionsbausteinen möglich, die synchron aufgerufen wurden. Mit der Destination "BACK" kann jeder remote-fähige Funktionsbaustein des aufrufenden Systems in allen Ausführungsarten aufgerufen werden. Beim synchronen Rückruf wird die zugehörige Funktionsgruppe in den internen Modus des aufrufenden Programms geladen, falls sie dort noch nicht vorhanden ist. Für den Rückruf wird die bestehende RFC-Verbindung verwendet.

Neben den in Transaktion SM59 angelegten und den beiden vordefinierten Destinationen können Destinationen auch direkt in der Form "hostname_sysid_sysnr" angegeben werden. Dabei sind "hostname" der Name des Applikationsservers, "sysid" der Name eines SAP-Systems und "sysnr" die Systemnummer, wie sie z.B. über die Transaktion SM51 angezeigt werden.

 

 

 

 

Ende des Inhaltsbereichs