Ansicht
Dokumentation

ABAPPERFORM_SUBR - PERFORM SUBR

ABAPPERFORM_SUBR - PERFORM SUBR

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

PERFORM, ON COMMIT, ROLLBACK

Kurzreferenz



PERFORM subr ON ${ ${COMMIT $[LEVEL idx$]$} $| ROLLBACK $}.

Zusatz:

... LEVEL idx

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.

SAP-LUW, ON COMMIT






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 )