Get Example source ABAP code based on a different SAP table
• LEAVE TO TRANSACTION ABAP Statement • LEAVE TO CURRENT TRANSACTION ABAP Statement
LEAVE TO TRANSACTION> Short Reference >
ABAP_SYNTAX LEAVE TO ${ ${TRANSACTION ta$} $| ${CURRENT TRANSACTION$} $} $[AND SKIP FIRST SCREEN$].>
ABAP Addition ... AND SKIP FIRST SCREEN>
What does it do? The statement LEAVE TO TRANSACTION> calls either the transaction> whose transaction code is contained in data object ta> or the current transaction, and in doing so exits the current call sequence >. The data object ta> must be character-like, flat and contain the transaction code in uppercase letters. The following can be specified for ta>:
Literal or constant If the data object ta> is specified as a text field literal> or as a constant>, it is evaluated as a static specification by tools such as the extended program check> or the where-used list.
Variable BEGIN_SECTION ID LEAVE-TO-TRANSACTION-DYNAMIC If the data object ta> is specified as a variable>, it is specified only dynamically, and the content is not evaluated statically. END_SECTION ID LEAVE-TO-TRANSACTION-DYNAMIC When the statement is executed, ta> is not evaluated until runtime (in both cases). If CURRENT TRANSACTION> is specified, the current transaction is called using the transaction code that was used to call the transaction using CALL TRANSACTION> or LEAVE TO TRANSACTION>. This transaction code is contained in the system field sy-tcode> except for parameter transactions> or variant transactions>. When using parameter transactions or variant transactions, their transaction code is used for the call and sy-tcode> contains the name of the implicitly called dialog transaction >. When using LEAVE TO TRANSACTION>, the current call sequence> is exited completely. When the called transaction is terminated, the runtime framework returns to the position where the first program in the call sequence was called and the current SAP LUW> is terminated. When the transaction is called, the ABAP program to which the transaction code is linked is loaded in a new ABAP_ISESS >. All previous ABAP_ISESSNS are deleted from the stack. At the same time, the ABAP memory> is deleted, which means that EXPORT FROM MEMORY>> or IMPORT TO MEMORY>> cannot be used to pass data when using LEAVE TO TRANSACTION>. The steps of the called dialog transaction or OO> transaction> are the same as in CALL TRANSACTION>>. When the called transaction is exited, the runtime framework returns to the position where the first program in the current call sequence was called. If the transaction specified in ta> is not found, or if ta> is initial or contains a blank, the stack of the current call sequence is deleted and the runtime framework returns directly to the position where the first program in the current call sequence was called. If ta> is not initial, an appropriate message appears in the status bar. The statement LEAVE TO TRANSACTION> always terminates the current call sequence, regardless of whether or not a new transaction can be called. Unlike in the statement CALL TRANSACTION >>, the authorization of the current user for executing the called transaction is always checked automatically as follows when using the statement LEAVE TO TRANSACTION>:
It is checked against the authorization object> S_TCODE >.
It is checked against any authorization object entered in the definition of the transaction code (maintenance transaction SE93 >>). Fields of the authorization object for which no value is specified here are not checked. If the required authorization is missing, a message> with message type> A ( termination message>) is sent and the system responds> appropriately.
Latest notes:
The syntax CURRENT TRANSACTION> can be used to execute a running parameter transaction or variant transaction again with its respective parameters or transaction variant. Alternatively, the static method GET_CURRENT_TRANSACTION> of the class CL_DYNPRO > can be used to obtain the transaction code of the current transaction. This method returns the transaction code during a parameter transaction or variant transaction instead of the transaction code of the implicitly called dialog transaction.
LEAVE TO TRANSACTION> does not end the current database LUW>. A database commit> or database rollback> in the called program has the same effect as in the current program.
If procedures are still registered for LEAVE TO TRANSACTION> in the current SAP LUW>, the SAP LUW is terminated and the procedures are not called or rolled back. Any registered update function modules> are preserved in the database, but can no longer be executed. In cases like this, therefore, it is advisable to execute the statement COMMIT WORK>> or ROLLBACK WORK>> explicitly before the program call. ABAP_HINT_END