二维码

[三代] Enhancement Spot中BADI的实现

Twilight发表于 2015-06-22 15:40jiapengsan 最后回复于 2020-11-02 07:49 [复制链接] 11974 27

在上一篇帖子中,我们学习了定义一个BADI,提供回调类,实例化一个BADI,以及去调用一个BADI方法:创建一个没有实施的BADI,程序中简单调用

下面我们学习怎么在Enhancement Spot中实现BADI

1、创建一个Enhancement Implementation
BADI implement 1.jpg
为什么需要创建一个Enhancement Implementation容器呢?
游客,如果您要查看本帖隐藏内容请回复
2、新建一个BadI Implementation
BADI implement 2.jpg
双击我们刚才定义的Enhancement Implementation:Y_BADI_CALC_US
BADI implement 3.jpg
创建BadI Implementation:Y_BADI_CALC_VAT_US

3、新建Implementing Class实现类:Y_CL_CAL_VAT_US BADI implement 4.jpg
输入名称,回车
BADI implement 5.jpg
回车,可以新建类、复制增强点下别的类、继承增强点下别的类,这里我们选择新建

4、实现这个方法
BADI implement 6.jpg
双击:Y_IF_CALC_VAT~GET_VAT
  1.   METHOD y_if_calc_vat~get_vat.
  2.     DATA: percent TYPE p VALUE 4 .
  3.     ex_amount_vat = im_amount * percent / 100 .
  4.     ex_percent_vat = percent .
  5.   ENDMETHOD.
复制代码

5、SE38执行程序,测试运行
BADI implement 7.jpg

PS:我们可以新建下一个BadI Implementation(如:Y_CL_CALC_VAT_GB),但是当运行程序时,系统会dump,这是因为我们定义BADI时,是采用了默认的单一使用(single-use),没有选中复合使用选项(Multiple Use Option),单一使用的限制是只能有一个实现类。

这里是自定义的新BADI然后实施,我们项目中往往都是实施系统标准的新BADI,这种BADI都有很多Method,而实际中我们只用其中的一部分。我们在激活BADI时没问题但是代码检查时就会有报错,提示额外的Method没有创建,我们都创建一个空的即可。

我们在一个BADI下实施多个增强激活时报错,请参考:BADI中Filter Dependent和Multiple Use
回复

使用道具 举报

ratg0626
学习中,谢谢分享
回复 支持 反对

使用道具 举报

teyun2222
感謝分享,學習了,謝謝!!
回复 支持 反对

使用道具 举报

teyun2222
感謝分享,學習了,謝謝!!
回复 支持 反对

使用道具 举报

Zeddicus
正在学习, 谢谢分享
回复 支持 反对

使用道具 举报

qshiou
学习学习,楼主棒棒哒
回复 支持 反对

使用道具 举报

mckz8888
感谢分享 谢谢  
回复 支持 反对

使用道具 举报

晓月之影
谢谢楼主分享
回复 支持 反对

使用道具 举报

Jacky
学习中,谢谢分享
回复 支持 反对

使用道具 举报

资明
很好很想看看       
回复 支持 反对

使用道具 举报

uniqueanswer
学习中,谢谢分享
回复 支持 反对

使用道具 举报

scofield1106
hello world!!!!
回复 支持 反对

使用道具 举报

slayer

感謝分享,學習了,謝謝!!
回复

使用道具 举报

TaKeThat
学习中,谢谢分享
回复

使用道具 举报

494939637

RE: Enhancement Spot中BADI的实现

学习一下  谢谢分享
回复 支持 反对

使用道具 举报

heqin
谢楼主分享的内容
回复

使用道具 举报

64789491
学习一下。。。。。
回复

使用道具 举报

wangfancool

RE: Enhancement Spot中BADI的实现

谢谢!!!
回复

使用道具 举报

ABAP-雄

RE: Enhancement Spot中BADI的实现

学习学习。。。
回复

使用道具 举报

conanlei

RE: Enhancement Spot中BADI的实现

为什么要容器呢
回复

使用道具 举报

12下一页

快速回帖

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

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