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

Kernel and classic BADI

manish_malakar0316
Active Participant
0 Likes
3,395

Hi all,

I have a few questions about kernel and classic badis. Now I have gone through the threads in scn and have also seen many links regarding these two but I still am confused about the following points (I've never worked with kernel badis):

1) For the tcode MM01, the package is MGA. Now, if I go to SE80 and key in the package , I can see the list of classic badis and kernel badis there.

So, how do I know which type of badi will be needed for my requirement (classic or new)? Do I always need to check if any tcode will contain both types of badis ?

2) This method only gives the list of all badis and doesnt give me the order of the badi call (i.e. PBO/PAI). So in case of kernel badis, how do I know when the badis are being called as the CL_EXITHANDLER method will not be used right ?

My thread may seem silly as I havent exacty worked with new badis before, so if someone could clarify my doubts, I will be very greatful.

Regards,

Manish

Hi all,

I have a few questions about kernel and classic badis. Now I have gone through the threads in scn and have also seen many links regarding these two but I still am confused about the following points (I've never worked with kernel badis):

1) For the tcode MM01, the package is MGA. Now, if I go to SE80 and key in the package , I can see the list of classic badis and kernel badis there.

So, how do I know which type of badi will be needed for my requirement (classic or new)? Do I always need to check if any tcode will contain both types of badis ?

2) This method only gives the list of all badis and doesnt give me the order of the badi call (i.e. PBO/PAI). So in case of kernel badis, how do I know when the badis are being called as the CL_EXITHANDLER method will not be used right ?

My thread may seem silly as I havent exacty worked with new badis before, so if someone could clarify my doubts, I will be very greatful.

Regards,

Manish

2 REPLIES 2
Read only

ilachaudhary297
Product and Topic Expert
Product and Topic Expert
0 Likes
2,477

Hi Manish

Kernel BADI are always hooked to a enhancement spot. Hence in your package you can always go and check if there are any enhancement spot and further in those enhancement spot what all Kernel BADIs are present. Below is an eg for Kernel BADI

Below is a package where you can clearly see a classical BADI.

To check the sequence of Kernel BADI you can check through exist handler when the enhancement spot is getting triggered. You can even look for CALL BADI and GET BADI statements of the reference variable of BADI definition.

Thanks

Read only

0 Likes
2,477

Hi Ila,

Thanks for your reply, but I still have some doubts about what you mentioned.

1) I know that kernel badis have an enhancement spot, but in my example of MM01 transaction and package MGA , there are both classic and new badis present. So how do I approach such a scenario?

2) The sequence of both kernel and classic badis have to be obtained using class cl_exithandler ? So I need to put a breakpoint where the statements "get badi" or "call badi" is present ?

3) Do u have any link where a kernel badi has been obtained for a particular transaction? I need screenshots regarding the steps as I didn't find any on the internet.

Regards,

Manish