Friday, August 7, 2015

Userexit determining program sap abap

*&---------------------------------------------------------------------*
*& Report  YJUSEREXIT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT YJUSEREXIT.
*report z_find_user_exit no standard page heading.



tables: tstc, tadir, modsapt, modact,

        trdir, tfdir, enlfdir, tstct.



data : jtab like tadir occurs 0 with header line.

data : hotspot(30).



parameters : p_tcode like tstc-tcode obligatory.



at line-selection.

  get cursor field hotspot.

  check hotspot(4) eq 'JTAB'.

  set parameter id 'MON' field sy-lisel+1(10).

  call transaction 'SMOD' and skip first screen.



start-of-selection.



  perform get_data.

  perform write_list.





*----

*--------------------------------------------------------------------------------


*      FORM get_data                                                 *


*----

*--------------------------------------------------------------------------------


form get_data.



  select single * from tstc

              where tcode eq p_tcode.

  check sy-subrc eq 0.



  select single * from tadir

            where pgmid = 'R3TR'

              and object = 'PROG'

              and obj_name = tstc-pgmna.





  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.

    endif.



  endif.



  select * from tadir into table jtab

             where pgmid = 'R3TR'

               and object = 'SMOD'

               and devclass = tadir-devclass.



  select single * from tstct

          where sprsl eq sy-langu

            and tcode eq p_tcode.



endform.



*----

*--------------------------------------------------------------------------------


*      FORM write_list                                               *


*----

*--------------------------------------------------------------------------------


form write_list.



  format color col_positive intensified off.

  write:/(19) 'Transaction Code - ',

  20(20) p_tcode,

  45(50) tstct-ttext.

  skip.

  if not jtab[] is initial.

    write:/(95) sy-uline.

    format color col_heading intensified on.

    write:/1 sy-vline,

    2 'Exit Name',

    21 sy-vline ,

    22 'Description',

    95 sy-vline.

    write:/(95) sy-uline.

    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,

      21 sy-vline ,

      22 modsapt-modtext,

      95 sy-vline.

    endloop.

    write:/(95) sy-uline.

    describe table jtab.

    skip.

    format color col_total intensified on.

    write:/ 'No of Exits:' , sy-tfill.

  else.

    format color col_negative intensified on.

    write:/(95) 'No User Exit exists'.

  endif.



endform.

No comments:

Post a Comment