Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
Showing results for 
Search instead for 
Did you mean: 

difference between badis in 4.7 and ECC 6.0

Former Member
0 Kudos

Hi ,

What are the additional things we can do in ECC6.0 for BAdi in comparision with 4.7 .

Thanks .


Former Member
0 Kudos

Hi Santhosh ,

The u2018BADI-su2019 (Business Add-Ins), as they exist in pre NW04s releases are now called old classic-BADIu2019s (release 4.6 ). This was the first object-oriented way to enhance the ABAP system. This, to a certain extent, allows multiple implementations with limited filter support. The classic-BADIu2019s are implemented using ABAP Objects.

With the introduction of Enhancement framework from E.C.C 6.0 a new BADI concept in additional to the old classical BADIs has evolved called as Kernel-BADI enhancement.

The old classic-BADIu2019s are implemented purely at the ABAP Workbench level; that is, both the definition and implementation are realized as workbench repository objects (global classes and interfaces).

The new Kernel-BADI takes it to the ABAP language level. Because of this, the new Kernel-BADIu2019s are much faster compared to the old classic-BADIu2019s.

There are two new ABAP statements available now to support the Kernel-BADIu2019s, namely GET BADI and CALL BADI.


data bd_hdl type ref to badi_name.

GET BADI bd_hdl filters filt_1 = u2018VALUEu2019.

CALL BADI bd_hdl->method

exporting param_1 = 10.

The old classic-BADI used to mix both implementation selection and method call in the same CALL METHOD statement. The implementations could only be chosen at run-time because of the above reason and due to the fact that the BADI handle could only be gotten from another method call by passing the BADI name.

Whereas in the new Kernel-BADI, the active BADI implementations are included into the load of BADI handle at compile time and the filter criterion are expanded as IF statements. This is the reason the new Kernel-BADIu2019s are much faster than classic-BADIu2019s.

Some of the other new features of Kernel-BADIu2019s are,

u2022 Improved Filters with complex filter condition editor

u2022 Stateful BADI support and Context based lifetime control

u2022 Possibility to inherit the implementations

u2022 Switchable using Switch Framework 9

Hope its useful.

Reward points if useful.

Thanks ,

Surya Pydikondala