此博客为原创博客,都是个人工作经历所得,转载请注明出处

20170329 隐士增强问题

一、增强:Enhancement implementation 与 Composite Enhancement implementation 的区别

(1)Enhancement implementation 

1, 这玩意是不是能在任何标准程序上加enhancement?这样岂不是以后不需要user exti (cmod/smod)了?
2, enhancement并非真正嵌入标准程序中, 只是在SE80里显示在一起而已, 实际上enhancement存在一个集中的库里? 
是这样么? 这样的话, 每个标准程序(以及开发程序)执行时都要去这个enhancemen库里找找自己有没有被enhanced?
3, 定点enhancement是不是SAP标准的?自己不能加的?与implicit enhancement区别在哪儿? 各自适用场景是什么?
4, Enhancement的操作真很复杂很奇妙,没人指导下或者没教材,很难摸清创建步骤。删除和修改的操作更够让人奇怪……

答:

Source Code Enhancement 毕竟不是 SAP 特意/蓄意留给客户的出口,没有稳定的接口。所以虽然升级不会覆盖它,但是有可能由于上下文标准代码的改变造成原有 Source Code Enhancement 与标准代码冲突或者无法实现原有的功能。所以还是优先考虑传统的 user-exit。
不知道自己理解的对不对。
源:http://www.itpub.net/thread-1392418-1-1.html
SAP标准程序->Enhance->SAP标准程序
也就是说标准系统预留了接口给你,你只要找到接口,实现处理就好了

 

 

 

顾问解释:一般只需创建一个隐士增强点,下面一个是不用填的,

填下面表示是复合增强,同一个增强可以在不同地方有作用,且需要已存在的 。

 

Can someone explain me the difference between the two? 

explain 1.

Basically it is not necessary to create a composite enhancement implementation since you can do with the actual
enhancement implementation itself.
But, for example,
 in a more complex project in which you have to implement several enhancements at the same time,
当在一个更加复杂的项目,你需要一次实施多个隐士增强,
you can structure these enhancements in a better way by using the Composite enhancement implementation.

This is a higher abstraction level for structuring your developments.
Similar to (in a way) to Packages (main- and subpackage(s)). I recommend you to read the blogs from Thomas Weiss on the enhancement framework.
Start [Enhancement Framework|
http://wiki.sdn.sap.com/wiki/display/ABAP/ThenewEnhancementFrameworkandthenewkernel-basedBAdI#ThenewEnhancementFrameworkandthenewkernel-basedBAdI-technology]

-》在一个更复杂的项目中,您必须同时实施多项增强功能,就要用到复合隐士增强。

explain 2,

An "Enhancement Implementation" can only contain one type of "Enhancement Implementation Element" 
(for example, only Interface Enhancements, or Enhancement Point/Sections).
Therefore, for a project where you must implement enhancements to both an Enhancement Point,
and a Function Module Interface, you cannot group them in the same Enhancement Implementation.
Instead, you must create two separate Enhancement Implementations, and in turn group those in a
"Composite Enhancement Implementaion".

-》一个 "Enhancement Implementation"一种隐士增强元素,
当你需要对增强点实施增强功能 和 功能模块接口,您必须创建两个单独的增强实现,然后将它们分组在一个“综合强化实施”

 

eg.

创建composite enhancement implementation , 
新建一个composite enhancement implementation,他可以用来收集一般的enhancement implementation,
源:http://gdxnskhy.blog.163.com/blog/static/6652021920124344446342/

->composite Enhancement implementation 可以用来收集一般的enhancement implementation.
这样composite xxx就成了一个隐士增强集合。

 

得:
当需要一次实施多个隐士增强,且需要同一个增强可以在不同地方有作用,更好的方式是使用 综合隐士增强点。

 

 

 

posted @ 2017-03-29 15:19  Rainystuday  阅读(732)  评论(0编辑  收藏  举报