开发基础 报表教程 数据字典 对话编程 表单打印 增强出口 SAP接口 S/4 HANA
实战案例 实战笔记 资料下载 CRM
问答互助 会员分享 俱乐部 广告区
论坛指南、建议和投诉
Twilight发表于 2015-06-22 15:40xwq 最后回复于 2024-08-15 15:04 [复制链接] 15994 28
使用道具 举报
Twilight
管理员
发表回复 回帖后跳转到最后一页
下面我们学习怎么在Enhancement Spot中实现BADI
1、创建一个Enhancement Implementation
为什么需要创建一个Enhancement Implementation容器呢?
双击我们刚才定义的Enhancement Implementation:Y_BADI_CALC_US
创建BadI Implementation:Y_BADI_CALC_VAT_US
3、新建Implementing Class实现类:Y_CL_CAL_VAT_US
输入名称,回车
回车,可以新建类、复制增强点下别的类、继承增强点下别的类,这里我们选择新建
4、实现这个方法
双击:Y_IF_CALC_VAT~GET_VAT
5、SE38执行程序,测试运行
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