Technical Articles
Inconsistent BADI Behavior after deleting its implementation
Introduction
One of the most commonly used enhancement techniques to encapsulate customer specific business requirement in SAP standard applications is Business Add-ins, but you will often see inconsistencies reported while renaming or deleting BADI implementations which are already in use.
The intent of this blog is to share a similar experience that we encountered while working on one of the custom requirements where we had to delete and recreate the BADI implementation.
Most of our developer community would be familiar with BADIs, but for those who are new to Business Add-ins can refer below SAP help to know more about them, before understanding the BADI’s inconsistencies that you can come across while working on projects.
Classical BADI
https://help.sap.com/saphelp_nw70ehp3/helpdata/en/ee/a1d548892b11d295d60000e82de14a/frameset.htm
New BADI
https://help.sap.com/saphelp_nw70ehp3/helpdata/en/8f/f2e540f8648431e10000000a1550b0/frameset.htm
Details with solution implemented
We had to delete and recreate a BADI implementation as certain client specific naming conventions and changes were requested, however after a successful deletion of a BADI implementation, its imported artefacts still existed in the system.
Due to this, the BADI implementation that was deleted was still referred to by a GET BADI call.
The newly created implementation was not called, even though the previous implementation was deleted.
This was caused because during the processing of BADI deletion, the run time tables were not treated correctly.
If any such symptom is observed in any landscape, then you can resolve this issue using any of the below approaches based on your need to regulate single or mass inconsistent entries.
For Single BADI generation
Execute the single BAdI using check report “BADI_RSANALYZE” with the given BAdI name and press the Activation icon at the end of the output to regenerate the BAdI and all its implementations
For Mass BADI generation
To detect and repair all inconsistent BADIs in your system, execute the included mass check report ENHS_BADI_ANALYZE_GENERATE_ALL.
To Conclude,
Many SAP notes are already available at the service market place to correct and regenerate BADI inconsistencies, so this blog was a contribution to share awareness and a similar experience that was encountered recently.
Also refer to the important notes below that can be helpful for application developers to handle similar issues while supporting various custom specific implementations using Business Add-ins.
Refer below SAP Note/KBA tile for any BADI inconsistencies.
1521903 Regenerate all inconsistent Badin’s
1561168 ENHS_BADI_ANALYZE_GENERATE_ALL does not find all errors
1589159 Dump: ASSERTION_FAILED in CL_BADI_DT_READER
1548839 Transport of Enhancement Spots cause Badi impl.
I have been following your blogs from sometime now and I must say your blogs are to the point and very detailed.
Please keep sharing. Thanks!
Thanks for sharing!
Just FYI SAP Service Marketplace is now defunct. SAP Notes are accessible through SAP Support Portal or Support One Launchpad.
Hi Jelena,
Thanks for correcting, bad habit to refer to the outdated terms, but you are right, i meant SAP support portal, will also update it in the blog.
Well, at least you wrote "SAP Notes" and not "OSS Notes", so it's not to bad. 🙂
Thanks for the information and the references. I notice that the notes 1521903 and 1548839 refer explicitly to "kernel BAdIs" only (aka the "New BAdIs"), so I guess the "classic BAdIs" are not concerned.
If people are interested by the reading of mentioned notes, here are the direct links:
Thanks Sandra, you are absolutely right, This is more relevant for new BADI's,
The references are more for Newbies who have not worked on BADI's and want to know more about it and understand the differences.