Hi 大家好
今天來介紹另一種增強技術BADI,
BADI,全名是Business add in ,
跟昨天介紹的User exit、Customer exit 一樣,
都是可以在SAP標準程式之上做額外的開發 。
一般的EXIT只允許實現一次,一個SMOD enhance只能被分配到一個project中,
BAdI允許用戶在一個標準程序中創建多個實現(Multiple Implementations),
在相同的 BAdI 增強點中,可以有不同的邏輯並且可以根據條件進行不同實現的執行。
舉例:不同Company code的業務處理
假設你在一家跨國公司工作,該公司在多個國家運營,每個國家的稅務規則不同。你需要在創建銷售訂單時,根據不同的Company Code來設定不同的稅率。
BAdI 多實現場景:
你可以創建一個 BADI,在這個BADI 的篩選器條件中使用公司代碼作為篩選依據。
為每個國家的公司代碼創建不同的實現。
實現 1:針對德國的公司代碼,應用德國的稅率計算邏輯。
實現 2:針對美國的公司代碼,應用美國的稅率計算邏輯。
Step1 : se24 查找類 ->輸入CL_EXITHANDLER
點擊get instance
在第14行打上斷點
step2 :執行我們要的t-code
以T-CODE:ME21N為例
有進入debug模式就是有進入到增強,
找參數exit_name 就是我們的BADI名稱,
這邊可以看到名稱是ME_PROCESS_PO
T-CODE:SE18
點擊上方的Implement -> overview 可以看到所以implement
點擊implement 可以看到實現的class名稱 ->CL_IM_WB2_PROCESS_PO
T-Code:se24
輸入剛剛implement 的class名稱
這裡的method點進去後就是我們添加邏輯的地方
以上就是今天的分享~