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: 

transaction code + User exit

Former Member
0 Kudos
149

Hi

all

i m looking for a Z program where i can enter

transaction code as parameter and get all the

user exits corresponding to it.

How can i do it can any one help me?

can u tell me what r user exits and why they r used?

Thanks

Saurabh Tiwari

8 REPLIES 8

Former Member
0 Kudos
98

Former Member
0 Kudos
98

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

*&  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 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.

* 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.

rahulkavuri
Active Contributor
0 Kudos
98

<b>Please award points if found helpful</b>

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.

Former Member
0 Kudos
98

See the code below.

rgds,

TM.

REPORT zuserexit 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.

Former Member
0 Kudos
98

www.sapgenie.com/abap/code/abap26.htm<a href="http://">http://</a>

Former Member
0 Kudos
98

Hi Saurabh,

report zuserexit 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.

Cheers,

Stefan

Former Member
0 Kudos
98

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 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.

  • 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

former_member188685
Active Contributor
0 Kudos
98

Hi,

check this Link here you get the sample code

http://sap.ittoolbox.com/code/archives.asp?i=10&d=2998&a=s

http://www.sap-img.com/ab038.htm

Regards

vijay