ABAP How to find BADI (Business Add-In)

  BADI/User-Exit

OverView

Originally, SAP has realized the extension of standard functions by implementing an include program called user EXIT, but BADI (Business Add-In) is provided as a new extension technology to replace it. It is said that this will not provide a new user exit in the future.
In addition, since BADI is classified as a class, it is difficult to use only predefined arguments and return values.

How to find BADI

1. Display class: CL_EXITHANDLER with transaction code: SE24
2. Method: Select GET_INSTANCE and display the program source
3. Specify breakpoints below
“CALL METHOD CL_EXITHANDLER => GET_CLASS_NAME_BY_INTERFACE” around line 14
4. Execute the transaction you want to check in another session

4. Return value of the above method: The value returned in EXIT_NAME corresponds to the BADI definition name used.
* A common BADI is also executed, so please pass it if it does not seem to be related.

For example, if you execute Display → Save in the item master change (transaction code: MM02), you can see that the following BADI is being executed.
BADI_MATERIAL_OD
GOS_SRV_SELECT
BADI_LAYER
BADI_MATERIAL_OD
ECM_EXIT
BADI_GTIN_VARIANT
BADI_MATERIAL_CHECK
BADI_SCREEN_LOGIC_RT
W_RETAILSYSTEM_IDENT
BADI_MATN1

Since it can be inferred that BADI_MATERIAL_OD, BADI_MATERIAL_CHECK, BADI_MATN1 are likely to be related to items in these,
It is sufficient to check if there is a method that can fulfill the requirements.
Also, BADI definition can be confirmed with transaction code: SE18, and if you want to implement BADI, you can extend the BADI definition by inheriting the BADI definition with transaction code: SE19.
Also, if the class name is known by the change after implementation, it is also possible to change directly from transaction code: SE24.

Related transaction code summary

SE24: Class / Interface
SE18: Business add-in (definition)
SE19: Business add-in (implementation)