SAP BADI应用
SAP BADI應用
1.定義BADI
???????? 1) T-Code:? SE18???? Business Add-In Define.
?? 2) 輸入要創建的BADI的名字,點擊"Create"。
?? 3) 輸入BADI的描述性文本,在"Interface"選項卡上輸入接口的名字,也可以采用SAP建議的接口的名字。同時,BADI類也??????? 會被創建。
???? 例如:對于BADI "ZTEST",SAP會建議"ZIF_EX_TEST"作為接口的名字,"ZCL_EX_TEST"作為類的名字。
?? 4) 保存BADI。
?? 5) 雙擊接口的名字,會跳轉到Class Builder界面,在這里你可以定義接口的方法。
?? 6) 保存并激活接口。
2.實現BADI
???????? 1) T-Code:? SE19???? Business Add-In Implementation
???????? 2) 輸入BADI實現的名字,點擊"Create"。
???????? 3) 輸入BADI定義的名字。
???????? 4) 輸入實現的描述性文本,在"Interface"選項卡上輸入實現類的名字。可以采用SAP建議的名字。
??? 例如:"ZIMPTEST",SAP會建議"ZCL_IM_IMPTEST"。
?? 5) 保存實現。
?? 6) 雙擊某一方法名會跳轉到Class Builder界面,在這里你可以添加代碼來重定義接口方法。
?? 7) 激活實現。
3. 程序中調用BADI
1) 先用類型參照引用出要調用的BADI
????? 2) 實例化BADI
????? 3) 實例化后就可以任意調用BADI 中的方法了。
REPORT? ZZW_BAPI_01???????????????????????????????????????????????? .
data exit type ref to ZIF_EX_ZW_BD_TEST.
call method cl_exithandler=>get_instance
???? changing
??????? instance = exit.
call method exit->Z_ZW_01.
==》
badi 小記
BADI作為SAP的第三代用戶出口,他的應用也越來越廣泛,但如何找到合適的badi是許多abap程序員的困惑。我這里就介紹一下我個人的應用的經驗,供大家參考。
1、badi對象的信息存儲在SXS_INTER, SXC_EXIT, SXC_CLASS 和SXC_ATTR 這四個表中(參見SECE包);
2、sap程序都會調用cl_exithandler=>get_instance來判斷對象是否存在,并返回實例;其實get_instance就是對上述幾個表和他們的視圖(V_EXT_IMP 和 V_EXT_ACT)進行查詢和搜索。
3、基于這個機理,我查用ST05來監控一個TCODE來跟蹤,然后選擇查找有關上述幾個表和視圖的操作,就可獲得相關BADI。
4、se18 查找接口,se19 實現接口就可以實現用戶增強。
示例:用LE_SHP_DELIVERY_PROC控制跨月Cancel
METHOD IF_EX_LE_SHP_DELIVERY_PROC~CHANGE_DELIVERY_HEADER .
data : thismonth(2) type c.
data : wa_likp type line of SHP_LIKP_T.
data : wa_log type line of SHP_BADI_ERROR_LOG_T.
clear ct_log[],thismonth.
thismonth = sy-datum+4(2). "----->這一個月的月份
loop at it_xlikp into wa_likp.
check IS_V50AGL-WARENAUSG_STORNO ='X'."--->代表作GI cancel
if wa_likp-WADAT_IST+4(2) < thismonth.
wa_log-VBELN = cs_likp-vbeln.
wa_log-MSGTY = 'E'. "錯誤信息
wa_log-MSGID = 'ZDN_ERROR'. "這一個class要自己建
wa_log-MSGNO = '001'.
append wa_log to ct_log. "Error log寫入
endif.
endloop.
ENDMETHOD.
轉載于:https://www.cnblogs.com/panjun-Donet/archive/2011/01/03/1924933.html
總結
以上是生活随笔為你收集整理的SAP BADI应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Javascript原型链
- 下一篇: 是我太过天真是什么歌呢