Ansicht
Dokumentation
ABAPCALL_FUNCTION_UPDATE - CALL FUNCTION UPDATE
PERFORM Short Reference General Material DataDiese Dokumentation steht unter dem Copyright der SAP AG.
CALL FUNCTION, IN UPDATE TASK
CALL FUNCTION update_function IN UPDATE TASK
$[EXPORTING p1 = a1 p2 = a2 ...$]
$[TABLES t1 = itab1 t2 = itab2 ...$].
Zusätze:
1. ... EXPORTING p1 = a1 p2 = a2 ...
2. ... TABLES t1 = itab1 t2 = itab2 ...
Wirkung
Diese Anweisung registriert den in update_function angegebenen Verbuchungsfunktionsbaustein, wobei update_function ein zeichenartiges Feld sein muss, das während der Ausführung der Anweisung den Namen eines Verbuchungsfunktionsbausteins in Großbuchstaben enthält. Für die Angabe von update_function gilt das Gleiche wie beim generellen Funktionsbausteinaufruf.
Ein Verbuchungsfunktionsbaustein ist ein Funktionsbaustein, bei dem im Function Builder die Eigenschaft Verbuchungsbaustein markiert ist. Die Registrierung eines Verbuchungsfunktionsbausteins ist ein wesentlicher Bestandteil der Verbuchung.
Der Funktionsbaustein wird nicht sofort ausgeführt, sondern zur Ausführung in einem speziellen Workprozess (Verbuchungs-Workprozess) oder bei eingeschalteter lokaler Verbuchung im aktuellen Workprozess vorgemerkt. Hierfür werden der Name des Funktionsbausteins und die übergebenen Aktualparameter in den DDIC-Datenbanktabellen VBMOD und VBDATA, die von VBHDR verwaltet werden, abgelegt. Wenn die Anweisung während der Verbuchung ausgeführt wird, wird der Zusatz IN UPDATE TASK ignoriert.
Wenn vor der Registrierung eines Verbuchungsfunktionsbausteins in der aktuellen SAP-LUW die Anweisung SET UPDATE TASK LOCAL ausgeführt wird, erfolgt die Registrierung statt auf der Datenbank im ABAP Memory und für den aktuellen Workprozess.
Die tatsächliche Ausführung wird durch die Anweisung COMMIT WORK angestoßen. Die Formalparameter des Funktionsbausteins bekommen die Werte der Aktualparameter aus der DDIC-Datenbanktabelle VBDATA übergeben. Ein mehrfach registrierter Funktionsbaustein wird auch mehrfach mit den jeweiligen Parameterwerten ausgeführt. Wenn nach der Registrierung eines Funktionsbausteins während der Ausführung des aktuellen Programms keine Anweisung COMMIT WORK ausgeführt wird, wird der Funktionsbaustein nicht ausgeführt und bei Programmende werden die zugehörigen Einträge aus den entsprechenden DDIC-Datenbanktabellen gelöscht. Die Anweisung ROLLBACK WORK löscht alle vorhergehenden Registrierungen der aktuellen SAP-LUW.
Systemfelder
Das Systemfeld sy-subrc ist nach Ausführung der Anweisung CALL FUNCTION ... IN UPDATE TASK undefiniert.
Hinweise
- Während der Verarbeitung eines mit COMMIT WORK angestoßenen Verbuchungsfunktionsbausteins darf kein Datenbank-Commit und kein Datenbank-Rollback auftreten und die Verbuchungssteuerung darf nicht beeinflusst werden. Anweisungen, die dies zur Folge hätten sind verbotene Anweisungen in der Verbuchung und führen immer direkt zu Laufzeitfehlern.
- Während der Verarbeitung eines mit COMMIT WORK angestoßenen Verbuchungsfunktionsbausteins können keine Berechtigungsprüfungen durchgeführt werden.
- Während der Verarbeitung eines mit PERFORM ON COMMIT angestoßenen Verbuchungsfunktionsbausteins dürfen Unterprogramme mit COMMIT WORK registriert werden. Sie werden dann am Ende der aktuellen Verbuchung ausgeführt.
- Wenn während der Verbuchung ein Laufzeitfehler auftritt, führt der Verbuchungs-Workprozess einen Datenbank-Rollback aus, vermerkt dies in den entsprechenden DDIC-Datenbanktabellen und unterrichtet den Benutzer, dessen Programm die Einträge erzeugt hat, per SAPMail. Nach Beseitigung der Fehlerursache können die zurückgestellten Einträge erneut verbucht werden.
- Bezüglich der Registrierungseinträge in den DDIC-Datenbanktabellen 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.
- Beim Registrieren eines Verbuchungsfunktionsbausteins mit CALL FUNCTION ... IN UPDATE TASK
werden die relevanten Daten intern mit EXPORT
in einen Daten-Cluster exportiert und bei Ausführung des Funktionsbausteins wieder mit IMPORT
importiert. Wenn beim Export ein Fehler auftritt, beispielsweise weil die exportierte Datenmenge zu
groß ist, kommt es zu den bei EXPORT
dokumentierten Ausnahmen. Wenn die Datentypen der exportierten Aktualparameter nicht zu der Typisierung
der Formalparameter des Funktionsbausteins passen, kann es zu den bei IMPORT dokumentierten Ausnahmen kommen.
Zusatz 1
... EXPORTING p1 = a1 p2 = a2 ...
Zusatz 2
... TABLES t1 = itab1 t2 = itab2 ...
Wirkung
Die Zusätze EXPORTING und TABLES haben die gleiche Syntax und Bedeutung wie in der parameter_list beim generellen Funktionsbausteinaufruf, mit der Einschränkung, dass bei EXPORTING keine Referenzvariablen oder Datenobjekte, die Referenzvariablen enthalten, als Aktualparameter angegeben werden können.
Bei der Übergabe von internen Tabellen mit nicht-eindeutigen
Tabellenschlüsseln bleibt die Reihenfolge der duplikativen Zeilen bezüglich dieser Schlüssel nicht erhalten.
Hinweis
Die Zusätze IMPORTING, CHANGING und EXCEPTIONS des generellen Funktionsbausteinaufrufs können zwar angegeben werden, werden aber bei der Ausführung ignoriert. Die Zusätze zur dynamischen Parameterübergabe sind nicht erlaubt.
Beispiel
Registrierung des Verbuchungsfunktionsbausteins DEMO_UPDATE_INSERT zur Ausführung bei der Anweisung COMMIT WORK mit Übergabe einer internen Tabelle.
CL_GUI_FRONTEND_SERVICES - Frontend Services Vendor Master (General Section)
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 10267 Date: 20240424 Time: 121202 sap01-206 ( 148 ms )