乙個BADI中實施多個Implementation

2021-08-04 12:01:03 字數 1837 閱讀 1864

業務場景:例如我們需要對國家的稅率做乙個

增強,以完成某種業務運算,但是每個國家的稅率又是不同的,所以可以新建乙個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

method y_if_calc_vat~get_vat.

data: percent type p value 8 .

ex_amount_vat = im_amount * percent / 100 .

ex_percent_vat = percent .

endmethod.

複製**

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修改呼叫程式的**:

data: handle  type ref to y_badi_calc_vat1,

sum     type p,

vat     type p,

percent type p.

parameters: ctry(2) type c.

start-of-selection.

sum = 50.

*獲取badi物件:y_badi_calc_vat1

get badi handle filters country = ctry.

*呼叫badi物件y_badi_calc_vat1的方法get_vat

call badi handle->get_vat

exporting

im_amount      = sum

changing

ex_amount_vat  = vat

ex_percent_vat = percent.

write: 'percentage:', percent, 'vat:', vat.

複製**

6、執行程式,測試效果:

當輸入條件是us時,執行y_badi_calc_us implemention

當輸入條件是gb時,執行y_badi_calc_gb implemention

2015-7-3 17:55 上傳

我們debug就可以直觀的看到不同條件執行不同implemention了

乙個容器多個程序,乙個pod多個容器

乙個容器多個程序 在docker的映象編譯指令碼dockerfile中帶起多個程序,如下可以在contivnet.sh中啟動多個程序 from 192.168.1.2 5001 world centos7 ovs 2.6.4 1 copy bin contiv bin copy scripts co...

乙個函式中返回多個值

如把多個需要返回的值作相應的處理後變成乙個可以用return 語句返回的資料,再在主調函式中拆開返回的資料使之變成幾個值。那麼當我們希望從乙個函式中返回多個值時,用什麼方法去實現比較合理呢?2方法1 利用全域性變數 分析 全域性變數作為c 語言的乙個知識點,雖然我們都了解它的特點,但在實際教學過程中...

乙個例項中,多個synchronized方法的呼叫

public class threada extends thread public void run public class threadb extends thread public void run public class run 如上所示,myobject類有兩個方法,分別建立兩個執行緒...