我手中有一份2000年发布的PA教材名为BC425,针对R3系统。可是我们目前用的是hana,哇整整跨越了一个ECC哦。
这份教材的学名,我必须完整的copy一下:
《BC425 Enhancements and Modifications》
我们这些中国人啊,用汉字翻译了英语,我们很草率的把SAP的开发人员,也就是abap开发人员,对于SAP原有标准程序的修改,草率的称为【增强】。但是,母语为汉语的朋友们,事实不是这样的。
PA教材写的很清楚:enhancements and modifications 看了吧
enhancement翻译成增强的话,modification肯定不能翻译成增强了,怎么着也得翻译成 修订 或者 【源码修改】吧?
不管了,我们针对这部分看看BC425的内容
SAP系统的修改(change)有不同的层次的修改(different kinds of change levels)修改大体上分为增强和Modification。
后者,也就是modification这类修改,在SAP系统中,分为创建和调整(make and adjust)。换句话说,作为SAP开发的你,你既可以创建modification 也可以调整modification。
何谓modification?这个modification究竟是什么身份什么地位呢?直接看图
我们作为个开发,如何看待enhancement 和modification这对兄弟呢?There are several ways of enhancing your software without having to actually modify your system's standard.
能增强,就不要modify。
Customizing
IMPlementation guide嘛 SPRO配置
Personalization
提供默认值,或者屏蔽某个字段
Modifications
changes to SAP Repository objects 意思就是改SAP的源码。从4.6开始我们拥有了Modification Assistant工具。
Enhancements
汉语世界的:增强
Customer Developments
写报表写FM写面向对象,反正就是你自己写的代码。
上述的各个概念,在ASAP的过程中(也就是实施SAP项目的过程中)Customizing和Personalization这两个都完成了。我理解就是配置过程。乙方业务顾问使用SPRO去配置。
然后,在SAP的 ABAP Workbench中用编码的方式去完成customer developments / enhancements / modifications这三部分工作。也就是编码的工作。乙方和甲方开发顾问,使用SE80等事务码去:写很水的报表,做增强,修改SAP源代码。
看到了吧,清晰而且把各种编码过程的身份地位交代的明明白白。
Modification这种写代码的方式,可能会带来问题。跨版本升级的时候,比如R3升级到ECC的时候,你在老系统中做过的modification,必须原封不动一字不改的在新系统中再写一遍一毛一样的。从4.6开始,这个过程通过Modification Assistant来完成。
我们继续看看BC425中的Modification的内容,跳到200页,因为前面的内容讲的都是增强的技术,这些内容我们之前都看过了,比如:customer exit / BTE / BADIs等。
200页开始,告诉我们SAP啊,有多个环境,生产环境、测试环境之类的。我理解就是不同的system,DEV QAS PRD之类的。
An object is original in only one system.Changes to an original are called corrections.
If you change a copy,the change is recorded in a task with the type REPAIR. Repairs to SAP objects are called modifications.
Modification可能带来什么问题呢?何时带来问题呢?
当你升级系统的时候:upgrade your system,apply a support package,import a transport request,conflicts can occur with modified objects
冲突发生在这种情况:当你修改了一个SAP的标准object,然后你又导入了一个新版本的这个标准object。这时候就有冲突了。
在这种情况下,如果你想正常升级,你必须对这个SAP标准object进行modification adjustment。所以你,如果你恰好改过很多SAP标准object那么当你进行SAP系统升级的时候,你的升级进度可以预见,就会很慢。
下面介绍Modification Assistant
Modification Assistant的出现的目的就是让modification adjustment的过程简单点,“说话的方式简单点”。过去,是吧,modification的视觉形式就是include program level。现在呢,a finer granularity is available。modification可以体现为subroutine or module level.
Modification Assistant的工具?好吧,是说被Modification Assistant所支持的工具们。
说了这么多,其实我也知道很抽象,没有图也没有代码。
先看看,假如你能在毫无modification的代码上添加modification的话,你在代码上能看到什么图标呢?
如下图
那我在哪里可以看到上述这些图标呢?以MB52为例,使用SE80看这个事务码对应的程序,用下面这个图标看modification的历史
其实上述这个modification overview按钮还是比较low的
真正牛的是使用事务码SE95