lef 发表于 2015-9-17 14:15:00

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

  SAP BADI的实现1-构建BADI
  SAP BADI的实现2-实现BADI
  在上一篇最后引出的问题中,我们需要有一种方法来在不同的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.
  
页: [1]
查看完整版本: SAP BADI的实现3-使用BADI过滤器