tables : tstct, tstc, tadir, trdir, tfdir, enlfdir,sxs_attrt, modsapt, modact.

 data : jtab like tadir occurs 0 with header line.

 data : field1(30).
 data : v_obj type tadir-object.
 data : v_trx type tstc-tcode.
 data : v_prm(3).
 data : v_devclass like tadir-devclass.


 parameters : p_tcode like tstc-tcode obligatory.
 parameters : v_exit radiobutton group 1.
 parameters : v_badi radiobutton group 1.


 if v_exit eq 'X'.
   v_obj = 'SMOD'.
   v_trx = 'SMOD'.
   v_prm = 'MON'.
 else.
   v_obj = 'SXSD'.
   v_trx = 'SE18'.
   v_prm = 'EXN'.
 endif.

 select single * from tstc where tcode eq p_tcode.

 if sy-subrc eq 0.
   select single * from tadir
           where pgmid = 'R3TR'
             and object = 'PROG'
             and obj_name = tstc-pgmna.

   move : tadir-devclass to v_devclass.
   if sy-subrc ne 0.
     select single * from trdir where name = tstc-pgmna.
     if trdir-subc eq 'F'.
       select single * from tfdir where pname = tstc-pgmna.
       select single * from enlfdir where funcname = tfdir-funcname.
       select single * from tadir
               where pgmid = 'R3TR'
                 and object = 'FUGR'
                 and obj_name eq enlfdir-area.
       move : tadir-devclass to v_devclass.
     endif.
   endif.
   select * from tadir into table jtab
           where pgmid = 'R3TR'
             and object = v_obj
             and devclass = v_devclass.

   select single * from tstct
           where sprsl eq sy-langu
             and tcode eq p_tcode.

   format color col_positive intensified off.
   write:/(26) ' Transaction Code : ',

   28(20) p_tcode,
   60(48) tstct-ttext.
   skip.

   if not jtab[] is initial.
     write:/(108) sy-uline.
     format color col_heading intensified on.
     write:/1 sy-vline,
     2 'BAdI / Exit Name',
     26 sy-vline ,
     27 'Description',
     100 sy-vline ,
     101 'Type',
     108 sy-vline.
     write:/(108) sy-uline.
 * read exit names
     if v_exit eq 'X'.
       loop at jtab.
         select single * from modsapt
                 where sprsl = sy-langu
                   and name = jtab-obj_name.

         format color col_normal intensified off.
         write:/1 sy-vline,
         2 jtab-obj_name hotspot on,
         26 sy-vline ,
         27 modsapt-modtext,
         100 sy-vline,
         101 jtab-object,
         108 sy-vline.
       endloop.
     endif.
 * read badi names
     if v_badi eq 'X'.
       loop at jtab.
         select single * from sxs_attrt
                 where sprsl = sy-langu
                   and exit_name = jtab-obj_name.

         format color col_normal intensified off.
         write:/1 sy-vline,
         2 jtab-obj_name hotspot on,
         26 sy-vline ,
         27 sxs_attrt-text,
         100 sy-vline,
         101 jtab-object,
         108 sy-vline.
       endloop.
     endif.
     write:/(108) sy-uline.
     describe table jtab.
     skip.
     format color col_total intensified on.
     write:/ 'No of objects:' , sy-tfill.
   else.
     format color col_negative intensified on.
     write:/(108) 'No objects'.
   endif.
 else.
   format color col_negative intensified on.
   write:/(108) 'Transaction Code Does Not Exist'.
 endif.

 at line-selection.
   get cursor field field1.
   check field1(4) eq 'JTAB'.
   set parameter id v_prm field sy-lisel+1(20).
   call transaction v_trx and skip first screen.


 *Selection texts
 *----------------------------------------------------------
 * P_TCODE D      Transaction Code
 * V_BADI         Badi
 * V_EXIT         Exit


Serkan AKKAVAK
Computer Engineer
ABAP Developer & SAP MM SD Consultant
Contact : serkurumsal@yandex.com