Skip to Content
Nov 22, 2012 at 05:15 AM

Confusion in classic and kernel badis


Hi Experts , I have checked in

above link explains difference between classic and new badi.

but there are a lot of confusions.

Point 1 :

With classic BAdIs, a BAdI object is created by calling a factory method, and referenced via a reference variable of the type of the BAdI interface.

With new BAdIs, a BAdI object is created via the ABAP statement GET BADIas a handle for the calls of BAdI methods, referenced via a reference variable of the type of the BAdI.

A BAdI object is an instance of an internal BAdI class, which otherwise is invisible to the outside.

What is the point as both badis are refrenced by refrence varable of badi? please explain.

` Point 2 :

a. With the classical BAdIs, the filter values are stored in a structure and passed with the call of the BAdI methods.

b. With the new BAdIs, the comparison values for the filters used to search for implementations are passed when the BAdI object is created with the GET BADI statement.

There is no way of migrating the call of the factory method one-to-one into the ABAP statement, because GET BADI can also return an existing BAdI object, which is not possible with the factory method.

Can any 1 Explain this with a simple example.

Point 3 :

. A classic BAdI can be called only once and the call positions are registered centrally.

With new BAdIs, multiple calls are possible and the call positions are not registered centrally.

For the above reasons, an automatic call migration is not possible.

What is the meaning of registered cenrallly?

Please help experts...



Message was edited by: Suhas Saha