Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Find the appropriate USER exit

Former Member
0 Kudos

I want to find the apprpriate user exit to include a function module which will trigger a workflow when the save button is pressed.

The program name related to the transaction APPCHANGE used is

SAPLHRHAP_UI_DOCUMENT_REPORT (transaction Code APPCHANGE.)

Please Help

Thank your.

2 REPLIES 2

RichHeilman
Developer Advocate
Developer Advocate
0 Kudos

Here is a program that can be used to find user exits per transaction code.



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.

Regards,

Rich Heilman

Former Member
0 Kudos

I had the same question and found this reply today, which is very useful. Thanks, Rich!