Ansicht
Dokumentation

ABAPCALL_FUNCTION_BACKGROUND_TASK - CALL FUNCTION BACKGROUND TASK

ABAPCALL_FUNCTION_BACKGROUND_TASK - CALL FUNCTION BACKGROUND TASK

BAL Application Log Documentation   ROGBILLS - Synchronize billing plans  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

CALL FUNCTION, IN BACKGROUND TASK

Kurzreferenz



CALL FUNCTION func IN BACKGROUND TASK
                   $[AS SEPARATE UNIT$]
                   $[DESTINATION dest$]
parameter_list.

Zusatz:

... AS SEPARATE UNIT

Wirkung

Transaktionaler Aufruf (tRFC) eines in func angegebenen remote-fähigen Funktionsbausteins über die RFC-Schnittstelle. Mit dem Zusatz DESTINATION kann eine eindeutige 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 aufgerufenen Funktion zusammen mit der Destination und den in parameter_list übergebenen Aktualparametern für die aktuelle SAP-LUW in den DDIC-Datenbanktabellen ARFCSSTATE und ARFCSDATA des aktuellen AS ABAP unter einer eindeutigen Transaktionskennung registriert, die mit TID abgekürzt, in einer Struktur vom Typ ARFCTID aus dem ABAP Dictionary abgelegt und über die Transaktion SM58 angezeigt wird. 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 Programm 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. Diese Paraemter können in der Transaktion SM59 geändert werden. Wenn die Destination innerhalb der vorgegebenen Zeit nicht verfügbar wird, wird dies in der DDIC-Datenbanktabelle ARFCSDATA als Eintrag CPICERR vermerkt. Der Eintrag in der Datenbanktabelle ARFCSSTATE wird standardmäßig nach acht Tagen gelöscht.

Hinweis

Der mit der Anweisung CALL FUNCTION IN BACKGROUND UNIT ausgeführte Background RFC (bgRFC) ist die erweiterte Nachfolgetechnologie des transaktionalen RFC (tRFC) und macht diesen obsolet. Es wird dringend empfohlen, den bgRFC anstelle des tRFC zu verwenden.

Weitere Informationen

Weitere Informationen zum tRFC finden Sie in der RFC-Dokumentation im SAP Help Portal.

Zusatz

... AS SEPARATE UNIT

Wirkung

Bei Verwendung des Zusatzes AS SEPARATE UNIT wird der betreffende Funktionsbaustein in einer eigenen RFC-Sitzung 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 die RFC-Sitzung der aufgerufenen Funktionsbausteine die übliche Beschreibung, sodass bei Verwendung der gleichen RFC-Destination bei mehreren Aufrufen von Funktionsbausteinen der gleichen Funktionsgruppe gemeinsam auf die globalen Daten dieser Funktionsgruppe zugegriffen wird.

Hinweise

  • Mit dem Funktionsbaustein ID_OF_BACKGROUNDTASK kann man nach einem transaktionalen RFC die Transaktionskennung (TID) der aktuellen SAP-LUW feststellen.
  • Der transaktionale RFC (tRFC) ist dazu geeignet, LUWs in verteilten Umgebungen zu implementieren (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 dieselbe Serialisierung auch auf 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. Weitere Informationen zum qRFC finden Sie in der RFC-Dokumentation im SAP Help Portal.
  • In einem Dialogbaustein registrierte tRFCs oder qRFCs, die dort nicht mit COMMIT WORK gestartet werden, werden auch nicht vom COMMIT WORK des Aufrufers ausgeführt.
  • Die neue Variante CALL FUNCTION IN BACKGROUND UNIT (bgRFC) umfasst und erweitert die Funktionalität des bisherigen tRFC und qRFC. Es wird deshalb dringend empfohlen, den bgRFC anstelle des tRFC zu verwenden.
  • Bezüglich der Registrierungseinträge in den DDIC-Datenbanktabellen ARFCSSTATE und ARFCSDATA ist zu beachten, dass diese der normalen Verwaltung einer Datenbank-LUW unterliegen. Wird die Datenbank-LUW also mit einem Datenbank-Rollback beendet, werden alle Registrierungseinträge der aktuellen Datenbank-LUW gelöscht.





SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up   SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 9468 Date: 20240426 Time: 122002     sap01-206 ( 128 ms )