Ansicht
Dokumentation

ABAPCALL_FUNCTION_UPDATE - CALL FUNCTION UPDATE

ABAPCALL_FUNCTION_UPDATE - CALL FUNCTION UPDATE

PERFORM Short Reference   General Material Data  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

CALL FUNCTION, IN UPDATE TASK

Kurzreferenz



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 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.

SAP-LUW, UPDATE TASK






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 )