Application Development and Automation 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: 
Read only

BADI

Former Member
0 Likes
799

Hi All,

How to find out that for BADI, is there implementions exist for it?

Regards,

Jeetu

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
727

Go to t-code SE18.

Enter the BADI name.

In the menu bar, select 'Enhancement Implementation' and then select 'Display', you will get a list of implementations of the BADI entered, if there exists one.

Regards,

Swapnil.

6 REPLIES 6
Read only

Former Member
0 Likes
727

1) Identify the User Exit suitable for the requirement and that is available in the system:

T.Code SE18 is used to Identify the BADI available.

Look for the string 'CL_EXITHANDLER' in the standard program. This is a class which has a method 'GET_INSTANCE' which is used to trigger BADI's from the Standard Program. The interface parameter for this static method 'EXIT_NAME' is used to pass the BADI to the method.

Open Standard Program and do a global search 'CL_EXITHANDLER'.

SE18 > give the BADI name found through above search.

CUSTOMER_ADD_DATA > which has a method SAVE_DATA.

2) Implement the User Exit identified through above process.

T.Code SE19 is used to Implement BADI.

SE19 > give the implementation name > Give the Definition name as CUSTOMER_ADD_DATA and the Short Text.

Reward points if useful.

Read only

0 Likes
727

Hi Sravan,

Thanks for ur reply.

I have a BADI definition name. Only thing I want to know if for this BADI, is there any implementation exixts or has been created previously.

Regards,

Jeetu

Read only

Former Member
0 Likes
727

Hi Jeetu,

Use Transactions SE18 and SE19 to find out the Implementations. You create BAdIs using the SE18 transaction. You can perform BAdI implementations using the SE19 transaction.

Regards,

Sai

Read only

0 Likes
727

HI Jeetu,

In that case go the F4 help on BADI Implementation in SE19 you should be able to see the Implemenations if they are there.

Regards,

Sai

Read only

Former Member
0 Likes
728

Go to t-code SE18.

Enter the BADI name.

In the menu bar, select 'Enhancement Implementation' and then select 'Display', you will get a list of implementations of the BADI entered, if there exists one.

Regards,

Swapnil.

Read only

p291102
Active Contributor
0 Likes
727

Hi,

Following report will give u the user exits & BADI's FOR any transaction code.

REPORT YMS_USEREXITBADITEST .

TABLES : TSTC,

TADIR,

MODSAPT,

MODACT,

TRDIR,

TFDIR,

ENLFDIR,

SXS_ATTRT ,

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,

P_PGMNA LIKE TSTC-PGMNA .

DATA WA_TADIR TYPE TADIR.

START-OF-SELECTION.

IF NOT P_TCODE IS INITIAL.

SELECT SINGLE * FROM TSTC WHERE TCODE EQ P_TCODE.

ELSEIF NOT P_PGMNA IS INITIAL.

TSTC-PGMNA = P_PGMNA.

ENDIF.

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 IN ('SMOD', 'SXSD')

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:/(105) SY-ULINE.

FORMAT COLOR COL_HEADING INTENSIFIED ON.

  • SORTING THE INTERNAL TABLE

SORT JTAB BY OBJECT.

DATA : WF_TXT(60) TYPE C,

WF_SMOD TYPE I ,

WF_BADI TYPE I ,

WF_OBJECT2(30) TYPE C.

CLEAR : WF_SMOD, WF_BADI , WF_OBJECT2.

*GET THE TOTAL SMOD.

LOOP AT JTAB INTO WA_TADIR.

AT FIRST.

FORMAT COLOR COL_HEADING INTENSIFIED ON.

WRITE:/1 SY-VLINE,

2 'Enhancement/ Business Add-in',

41 SY-VLINE ,

42 'Description',

105 SY-VLINE.

WRITE:/(105) SY-ULINE.

ENDAT.

CLEAR WF_TXT.

AT NEW OBJECT.

IF WA_TADIR-OBJECT = 'SMOD'.

WF_OBJECT2 = 'Enhancement' .

ELSEIF WA_TADIR-OBJECT = 'SXSD'.

WF_OBJECT2 = ' Business Add-in'.

ENDIF.

FORMAT COLOR COL_GROUP INTENSIFIED ON.

WRITE:/1 SY-VLINE,

2 WF_OBJECT2,

105 SY-VLINE.

ENDAT.

CASE WA_TADIR-OBJECT.

WHEN 'SMOD'.

WF_SMOD = WF_SMOD + 1.

SELECT SINGLE MODTEXT INTO WF_TXT

FROM MODSAPT

WHERE SPRSL = SY-LANGU

AND NAME = WA_TADIR-OBJ_NAME.

FORMAT COLOR COL_NORMAL INTENSIFIED OFF.

WHEN 'SXSD'.

  • FOR BADIS

WF_BADI = WF_BADI + 1 .

SELECT SINGLE TEXT INTO WF_TXT

FROM SXS_ATTRT

WHERE SPRSL = SY-LANGU

AND EXIT_NAME = WA_TADIR-OBJ_NAME.

FORMAT COLOR COL_NORMAL INTENSIFIED ON.

ENDCASE.

WRITE:/1 SY-VLINE,

2 WA_TADIR-OBJ_NAME HOTSPOT ON,

41 SY-VLINE ,

42 WF_TXT,

105 SY-VLINE.

AT END OF OBJECT.

WRITE : /(105) SY-ULINE.

ENDAT.

ENDLOOP.

WRITE:/(105) SY-ULINE.

SKIP.

FORMAT COLOR COL_TOTAL INTENSIFIED ON.

WRITE:/ 'No.of Exits:' , WF_SMOD.

WRITE:/ 'No.of BADis:' , WF_BADI.

ELSE.

FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.

WRITE:/(105) 'No userexits or BADis exist'.

ENDIF.

ELSE.

FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.

WRITE:/(105) 'Transaction does not exist'.

ENDIF.

AT LINE-SELECTION.

DATA : WF_OBJECT TYPE TADIR-OBJECT.

CLEAR WF_OBJECT.

GET CURSOR FIELD FIELD1.

CHECK FIELD1(8) EQ 'WA_TADIR'.

READ TABLE JTAB WITH KEY OBJ_NAME = SY-LISEL+1(20).

MOVE JTAB-OBJECT TO WF_OBJECT.

CASE WF_OBJECT.

WHEN 'SMOD'.

SET PARAMETER ID 'MON' FIELD SY-LISEL+1(10).

CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.

WHEN 'SXSD'.

SET PARAMETER ID 'EXN' FIELD SY-LISEL+1(20).

CALL TRANSACTION 'SE18' AND SKIP FIRST SCREEN.

ENDCASE.

Thanks,

Sankar M