反驳需不需要资格?需要,但是你江正军又不是SAP的作者,也是个用户而已。
17.4 增强这部分
SAP的PA教材,从来没有出现过汉语:第X代增强的字眼,或者 fourth generation enhancement 的字眼。有图有:
但是,but啊,explicit enhancement 和 classic BADI没有这种关系啊。或者说,从视觉上看,explicit enhancement虽然和new BADI一样基于enhancement spot但是,explicit enhancement和classic BADI没有任何相似之处啊。从前端的操作,到代码表现形式根本没有任何联系,是根本,记住,根本没有联系。
explicit enhancement根本就不是用SE19来创建的,你的明白?
为什么?你非要说经验,我跟你说道理。
因为SAP官方很明确的表示:enhancement framework的最主要的编程工具,根本就是集成在 abap workbench中的。英文的原文是这么说的:The Enhancement Builder is a tool for creating and managing enhancements which is fully integrated into the ABAP Workbench. You CANNOT use a transaction code to call it directly.
explicit enhancement 是的创建工具完完全全集成在SE80中,你需要点击enhancement按钮去创建,鼠标右键等操作。只是你创建完了以后,可以用SE19作为入口进去看看而已。
classic BADI是则用SE19创建的。
这是表面,再看看实质。
explicit enhancement的增强发生在标准源代码中的任何存在enhancement point的位置,换句话说,只要被增强的程序提供了足够多的enhancement point,你愿意加多少增强代码,都可以。
而且你的增强代码和标准源代码都是拼接在一起的。
但是classic BADI甚至new BADI的增强代码,存在于你的BADI implementation类所实现的interface对应的method中,你的代码,存在于且仅仅存在于method中。没有融为一体。
看到了吧,BADI的implementation代码真的看上去很像JAVA实现类的样子,写在方法中。
explicit enhancement的implementation的代码看上去就是在改别人的代码,和interface根本没有关系。
综上所述,explicit enhancement和classic BADI根本就是没有任何继承关系的完全不同的两类技术。
Enhancement Spot也不是enhancement的管理平台,它是new BADI和explicit enhancement的容器。
不存在所谓的Enhancement-point技术,不存在,这是你自己创造概念。enhancement point表示位置,是enhancement spot这个容器中的具体的【增强点】换句话说,表示具体的位置。
"ENHANCEMENT-POINT是在程序中直接插入代码,其概念与BADI的USER_EXIT类似"
这句话真的是漏洞百出,前面不再赘述.explicit enhancement技术怎么可能和BADI或者USER EXIT有任何相似之处呢?眼瞎吗?user exit是modification这个我们已经纠正过了。从表面到内涵没有任何相似之处。
我真不知道,随着知识的修正,为什么不去修改自己博客呢?不觉得丢人么?