Ansicht
Dokumentation

ABENDB_COMMIT_DURING_UPDATE - DB COMMIT DURING UPDATE

ABENDB_COMMIT_DURING_UPDATE - DB COMMIT DURING UPDATE

ABAP Short Reference   BAL Application Log Documentation  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Verbotene Anweisungen in der Verbuchung

Während der Verbuchung, d.h. während der Verarbeitung eines mit COMMIT WORK angestoßenen Verbuchungsfunktionsbausteins

  • darf die Steuerung der Verbuchung nicht beeinflusst werden.

Wenn ein Datenbank-Commit oder ein Datenbank-Rollback während der Verbuchung auftritt, bricht diese mit einem Laufzeitfehler ab. Anweisungen, welche die Verbuchungssteuerung stören, können zu undefiniertem Verhalten führen.

Anweisungen, die einen Datenbank-Commit oder einen Datenbank-Rollback zur Folge hätten oder die Verbuchungssteuerung stören würden, sind deshalb während der Verbuchung verboten und führen direkt bei ihrem Aufruf zu einem Laufzeitfehler bevor der Laufzeitfehler an einer anderen Stelle auftritt. Dies sind:

  • Über die Anweisungen

bewirken explizit einen Datenbank-Commit bzw. einen Datenbank-Rollback und führen während der Verbuchung deshalb direkt zu den Laufzeitfehlern COMMIT_IN_POSTING bzw. ROLLBACK_IN_POSTING.
  • Über die Anweisungen

haben entweder einen impliziten Datenbank-Commit zur Folge oder stören die Verbuchungssteuerung und führen während der Verbuchung deshalb direkt zu dem Laufzeitfehler POSTING_ILLEGAL_STATEMENT.
  • Das Ausführen der Native-SQL-Anweisungen COMMIT WORK und ROLLBACK WORK führt während der Verbuchung zu dem Laufzeitfehler POSTING_ILLEGAL_STATEMENT.
  • 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 führt während der Verbuchung zum Laufzeitfehler MESSAGE_ROLLBACK_IN_POSTING.

Hinweise

  • Durch das Auftreten der Laufzeitfehler direkt bei den Anweisungen, die während der Verbuchung zu einem Fehlverhalten führen würden, sind diese im Fehlerfall leichter zu finden, als wenn die Ausnahme beispielsweise erst bei einem impliziten Datenbank-Commit auftreten würde.
  • Obwohl auch das Senden von Nachrichten mit der Anweisung MESSAGE für die Nachrichtentypen I, W, E und A einen impliziten Datenbank-Rollback zur Folge hat, kann aus Gründen der Abwärtskompatibilität hier kein direkter Laufzeitfehler ausgelöst werden. Statt dessen gilt das Verhalten von Nachrichten in der Verbuchung.
  • Synchrone oder asynchrone Remote Function Calls, die im allgemeinen einen Datenbank-Commit zur Folge haben, führen bei der Verbuchung zu keinem Commit. Bei der Verbuchung können sRFC und aRFC ohne Fehler verwendet werden.





CPI1466 during Backup   ABAP Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 7030 Date: 20240523 Time: 173620     sap01-206 ( 138 ms )