第三代增强BADI-增强点(新Badi)多个实施

第三代增强BADI-增强点(新Badi)多个实施

创建增强点

在这里插入图片描述

BADI的实现

由于一个BADI的实现可以有多个类,这些多个实现类需要组织(打包、捆绑)在一起(与多个BADI放在一个Enhancement Spot容器中是一个概念),所以需要创建一个新的BADI增强实现容器ZIM_BADI_DEM001:
在这里插入图片描述

多个BADI/ Enhancement实现时究竟调谁

在同一Enhancement Implementation中(如下图中的ZIM_BADI_DEM001),不同的BADI Implementations(ZIM_BADI_DEM001、ZIM_BADI_DEM002)之间究竟选谁的问题,是由 缺省实施(Default Implementation)、活动实施(Implementation is active)选项共同来决定的,且在同一时间内只能有一个BADI Implementations能被激活调用,所以要通过这两个选项来控制究竟谁被用来当作当前实现被使用,是否被使用也可通过图中的 “运行时行为”说明文字来查看:
在这里插入图片描述

过滤器

在这里插入图片描述

回调类

如果某个BADI没有实现时,则在调用时会Dump,为了在没有实现时,需实现一个默认的回调类。如SAP系统提示的标准BADI都会有默认实现,同时也是simple例子。

在这里插入图片描述


METHOD zif_badi_demo01~write.
  MESSAGE 'FALLBACK' TYPE 'I'.
ENDMETHOD.

在这里插入图片描述

测试程序

使用SE38创建程序,点击“创建”按钮:
在这里插入图片描述

REPORT  zbadi_test.

START-OF-SELECTION.
  DATA lo TYPE REF TO zbadi_demo01. "定义BADI
  GET BADI lo
    FILTERS
      filter1 = 'A'.  "通过GET BADI得到我的实现类,如果过滤条件不成立的话将什么都不执行;
  CALL BADI lo->write.  "调用BADI
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值