Get Example source ABAP code based on a different SAP table
ID CALL-TRANSACTION • CALL TRANSACTION ABAP Statement
CALL TRANSACTION> Short Reference >
ABAP_SYNTAX_FORMS
Simple Transaction Call> 1 CALL TRANSACTION ta WITH$|WITHOUT AUTHORITY-CHECK> $[AND SKIP FIRST SCREEN$].>
Transaction Call Using Batch Input Table > 2 CALL TRANSACTION ta WITH$|WITHOUT AUTHORITY-CHECK> USING bdc_tab ${ ${$[MODE mode$] $[UPDATE upd$]$} $| $[OPTIONS FROM opt$] $} $[MESSAGES INTO itab$].>
What does it do? The statement CALL TRANSACTION> calls the transaction> whose transaction code is contained in the data object ta>. The calling program and its data are preserved. After the transaction call, the program execution of the calling program is resumed after the statement CALL TRANSACTION>. 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 CALL-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 CALL-TRANSACTION-DYNAMIC When the statement is executed, ta> is not evaluated until runtime in both cases. If the transaction specified in ta> is not found, a uncatchable exception is raised.
In the first variant>, the display of the initial dynpro can be suppressed.
In the second variant>, the transaction is controlled by a batch input table>. In both variants, an authorization check> can be performed for the called transaction. When the transaction is called, the ABAP program linked to the transaction code is loaded in a new ABAP_ISESS > of the current call sequence>. The session of the calling program and the current SAP LUW> are retained. The called program runs in its own SAP LUW.
If the called transaction is a dialog transaction, the event LOAD-OF-PROGRAM>> is raised after the ABAP program is loaded and the dynpro> defined as the initial dynpro of the transaction is called. The initial dynpro is the first dynpro of a dynpro sequence >. The transaction is finished when the dynpro sequence is ended by encountering the next dynpro with dynpro number 0 or when the program is exited using the statement LEAVE PROGRAM> >.
If the called transaction is an OO> transaction>, then, after all programs other than class pools> are loaded, the event LOAD-OF-PROGRAM> is raised and the method linked to the transaction code is called. If the method is an instance method, an object of the corresponding class is generated implicitly and referenced by the runtime framework. The transaction is finished when the method is finished or when the program is exited using the statement LEAVE PROGRAM>.
Latest notes:
CALL 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.
The statement CALL TRANSACTION> opens a new SAP LUW>, but it does not open a new database LUW>. This means that a database rollback> in this SAP LUW, in particular, can roll back all registration entries made by the statements CALL FUNCTION IN UPDATE TASK>> or CALL FUNCTION IN BACKGROUND TASK>> in the tables VB...> or ARFCSSTATE> and ARFCSDATA>. The statement ROLLBACK WORK >> in the called program may also affect the interrupted SAP LUW under certain circumstances. To prevent this, an explicit database commit> must be executed before the program is called. This problem does not occur during local updates>.
The number of ABAP_ISESSNS in a call sequence> is restricted to nine. If this is exceeded by CALL TRANSACTION>, the program is terminated and the entire call sequence is deleted. ABAP_HINT_END