Ansicht
Dokumentation

TRANSACTION_BEGIN - Beginn der Transaktion festlegen (LUW)

TRANSACTION_BEGIN - Beginn der Transaktion festlegen (LUW)

General Data in Customer Master   ROGBILLS - Synchronize billing plans  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

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_ID

Ausnahmen

Funktionsgruppe

BAPT

BAL_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 )