二维码

[四代] SAP New Enhancement Framework代码增强

Twilight发表于 2014-03-26 22:56ABAP 最后回复于 2015-04-22 21:06 [复制链接] 4707 1

这是一个普通的report,没有任何增强.
  1. *&---------------------------------------------------------------------*
  2. *& Report  ZDAMON_001
  3. *&
  4. *&---------------------------------------------------------------------*
  5. *&
  6. *&
  7. *&---------------------------------------------------------------------*

  8. REPORT  ZDAMON_001.
  9. WRITE: 'hello! code enhancement'.
复制代码
代码插入一个增强点(enhancement-point)
create code enhancement.jpg

enhancement option.jpg
这里我们选择enhancement point  给增强点起个名字
enhancement section在最后提到
enhancement spot 没有就新建一个

插入之后的代码:
enhancement point.jpg
双击enhancement point 可以看到增强点

以上只是设置了一个enhancement point, 没有去实现它,这时执行程序输出的内容和插入enhancement point 之前没有变化.
实际项目中我们要做的事情是: 实现(implementation) SAP 预留给我们的enhancement point.具体操作如下:
1.切换到增强状态点
切换到增强状态.jpg
点完后原有的代码不能编辑,如图中的XXXXXX,只能对代码进行增强相关的操作.

2.实现Enhancement point
实现Enhancement point.jpg

create enhancement implement.jpg
增强之后的代码:
WRITE enhancement code.jpg

display enhancement.jpg
运行结果:
Code enhancement effect.jpg
对于ENHANCEMENT-SECTION, 定义和实现的方法与ENHANCEMENT-POINT 一样.
两者的区别是:
ENHANCEMENT-POINT 没有代码,只有一个预留点.
允许在这个位置插入新代码(implementation).
ENHANCEMENT-SECTION 和 END-ENHANCEMENT-SECTION.之间有代码, implementation 之后,替换旧代码,只执行新代码,原来的代码不再执行.

完整的语法格式:
Syntax
ENHANCEMENT-POINT enh_id SPOTS spot1 spot2 ...
[STATIC]
[INCLUDE BOUND].
Extras:
1. ... STATIC
2. ... INCLUDE BOUND

ENHANCEMENT-SECTION
Syntax

ENHANCEMENT-SECTION enh_id SPOTS spot1 spot2 ...
[STATIC]
[INCLUDE BOUND].
...
END-ENHANCEMENT-SECTION.
Extras:
1. ... STATIC
2. ... INCLUDE BOUND



回复

使用道具 举报

ABAP
写的很清楚很完整 !
回复 支持 反对

使用道具 举报

快速回帖

本版积分规则
您需要登录后才可以回帖 登录 | 注册有礼

快速回复 返回顶部 返回列表