SAP BADI的实现3-使用BADI过滤器

本文介绍如何在ABAP环境中通过配置BADI过滤器来实现在不同BADI实现间的切换。具体步骤包括创建过滤器组合、设置过滤条件,并通过示例程序展示如何根据过滤器值选择合适的BADI实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在上一篇最后引出的问题中,我们需要有一种方法来在不同的BADI实现中切换,这就引出了BADI过滤器的概念。我们可以为一个BADI定义多个过滤器。在本例中,我们只需要一个过滤器。

  • 进入到enhancement spot,然后选中Enh. Spot Element Definition tab。
  • 选中BADI,然后新建过滤器。
  • 输入相应的数据。
  • 激活enhancement spot,选中implementation。
  • 选中第一行后,选中BADI实现体下面的过滤器图标,选择Create Filter Combination按钮;
  • 选择Country作为过滤器,双击Combination1下面的这行,如图。
  • 同理,可以设置另一个USA BADI实现类的过滤器。
  • 现在,我们可以通过一个新的程序来,调用BADI,而且它会根据过滤器的值,选择执行真正的实现类。

 

REPORT Z_DEMO_ENH.

parameters: ctry(2) type c.

DATA: handle TYPE REF TO z_badi_calc_vat,

sum TYPE p,

vat TYPE p,

percent TYPE p.

sum = 50.

GET BADI handle FILTERS Country = ctry.

CALL BADI handle->get_vat

 EXPORTING im_amount = sum

 IMPORTING ex_amount_vat = vat

         ex_percent_vat = percent.

WRITE: 'percentage:', percent, 'VAT:' ,vat.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值