Skip to content

ABAP Keyword Documentation →  ABAP - Reference →  Calling and leaving program units →  Calling Programs →  Calling Transactions 

CALL TRANSACTION

Short Reference

Other versions: 7.31 | 7.40 | 7.54

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].

Effect

The statement CALL TRANSACTION calls the transaction whose transaction code is contained in data object ta. The calling program and its data are retained. After the end of the transaction call, program execution of the calling program resumes after the statement CALL TRANSACTION.

The data object ta must be character-like, flat and contain the transaction code in uppercase letters. If the transaction specified in ta cannot be found, a non-handleable exception is raised.

In both variants, an authorization check can be performed on the called transaction.

When the transaction is called, the ABAP program associated with the transaction code is loaded in a new internal session of the current call sequence. The session of the calling program and the current SAP LUW are preserved. The called program runs in its own SAP LUW.

  • If the called transaction is a dialog transaction, the event LOAD-OF-PROGRAM is triggered after the ABAP programs 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 when loading all programs (except class pools), the event LOAD-OF-PROGRAM is triggered and the method associated with the transaction code is called. If the method is an instance method, an object of the associated class is generated implicitly and referenced by the runtime environment. The transaction is finished when the method is finished or when the program is exited using the statement LEAVE PROGRAM.


Notes

Security Note

If the name of a program unit is specified dynamically when it is called, and this name is passed to a program from outside, the result is a serious security risk. Any names passed to a program from outside must be checked thoroughly before being used in calls. The system class CL_ABAP_DYN_PRG, for example, can be used to do this. See Dynamic Calls.

Exceptions


Catchable Exceptions

CX_SY_AUTHORIZATION_ERROR

  • Cause: No authorization for this transaction
    Runtime Error: CALL_TRANSACTION_FAILED


Non-Catchable Exceptions

  • Cause: Transaction not found.
    Runtime Error: CALL_TRANSACTION_NOT_FOUND
  • Cause: Transaction is an area menu and cannot be called.
    Runtime Error: CALL_TRANSACTION_IS_MENU
  • Cause: Transaction is locked.
    Runtime Error: CALL_TRANSACTION_LOCKED
  • Cause: Error in internal memory management.
    Runtime Error: CALL_TRANSACTION_MSG_NO_PAGING
  • Cause: Recursive call of a transaction using the addition USING.
    Runtime Error: CALL_TRANSACTION_USING_NESTED

Continue

CALL TRANSACTION - standard

CALL TRANSACTION - USING

Transaction Call - Examples