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: 

USER EXIT

Former Member
0 Kudos

How to find out the user exits for every transaction aur iska subject ?

1 ACCEPTED SOLUTION

rahulkavuri
Active Contributor
0 Kudos

Copy and run this program in SE38

report z_find_userexit no standard page heading.



*&---------------------------------------------------------------------*

*&  Enter the transaction code that you want to search through in order

*&  to find which Standard SAP User Exits exists.

*&

*&---------------------------------------------------------------------*



*&---------------------------------------------------------------------*

*& Tables

*&---------------------------------------------------------------------*



tables : tstc,     "SAP Transaction Codes

         tadir,    "Directory of Repository Objects

         modsapt,  "SAP Enhancements - Short Texts

         modact,   "Modifications

         trdir,    "System table TRDIR

         tfdir,    "Function Module

         enlfdir,  "Additional Attributes for Function Modules

         tstct.    "Transaction Code Texts



*&---------------------------------------------------------------------*

*& Variables

*&---------------------------------------------------------------------*



data : jtab like tadir occurs 0 with header line.

data : field1(30).

data : v_devclass like tadir-devclass.



*&---------------------------------------------------------------------*

*& Selection Screen Parameters

*&---------------------------------------------------------------------*

selection-screen begin of block a01 with frame title text-001.

selection-screen skip.

parameters : p_tcode like tstc-tcode obligatory.

selection-screen skip.

selection-screen end of block a01.



*&---------------------------------------------------------------------*

*& Start of main program

*&---------------------------------------------------------------------*



start-of-selection.



* Validate Transaction Code

  select single * from tstc

    where tcode eq p_tcode.



* Find Repository Objects for transaction code

  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 = enlfdir-area.



        move : tadir-devclass to v_devclass.

      endif.

    endif.



* Find SAP Modifactions

    select * from tadir

      into table jtab

      where pgmid    = 'R3TR'

        and object   = 'SMOD'

        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:/(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,

        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.

  else.

    format color col_negative intensified on.

    write:/(95) 'Transaction Code Does Not Exist'.

  endif.



* Take the user to SMOD for the Exit that was selected.

at line-selection.

  get cursor field field1.

  check field1(4) eq 'JTAB'.

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

  call transaction 'SMOD' and skip first screen.

8 REPLIES 8

former_member181962
Active Contributor
0 Kudos

1)Go to se93.

Give the tcode and find the package.

Go to smod.

Press F4.

GIve the package and get the enhancements associated.

2) Make a global find in the mian program of the transaction, with search strings like

"call customer", "user exit" etc.

Regards,

Ravi

Former Member
0 Kudos

just copy and paste program in this link..

<b>

http://www.sap-img.com/ab038.htm</b>;

  • Finding the user-exits of a SAP transaction code

*

  • Enter the transaction code in which you are looking for the user-exit

  • and it will list you the list of user-exits in the transaction code.

  • Also a drill down is possible which will help you to branch to SMOD.

0 Kudos

pl check this

Regards,

Suresh Datti

Former Member
0 Kudos

HI

<b>Program to Find user exits with a TCode :</b>

http://www.sapgenie.com/abap/code/abap26.htm

<b>A Short Tutorial on User Exits :</b>

http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm

Thanks

Sudheer

former_member404244
Active Contributor
0 Kudos

hi,

check these out.

These links will help you to learn more on user exits.

http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm

http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/frameset.htm

http://www.planetsap.com/userexit_main_page.htm

http://www.allsaplinks.com/user_exit.html

www.sap-img.com/abap/what-is-user-exits.htm

Also please check these threads for more details about user exits.

www.sap-img.com/abap/ what-is-the-difference-between-smod-and-cmod.htm

contains custom program which gives details about SAP enhancement projects specified by SAP for standard transactions.

tcodes - se84,smod(for searching)

cmod(for creating )

first of all u should know the package.

for example vf03.

1>go to system status.

2>get program name

3>go to attrivutes(get package)

then go to se84 0r smod enter package name.

u will get list of exits.

select the appropriate exit and in cmod

create project and activate the exit.

Former Member
0 Kudos

Hi,

Use the following program to search user exits by 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.

rgds,

latheesh

former_member927251
Active Contributor
0 Kudos

Hi Warren,

Just create a program in SE38 with the following source code.

Enter the transaction code and it will display the list of user exits for the same.


REPORT  yam_find_user_exit_for_tcode NO STANDARD PAGE HEADING.

TABLES : tstc, tadir, modsapt, modact, trdir, tfdir, enlfdir.
TABLES : tstct.
DATA : jtab LIKE tadir OCCURS 0 WITH HEADER LINE.
DATA : field1(30).
DATA : v_devclass LIKE tadir-devclass.
PARAMETERS : p_tcode LIKE tstc-tcode OBLIGATORY.

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 = 'SMOD'
  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:/(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.
ELSE.
  FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
  WRITE:/(95) 'Transaction Code Does Not Exist'.
ENDIF.

AT LINE-SELECTION.
  GET CURSOR FIELD field1.
  CHECK field1(4) EQ 'JTAB'.
  SET PARAMETER ID 'MON' FIELD sy-lisel+1(10).
  CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.

<b>Reward points if it helps and close the thread.</b>

rahulkavuri
Active Contributor
0 Kudos

Copy and run this program in SE38

report z_find_userexit no standard page heading.



*&---------------------------------------------------------------------*

*&  Enter the transaction code that you want to search through in order

*&  to find which Standard SAP User Exits exists.

*&

*&---------------------------------------------------------------------*



*&---------------------------------------------------------------------*

*& Tables

*&---------------------------------------------------------------------*



tables : tstc,     "SAP Transaction Codes

         tadir,    "Directory of Repository Objects

         modsapt,  "SAP Enhancements - Short Texts

         modact,   "Modifications

         trdir,    "System table TRDIR

         tfdir,    "Function Module

         enlfdir,  "Additional Attributes for Function Modules

         tstct.    "Transaction Code Texts



*&---------------------------------------------------------------------*

*& Variables

*&---------------------------------------------------------------------*



data : jtab like tadir occurs 0 with header line.

data : field1(30).

data : v_devclass like tadir-devclass.



*&---------------------------------------------------------------------*

*& Selection Screen Parameters

*&---------------------------------------------------------------------*

selection-screen begin of block a01 with frame title text-001.

selection-screen skip.

parameters : p_tcode like tstc-tcode obligatory.

selection-screen skip.

selection-screen end of block a01.



*&---------------------------------------------------------------------*

*& Start of main program

*&---------------------------------------------------------------------*



start-of-selection.



* Validate Transaction Code

  select single * from tstc

    where tcode eq p_tcode.



* Find Repository Objects for transaction code

  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 = enlfdir-area.



        move : tadir-devclass to v_devclass.

      endif.

    endif.



* Find SAP Modifactions

    select * from tadir

      into table jtab

      where pgmid    = 'R3TR'

        and object   = 'SMOD'

        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:/(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,

        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.

  else.

    format color col_negative intensified on.

    write:/(95) 'Transaction Code Does Not Exist'.

  endif.



* Take the user to SMOD for the Exit that was selected.

at line-selection.

  get cursor field field1.

  check field1(4) eq 'JTAB'.

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

  call transaction 'SMOD' and skip first screen.