SAP里标准拼法是BAdI,区分大小写。太麻烦,文章里全用大写。
BADI技术的底层是接口,类等面向对象开发的内容。
Classic BADI是一个BADI包了一个接口。实现它的话,需要一个接口的实现类和BADI的实现名称。比较简单清晰。
Enhancement Spot是将多个BADI放到一起的技术,主要是看BADI列表清晰和每个BADI有哪些Implementation方便。实现它的话,需要一个Enhancement Implementation ,BADI Implementation ,接口实现 。实现的话,需要先指定Enhancement Spot,再选择具体的BADI。
如上面的"1"可以包含很多个"2"。系统里大部分只包含了1个,而且1和2的名字一致,让人混淆。每一个2包含一个3,跟Classic BADI一样。
SE19实现:
很多常用的BADI都是Classic BADI,然后被包到了Enhancement Spot里。 这种情况下,Classic BADI可以继续单独实现,但是会让创建Enhancement Spot实现需要的那些东西,最终比较混乱。所以应该直接实现Enhancement Spot。