ABAP Authorization Object S_TCODE
When the transaction is started, an authorization check is carried out in the kernel for the object S_TCODE. The object S_TCODE has a TCD field that contains the transaction code.
To execute a transaction, you require the authorization for this object.
Transactions that are called from other programs using 'CALL TRANSACTION'. Here, it is assumed that a check was made in the program context of the calling program.
The transaction code of the parameter transaction is checked. The core transaction is not protected by S_TCODE, but by the table TSTCA (see below).
Variant transactions are viewed as normal transactions by the authorization check. The transaction code as well as the authorization of the variant transactions stored in table TSTCA is checked.
(The kernel transaction is additionally checked as of Release 4.5. This is withdrawn with the kernel patch mentioned in Note 204193.
-Report transaction: In addition, the report start authorization is checked against object S_PROGRAM. You may start the report directly via the SUBMIT command (for example, via Transaction SA38).
Of course, in this case, transaction start authorizations are not checked (because no transaction is started).
Transaction start authorization check according to table TSTCA
Up to now, an authorization check when starting a transaction could be achieved with ABAP/4 Workbench -> Development -> Other Tools -> Transactions (Transaction SE93, entry in table TSTCA). An authorization object was assigned to the transaction. You could then maintain field values to be checked when starting the transaction (entering ' ' here means that no check is carried out for the field.)