Show TOC

SAP TransactionsLocate this document in the navigation structure

An SAP LUW is a logical unit consisting of dialog steps, whose changes are written to the database in a single database LUW. In an application program, you end an SAP LUW with either the COMMIT WORKor ROLLBACK WORKstatement. An SAP transaction is an ABAP application program that you start using a transaction code. It may contain one or more SAP LUWs. Whenever the system reaches a COMMIT WORKor ROLLBACK WORK statement that is not at the end of the last dialog step of the SAP transaction, it opens a new SAP LUW.

If a particular application requires you to write a complex transaction, it can often be useful to arrange logical processes within the SAP transaction into a sequence of individual SAP LUWs. You can structure SAP transactions as follows:

  • With one or more SAP LUWs.

    Transactions in this form consist entirely of processing blocks (dialog modues, event blocks, function module calls, and subroutines). You should be careful to ensure that external subroutines or function modules do not lead to COMMIT WORKor ROLLBACK WORK statements accidentally being executed.

  • By inserting an SAP LUW

    The ABAP statements CALL TRANSACTION (start a new transaction), SUBMIT (start an executable program), and CALL FUNCTION ... DESTINATION (call a function module using RFC) open a new SAP LUW. When you call a program, it always opens its own SAP lUW. However, it does not end the LUW of the SAP transaction that called it. This means that a COMMIT WORK or ROLLBACK WORK statement only applies to the SAP LUW of the called program. When the new LUW is complete, the system carries on processing the first SAP LUW.

  • By running two SAP LUWs in parallel

    The CALL FUNCTION ... STARTING NEW TASKstatement calls a function module asynchronously in a new session. Unlike normal function module calls, the calling transaction carries on with its own processing as soon as the function module has started, and does not wait for it to finish processing. The function call is asynchronous. The called function module can now call its own screens and interact with the user.