Die Klasse CL_SYSTEM_TRANSACTION_STATE bietet die Möglichkeit, auf die "Ereignisse" COMMIT WORK und ROLBACK WORK eines Programms/Transaktion via Event TRANSACTION_FINISHED reagieren zu können.
Nun habe ich für eine SAP Applikation (IS-H) ein Modul (oder besser "Subscreen") erstellt und mache dort meine ganzen Verarbeitung die auch soweit funktionieren.
Mein Problem ist nun, dass diese SAP Applikation mit LEAVE Verlassen wird und ich noch einen "Cleanup"-Code durchlaufen müsste. Es wird aber leider für diesen Fall kein BAdI oder ähnliches zur Verfügung gestellt. Auch wird leider kein ROLLBACK WORK ausgelöst, auf das ich mit obiger Klasse reagieren können.
Gibt es noch andere Möglichkeiten zu Erkennen ob die gerade laufende Transaktion im Begriff ist beendet zu werden?
lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.
m.W. existiert kein Event oder so was. Da man ja auch via /n eine Transaktion verlassen kann ist das sowies recht kompliziert, da dies scheinbar tief in der GUI gehandhabt wird und nicht mal ein Systemdebugging auslöst. Auch für GUI-Objekte wird keine FREE-Methode ausgelöst beim Vorzeigen verlassen oder einfach beim normalen Beenden eines Programms.
Daher fürchte ich, dass du hier leer ausgehen wirst.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.