cancel
Showing results for 
Search instead for 
Did you mean: 

BADI Concept

Former Member
0 Kudos

Hi,

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?

Regards,

Aditya.

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

Guys,

Thank you.

former_member181995
Active Contributor
0 Kudos

I feel this is enough for you

nelson_raj2
Active Participant
0 Kudos

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,

Nelson.