Call Function ... in background task ? Aber wie?

Benutzeroberflächen in SAP®-Systemen.
7 Beiträge • Seite 1 von 1
7 Beiträge Seite 1 von 1

Call Function ... in background task ? Aber wie?

Beitrag von Nordlicht (Specialist / 304 / 8 / 3 ) »
Hallo.

Ich bekomme bei einem Migrationsreport für große Tabellen einen Timeout. Ich habe deshlab jetzt alle Dialoge (Message, POPUP-Bestätigungen usw. ...) ausgesternt und den Reportcode als Funktionsbaustein programmiert.

Offen macht der alles was er soll, mit dem Zusatz "In Background Task" werden (trotz commit work) keine Datenbankänderungen vorgenommen.

Ich arbeite selten mit diesem Zusatz. Fehlt mir da eine grundsätliche Information? Remotfähig habe ich den Fuba gesetzt.

Weiß jemand Hilfe?

Danke und Ciao,
Burkhart

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Call Function ... in background task ? Aber wie?

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Hast Du die Hilfe zu 'IN BACKGROUND TASK' konsultiert?

Wie stellst Du den fest, ob irgendetwas im Hintergrund nicht funktionierte?
Welcher User bekommt z.B. diese Expressnachrichten(wenn ich mich recht erinnere), falls eine V1 Buchung mislang?


Code: Alles auswählen.

 CALL FUNCTION - IN BACKGROUND TASK

Syntax

CALL FUNCTION func IN BACKGROUND TASK
                   [DESTINATION dest]
                   parameter_list
                   [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 aufgerufenen 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 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. Ä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 acht Tagen gelöscht.


Re: Call Function ... in background task ? Aber wie?

Beitrag von Nordlicht (Specialist / 304 / 8 / 3 ) »
Hallo unit605.

Das Mißlingen stelle ich einfach dadurch fest dass die drei beteiligten Tabellen nicht verändert wurden. Online klappt es problemlos, aufgerufen als FuBa 'IN BACKGROUND TASK' klappt es nicht. Identisches Coding :-(

Re: Call Function ... in background task ? Aber wie?

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
Blöde Frage: Ist das COMMIT WORK im aufgerufenen Funktionsbaustein oder außerhalb im aufrufenden Programm?
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50


Re: Call Function ... in background task ? Aber wie?

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
Das muss außerhalb gemacht werden.
Der FuBa wird mit IN BACKGROUND TASK nur für die Verarbeitung im Verbucher VORBEREITET. Erst mit COMMIT WORK erfolgt die Abarbeitung.

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Call Function ... in background task ? Aber wie?

Beitrag von Nordlicht (Specialist / 304 / 8 / 3 ) »
Danke. Schau ich mir mal an :-)

Seite 1 von 1

Vergleichbare Themen

11
Antw.
7615
Views
CALL FUNCTION ... STARTING NEW TASK ... Task nachverfolgbar?
von Obelix1 » 30.01.2017 18:10 • Verfasst in ABAP® Core
5
Antw.
5354
Views
CALL FUNCTION STARTING NEW TASK
von Artie200 » 30.03.2011 11:46 • Verfasst in ABAP® Core
2
Antw.
5211
Views
CALL FUNCTION IN UPDATE TASK
von Frank59 » 27.11.2006 13:38 • Verfasst in ABAP® Core
9
Antw.
6144
Views
CALL FUNCTION '...' STARTING NEW TASK in RECEIVE-Methode
von nickname8 » 12.02.2019 09:58 • Verfasst in ABAP® Core
5
Antw.
2128
Views
BACKGROUND TASK bei DB_COMMIT
von schusterd » 12.12.2019 16:34 • Verfasst in ABAP® Core

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 5 Stunden von Bright4.5 1 / 118
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1759
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8361