After seeing a Lot of questions on Identifying BADI. Here I would like to give a simple and easy method to Identify a BADI.
Many people was not aware of Object Oriented Programming as they wish to succeed in Procedural programming only.
So they don't event prefer to search a BADI using commonly know method CL_EXITHANDLER and GET_INSTANCE.
There is one more way to identify the BADIs in a simple way
Using the Function Module SXV_GET_CLIF_BY_NAME.
How to use this Function Module to Identify a BADI for a Transaction.
Step 1. Go to SE37 and display the Function Module SXV_GET_CLIF_BY_NAME.
Step 2. Put a break point at the ENDFUNCTION of the Above mentioned Function Module.
Step 3. Run the Transaction for which you want to search a BADI.
Note: For every operation the Code Breaks and Function Module return some values in its Parameters.
In the Parameter CLIF and NAME. you will get the BADI or Exit name.
Now the question is how to identify whether it is a BADI or Exit. Answer is, Parameter PREFIX of the Function Module.
If this is CL_EX then it is a BADI else it is a Exit. Example is shown in the below Screen shot. A BADI for Transaction FPP2 when you click on SAVE.
Hope this document helps Other people who dont know this method of finding a BADI.
V S BHARGAV.