Skip to Content

Hi All,

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



To report this post you need to login first.


You must be Logged on to comment or reply to a post.

  1. Sijin Chandran

    Hello Venkat ,

    Very thanks for this useful document.

    Till now I was aware of CL_EXITHANDLER ( setting Breakpoint ) technique only.

    This will definitely be an added advantage for sure.

      1. Kesavadas Thekkillath

        Hi Venkat,

        Though this is a known way to find the badi, some of them will not be aware of it as said above.

        It would be nice if the word “Identify” is changed to “Find” in the subject line so that the search function will hit this document easily 😉

      1. Former Member

        What are the six methods. can u just name them.

        I guess most of us know only one method i.e

        By using the clas CL_EXITHANDLER and putting break-point in it.

  2. Former Member

    Hi  Venkat,

    I have implemented enhancement for customer additional fields, refering your explanation given above;  very useful information.


  3. Former Member

    Nice document… 🙂
    I hope beginners will go through this , its the easiest way to find a BADI..
    I think this FM is called inside that cl_exithandler get instance or get class by interface… right ?

  4. Former Member


    Apparently when i tried for ME22N, If we do it class exithandler & instance way, it will give you BAdI “ME_PROCESS_PO_CUST” but through this method, it returns “ME_PROCESS_PO”. While creating implementation for “ME_PROCESS_PO” in SE19, it gives an error “BAdI definition ME_PROCESS_PO is only provided for internal SAP.”. Do we have to do anything additional to this to get “ME_PROCESS_PO_CUST“?

    If i could know how to get the exact BAdI here, this truly is a time saving and very helpful way.



  5. Former Member

    Hi Bhargav,

    Good one. Not sure why this method to find a BADI is relatively unknown and the CL_EXITHANDLER method of finding a BADI is world renowned . Can you let us know the other methods also ?



    1. V S BHARGAV MYLAVARAPU Post author

      Hi Shankar,

      there are 6 methods that I know.



      3. SPRO

      4. SE18 F4  with Package

      5. SE18 F4 with Application Component

      6. Funky way, search with short description on SE18

      Please rate the document, this encourages to post more like this.

  6. Satish Kumar Balasubramanian

    Thanks Bhargav really useful document. 🙂

    Have you created any document on how to find BADI using the six steps below,



    3. SPRO

    4. SE18 F4  with Package

    5. SE18 F4 with Application Component

    6. Funky way, search with short description on SE18.

    Please let me know.




Leave a Reply