业务场景:例如我们需要对国家的税率做一个增强,以完成某种业务运算,但是每个国家的税率又是不同的,所以可以新建一个BADI用于增强国家税率计算,对BADI进行多次实施,分别用于不同国家的税率计算。
1、因为BADI多次实施,需要选中Multiple Use;因为实施的Implementation用于不同场景,需要选中Filter Use。 2、在BADI:Y_BADI_CALC_VAT1中再实施一个Implementation:Y_BADI_CALC_VAT_GB 部署Method(Y_CL_CAL_VAT_GB)代码:Y_IF_CALC_VAT~GET_VAT 3、在BADI:Y_BADI_CALC_VAT1中新建定义一个Filter 4、分别在BADI的两个Implemention中设置Filter条件 Y_BADI_CALC_US的Filter条件为country = US,意思是:当country = US时,执行Y_BADI_CALC_US中Method代码 Y_BADI_CALC_GB的Filter条件为country = GB,意思是:当country = GB时,执行Y_BADI_CALC_GB中Method代码 5、SE38修改调用程序的代码: 6、执行程序,测试效果: 当输入条件是US时,执行Y_BADI_CALC_US Implemention 当输入条件是GB时,执行Y_BADI_CALC_GB Implemention 我们Debug就可以直观的看到不同条件执行不同Implemention了 |