日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一个BADI中实施多个Implementation

發布時間:2025/3/20 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个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的全部內容,希望文章能夠幫你解決所遇到的問題。

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