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: 

How to Search BADI / User Exits

Former Member
0 Kudos

Hi,

Given a transaction what r the ways to find the applicable BADIs ?

Should we only search the get_instance method or there exists some better ways to search the BADI ?

Also given a transaction what r the ways to search for user-exits / customer exits ?

In this case also should we only search call customer-function ?

What r the standard ways to find user-exits/ customer exits and BADIs applicable ?

Regards,

Nitin

3 REPLIES 3

Former Member
0 Kudos

hi,

there is a program to search user-exits:

REPORT ZUSEREXITS .

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

*

*

TABLES : tstc,

tadir,

modsapt,

modact,

trdir,

tfdir,

enlfdir,

tstct.

DATA : jtab LIKE tadir OCCURS 0 WITH HEADER LINE.

DATA : field1(30).

DATA : v_devclass LIKE tadir-devclass.

    • Transaction Code

PARAMETERS : p_tcode LIKE tstc-tcode OBLIGATORY.

SELECT SINGLE * FROM tstc

WHERE tcode EQ p_tcode.

IF sy-subrc = 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 = '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.

SELECT * FROM tadir INTO TABLE jtab

WHERE pgmid = 'R3TR' AND

object = 'SMOD' AND

devclass = v_devclass.

SELECT SINGLE * FROM tstct

WHERE sprsl = sy-langu AND

tcode = 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) = 'JTAB'.

SET PARAMETER ID 'MON' FIELD sy-lisel+1(10).

CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.

Regards,

Andrej.

0 Kudos

This can not be a standard way of searching user exits.

Also this will not enlist the available BADI's for the transaction.

What is the technical way to search user exits / customer exits /BADIs ?

Regards,

Nitin

Former Member
0 Kudos

Hi Nitin

For what it's worth:

If you really need to search for a Badi (or other user exit) within a program, then maybe a technical approach is for you.

This seems that you have already made the design decision as to where the code should fit within the SAP application.

In SAP software, I think most would agree that there is normally more than one way to achieve what you want to do. I could certainly be wrong though.

Sometimes it may be better to approach from an application point of view and look from within the Implementation Guide. You can show BAdis as an additional information column in the IMG.

Alternatively you can simply search the definitions in SE18.

Or, if you drill down to the Package view in SE80 for the program you are looking at, you can browse the enhancements in that package.

Cheers

Dom