02-02-2013 7:49 PM
Hi,
Which of the enhancements techniques should I look first? Is this?
1- Kernel BAdI
2- Classic BAdI
3- Customer Exits
4- Explicit Enhancement
5- Implicit Enhancement
What would be the correct priority order to verify that's available?
Could you please provide the links from where you got the information?
Thank you!
02-03-2013 8:51 AM
Hello,
1. Customer Exit,
2. Classic BAdI
3. Kernel BAdI
4. Implicit Enhancement
5. Explicit Enhancement
Thanks,
Abhijit
02-03-2013 10:30 AM
Hi Leandro,
The order you specified is correct except one thing. I am not sure what you understand by explicit enhancement. Explicit enhancement is a generic term used to cover all types of 'explicit' enhancements. This may include enhancement spots, enhancement sections, BAdIs. They are called explicit because their position in the standard code is defined explicitly. On the other hand, we have implicit enhancements whose position is implicit i.e. at the beginning and end of programs.
With that understanding, explicit enhancement would be the preferred choice over implicit enhancement.
02-04-2013 10:20 AM
Hi Kumar. I know what explicit enhancement is. Sorry for not being clear.
When I said explicit enhancement I was referring to enhancements points and enhancements sections.
So, if you had to choose between "enhancements points and enhancements sections" vs BAdI, which would you choose? With BAdI you can have different implementations specifying filters. Can this also be done with enh. points and sections? Maybe you can use conditions in the enh. points/sections to mimic filters, but would be an uglier solution, because you would have all implementations in the same place.
02-04-2013 1:32 PM
First of all, I believe it would rarely happen that you have a BAdI as well as an enhancement point/section to accomplish the same thing. Having said that, if you do run into a situation where you have to choose between the two, then yes, BAdI would offer you the advantage of having filters but that is subject to the BAdI definition. It has to be a filter-based BAdI for you to be able to exploit that advantage.
Like multiple-use BAdIs, enhancement points can have multiple active implementations in which case all of them would be executed (in no particular order). On the other hand, an enhancement section can have only one active implementation at a given point in time.
Further, as you would probably know, the uniqueness of enhancement section is that it allows you to replace a section of standard code with your own code. This is slightly different from other enhancement techniques which basically let you attach additional logic to standard logic.
02-04-2013 2:16 PM
Thanks a lot Kumar. Amazing answer as always. They moved my thread to this forum, but now it's no longer marked as a question, so I cannot mark your reply as the correct answer ... 😕
If it was marked as a question, it should continue as a question when moved ... bug??
02-04-2013 2:20 PM
02-04-2013 2:56 PM
If it was marked as a question, it should continue as a question when moved ... bug??
Yes, it should.
Some Moderator might have "un-marked" your discussion as a question - due to genericness of it (may be). Anyway if you think this is not correct, you can hit the abuse button
Cheers,
Suhas
05-29-2013 4:00 AM
Hi Kumar,
I'm trying to understand why has SAP released the explicit enhancement options to the customers and did not keep these for internal use only? Is it only for the purpose of:
If there's no SAP defined explicit enhancement options found in a standard program then usually the developers enhance this using implicit enhancement option (as source code plug-in) at start or end of the form or function module etc.
Do you see any value to wrap an implicit enhancement into a custom enhancement spot (which then hooks itself to a custom explicit enhancement) i.e. by enclosing the implicit custom code within syntax Enhancement-Point enh_id SPOTS spot 1 spot 2 so that it could be Switchable when required and/or an OO approach to enhancement can be realised for example when using a Multiple use implementation for a new BAdI ... what do you think?
Sougata.