При создании вариантов транзакций внутри расширений переменная SY-TCODE содержит код базовой транзакции а не код транзакции варианта. Чтобы получить таки код транзакции которую запустил пользователь. Надо получить ее код используя следующий класс и метод:
CL_ABAP_SYST=>GET_TRANSACTION_CODE( )