日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

一个BADI中实施多个Implementation

發布時間:2025/3/20 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个BADI中实施多个Implementation 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

業務場景:例如我們需要對國家的稅率做一個增強,以完成某種業務運算,但是每個國家的稅率又是不同的,所以可以新建一個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

    Multiple GB.jpg?(22.73 KB, 下載次數: 0)

    下載附件

    2015-7-3 17:55 上傳


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

    總結

    以上是生活随笔為你收集整理的一个BADI中实施多个Implementation的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。