Skip to Content
avatar image
Former Member

BADI Concept


Can anyone explain the technical overview of BADI's.

For Example: Let's say I am adding new custom fields using EEWB and if I wish to make any changes to data related to these customer fields, I can Map these fields in Badi's:

CRM_CUSTOMER_H_BADI : For order Header Data.

CRM_CUSTOMER_I_BADI : For order item Data.

How do I do this? How is the mapping done?



Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

3 Answers

  • Sep 20, 2008 at 08:47 AM

    I feel this is enough for you 😊

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Sep 20, 2008 at 08:40 AM

    Hi Aditya,

    In simple terms, BADI or BusinessAddIn is nothing but a placeholder within the standard execution flow of an SAP program, provided by SAP for the customer to insert his own enhancements in order to meet his business requirements.

    Going by your own example, there are certain additional fields that you would like to add in the Header and Item levels of the customer during the execution of say, ORDER_CREATE program.

    Now, ORDER_CREATE is a standrad program utilized across your organization by several functions to create orders and hence it is difficult to alter the program based on just your requirement to create a say, ZORDER_CREATE. Also, even if you are able to alter it, this standrad program follows a certain structure and execution that is well tested by SAP to withstand scale of operations and regression, and hence you would not want to modify this vastly. So what is the best way to fulfil your requirements and still adhering to SAP's standards - A BADI Implementation!!

    The BADIs provided by SAP are nothing but events - After Order Save, During Product Entry, Before Catalog Replication and so on. These events are the times when certain standard programs are invoked. When these programs are invoked there is an option to invoke certain methods. These methods may contain structures or fields that can be populated with data. This entire structure is nothing but a BADI. So, when you implement a BADI, you have the option to populate these fields and execute these methods as per your requirement. Hence, what methods and fields were otherwise empty and were being skipped, now have actual code that can be executed without altering the structure or flow of the standard program.

    So, in summary if a program A, follows the execution path B, then C, then D and finally to give the output, E, where B&D could be function modules, reports, programs etc., you have C, which is otherwise being executed simply, without any input and hence without any output. C is your BADI. You can chip in with your code over there, and execute from A to E as SAP intended, thereby adhering to standards and fulfilling your requirement as well.

    The only challenge here is you must be able to satisy your requirement by sticking to two things:

    1. The event must coincide with your requirement, and further

    2. The available fields in the "Interface" must be as per your requirements.

    I hope this helps.

    Thanks & Regards,


    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Sep 20, 2008 at 04:28 PM


    Thank you.

    Add comment
    10|10000 characters needed characters exceeded