Show TOC Anfang des Inhaltsbereichs

Hintergrunddokumentation CALL FUNCTION - IN BACKGROUND TASK   Dokument im Navigationsbaum lokalisieren

Syntax

CALL FUNCTION func IN BACKGROUND TASK
                   [DESTINATION dest]
                  
parameter list
                   [AS SEPARATE UNIT].

Zusatz:

... AS SEPARATE UNIT

Wirkung

Transaktionaler Aufruf eines in func angegebenen remote-fähigen Funktionsbausteins über die RFC-Schnittstelle. Mit dem Zusatz DESTINATION kann eine einzelne Destination in dest angegeben werden. Falls die Destination nicht angegeben ist, wird implizit die Destination NONE verwendet. Für func und dest werden zeichenartige Datenobjekte erwartet.

Beim transaktionalen Aufruf wird der Name der gerufenen Funktion zusammen mit der Destination und den in parameter list übergebenen Aktualparametern für die aktuelle SAP-LUW in den Datenbanktabellen ARFCSSTATE und ARFCSDATA des aktuellen SAP-Systems unter einer eindeutigen Transaktionskennung registriert (Abkürzung TID, abgelegt in einer Struktur vom Typ ARFCTID aus dem ABAP Dictionary, Ansicht über Transaktion SM58). Das aufrufende Programm wird nach der Registrierung hinter der Anweisung CALL FUNCTION fortgesetzt.

Die zur aktuellen SAP-LUW registrierten Funktionsbausteine werden bei Ausführung der Anweisung COMMIT WORK in der Reihenfolge gestartet, in der sie registriert wurden. Die Anweisung ROLLBACK WORK löscht alle vorhergehenden Registrierungen der aktuellen SAP-LUW.

Falls die angegebene Destination bei COMMIT WORK nicht zur Verfügung steht, wird ein ausführbares namens RSARFCSE in der Hintergrundverarbeitung gestartet, das standardmäßig alle 15 Minuten und bis zu 30 Mal versucht, die zu einer SAP-LUW registrierten Funktionsbausteine in ihrer Destination zu starten. Änderungen dieser Parameter können in der Transaktion SM59 vorgenommen werden. Wenn die Destination innerhalb der vorgegebenen Zeit nicht verfügbar wird, wird dies in der Datenbanktabelle ARFCSDATA als Eintrag CPICERR vermerkt. Der Eintrag in der Datenbanktabelle ARFCSSTATE wird standardmäßig nach 8 Tagen gelöscht.

Zusatz

... AS SEPARATE UNIT

Wirkung

Bei Verwendung des Zusatzes AS SEPARATE UNIT wird der betreffende Funktionsbaustein in einem eigenen Kontext ausgeführt, in dem die globalen Daten der Funktionsgruppe nicht von vorhergehenden Aufrufen beeinflusst sind. Jeder Funktionsbaustein, der mit dem Zusatz AS SEPARATE UNIT registriert wird, erhält eine eigene Transaktionskennung. Ohne den Zusatz AS SEPARATE UNIT gilt für den Kontext der aufgerufenen Funktionsbausteine die übliche Beschreibung, so dass bei Verwendung der gleichen Destination bei mehreren Aufrufen von Funktionsbausteinen der gleichen Funktionsgruppe gemeinsam auf die globalen Daten dieser Funktionsgruppe zugegriffen wird.

Diese Grafik wird im zugehörigen Text erklärt

Mit dem Funktionsbaustein ID_OF_BACKGROUNDTASK können Sie nach einem transaktionalen RFC die Transaktionskennung (TID) der aktuellen SAP-LUW feststellen.

Der transaktionale RFC (tRFC) ist dazu geeignet, LUWs in verteilten Umgebungen zu realisieren (eine typische Anwendung ist ALE). Dabei ist zu beachten, dass die Ausführung der Funktionsbausteine innerhalb einer Transaktionskennung zwar vorgegeben ist, die Reihenfolge der LUWs in den RFC-Servern aber nicht unbedingt der Reihenfolge der SAP-LUWs im RFC-Client entspricht. Um eine Serialisierung auch auf den RFC-Servern zu erreichen, kann der tRFC auf queued RFC ( qRFC) erweitert werden. Hierfür kann der Funktionsbaustein TRFC_SET_QUEUE_NAME vor einem transaktionalen RFC aufgerufen werden.

 

 

CALL FUNCTION - IN BACKGROUND TASK parameter_list

Syntax

... [EXPORTING  p1 = a1 p2 = a2... ]
    
[TABLES     t1 = itab1  t2 = itab2 ...] ... .

Wirkung

Mit diesen Zusätzen werden den Formalparametern des Funktionsbausteins Aktualparameter zugeordnet. Die Bedeutung der Zusätze ist wie beim synchronen RFC mit der Ausnahme, dass keine Werte mit IMPORTING und CHANGING übernommen und nicht-klassenbasierten Ausnahmen keine Rückgabewerte zugewiesen werden können.

Ende des Inhaltsbereichs