Ansicht
Dokumentation
TRANSACTION_BEGIN - Beginn der Transaktion festlegen (LUW)
General Data in Customer Master ROGBILLS - Synchronize billing plansDiese Dokumentation steht unter dem Copyright der SAP AG.
Funktionalität
Geschachtelte Update/Create-BAPIs:
Ziel: Die Commit-Steuerung soll innerhalb des SAP-Systems dem Aufrufer überlassen werden, ohne an der BAPI-Schnittstelle ein Commit-Flag zu verwenden.
Beachten Sie den Hinweis (s.u.).
Lösung: Im gerufenen BAPI-Baustein wird kein 'Commit Work' oder 'Rollback Work' hart codiert, sondern es wird ein 'Commit Work' oder 'Rollback Work' vom BAPI angefordert. Ist das BAPI im Besitz der Transaktion, dann bekommt es ein 'Commit Work'. Wurde der Status der Transaktion von einem BAPI auf 'Rollback' gesetzt, dann wird ein 'Rollback Work' durchgeführt.
Das nachstehende Beispiel verdeutlicht, wie folgende Funktionsbausteine zusammenwirken:
- Transaction_Begin
- Transaction_Abort
- Transaction_End
- Transaction_Status
Beispiel
Funktionsbaustein FB1 öffnet die Transaktionsklammer mit Transaction_begin, wird Besitzer der Transaktion und bekommt eine Transaktionsnummer zurück. Der Transaktionsstatus wird auf "COMMIT WORK"-fähig gesetzt. Dann wird FB2 aufgerufen. FB2 versucht ebenfalls, Besitzer der Transaktion zu werden. FB2 kann nicht Besitzer werden, da FB1 bereits die Transaktion besitzt. FB2 kann jedoch den Status der Transaktion durch Aufruf des Funktionsbausteins Transaktion_Abort auf "ROLLBACK WORK" setzen.
Der Funktionsbaustein Transaction_End fordert ein Commit-Work an. Das Commit-Work bekommt nur der Besitzer einer Transaktion; darüber hinaus muß der Transaktionsstatus "COMMIT WORK"-fähig sein. Ist der Transaktionsstatus auf "ROLLBACK-WORK" gesetzt, erhält der Besitzer der Transaktion ein Rollback-Work. Transaction_End bleibt für den Aufrufer ohne Wirkung, da er nicht Besitzer der Transaktion ist.
Mit dem Funktionsbaustein Transaction_Status kann der augenblickliche Transaktionsstatus abgefragt werden.
FB1()
data: TID like arfctid structure arfctid "lokale TID
call function TRANSACTION_BEGIN (Exp. TID)
...
call function FB2()
+ + FB2()
data: TID like arfctid structure arfctid "lokale TID
call function TRANSACTION_BEGIN (Exp. TID)
...
call function TRANSACTION_END (Imp. TID)
+ + end FB2
call function TRANSACTION_END(Imp. TID)
end FB1
Hinweise
Diese Lösung wird vorübergehend zu 4.0A von BAPIs benutzt, die ALE-Funktionalität verwenden und wird zu einem späteren Release durch ein allgemeines Transaktionskonzept von der Basis-Entwicklung abgelöst.
Weiterführende Informationen
Parameter
TRANSACTION_IDAusnahmen
Funktionsgruppe
BAPTBAL_S_LOG - Application Log: Log header data General Material Data
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 3068 Date: 20240523 Time: 121434 sap01-206 ( 61 ms )