Ansicht
Dokumentation
ABAPPERFORM_SUBR - PERFORM SUBR
General Material Data SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3upDiese Dokumentation steht unter dem Copyright der SAP AG.
PERFORM, ON COMMIT, ROLLBACK
PERFORM subr ON ${ ${COMMIT $[LEVEL idx$]$} $| ROLLBACK $}.
Zusatz:
Wirkung
Diese Anweisung registriert das durch subr direkt angegebene Unterprogramm des gleichen Programms. Das Unterprogramm wird nicht sofort ausgeführt, sondern zur Ausführung bei einer der Anweisungen COMMIT WORK bzw. ROLLBACK WORK vorgemerkt.
Die registrierten Unterprogramme werden bei Ausführung der Anweisung COMMIT WORK bzw.
ROLLBACK WORK in deren Workprozess und vor mit CALL
FUNCTION ... IN UPDATE TASK registrierten Verbuchungsfunktionsbausteinen ausgeführt.
Unterprogramme, die während der Ausführung eines Verbuchungsfunktionsbausteins für COMMIT registriert werden, werden am Ende der
Verbuchung ausgeführt.
Bei der nicht-lokalen Verbuchung geschieht dies im Verbuchungs-Workprozess und bei der lokalen Verbuchung im aktuellen Workprozess.
Keine Implementierungen in Funktionsbausteinen und Unterprogrammen
Hinweise
- Das Anlegen von Unterprogrammen ist obsolet. Wenn für PERFORM subr ON COMMIT oder
PERFORM subr ON ROLLBACK noch neue Unterprogramme benötigt werden, sollten diese nur der Verschalung eines Methodenaufrufs dienen und ansonsten kein funktionales Coding enthalten.
- Registrierte Unterprogramme können keine Parameterschnittstelle haben. Daten können
daher nur über externe Schnittstellen wie z.B. das ABAP Memory übergeben werden. Unterprogramme,
die bei COMMIT WORK bzw. ROLLBACK WORK ausgeführt werden, eignen sich daher eher für Verwaltungsaufgaben wie z.B. Aufräumarbeiten am Ende einer
SAP-LUW als für Datenbankänderungen.
- Während der Verarbeitung eines registrierten Unterprogramms nach COMMIT WORK bzw.
ROLLBACK WORK dürfen die Anweisungen PERFORM ... ON COMMIT, PERFORM ... ON ROLLBACK,
COMMIT WORK oder ROLLBACK WORK nicht ausgeführt werden. Das Abfangen einer Nachricht
vom Typ "A" mit der vordefinierten Ausnahme error_message
beim Aufruf eines Funktionsbausteins führt implizit die Anweisung ROLLBACK WORK aus und ist deshalb ebenfalls verboten.
- Wenn Verbuchungsfunktionsbausteine während der Verarbeitung eines registrierten Unterprogramms
nach COMMIT WORK über CALL FUNCTION ... IN UPDATE TASK registriert werden, gilt diese Registrierung noch für die aktuelle
SAP-LUW.
Zusatz
... LEVEL idx
Wirkung
Bei für COMMIT registrierten Unterprogrammen kann mit dem Zusatz LEVEL die Ausführungsreihenfolge
gesteuert werden, wobei für idx ein Datenobjekt vom Typ i erwartet wird. Die Ausführung
erfolgt dann sortiert nach aufsteigendem Wert von idx , wobei idx ohne explizite Angabe
den Wert 0 hat. Bei gleichem Wert von idx bzw. bei keiner Angabe richtet sich die Reihenfolge
der Ausführung nach der Reihenfolge der Registrierung. Ein mehrfach für COMMIT bzw. ROLLBACK registriertes Unterprogramm wird jeweils nur einmal ausgeführt.
Beispiel
Registrierung eines Unterprogramms insert des gleichen Programms zur Ausführung bei der Anweisung COMMIT WORK. Die Datenübergabe erfolgt über das ABAP Memory.
TXBHW - Original Tax Base Amount in Local Currency General Data in Customer Master
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 5233 Date: 20240523 Time: 131245 sap01-206 ( 103 ms )