[轉帖]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.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10500555/viewspace-616097/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Flashback Query的應用(轉帖)
- 轉帖:Hadoop的十大應用場景Hadoop
- SSH Tunnel (port forwarding) 的一些應用(轉帖)Forward
- [轉帖]
- SAP Query 應用
- [轉帖]mkcertmkcert
- 【轉帖】SAP NetWeaver整合化技術平臺解決方案
- sap入門--sap網路應用
- SAP BTP MTA 應用的應用場景
- [轉帖]掌握udevdev
- [轉帖]海光CPU
- SAP Fiori應用索引大全索引
- 外行假裝內行,我也來談談SAP BAPI和BADIAPI
- [轉帖]Windows netstat 檢視埠、程序佔用Windows
- BAdI簡介
- BAdI: Web ItemWeb
- BAdI: InfoSpoke with TransformationORM
- [轉帖]剖析free命令
- 【轉】ckEditor使用方法 轉帖
- SAP CRM Fiori應用和SAP JAM的整合配置
- 把 SAP UI5 應用部署到 SAP KymaUI
- [原創]SAP方丈-SAP增強應用例項
- SAP BLOG--Jack Wu(關注SAP應用)
- SAP應用真的不性感麼
- 如何免費試用SAP的Fiori應用
- 某SAP微信公眾號 2019 SAP模組精華帖彙總
- How to develop BADI (abap)dev
- BADI的實現
- [轉帖]SQLite使用教學SQLite
- [轉帖]Native Memory Tracker
- [轉帖]redis中的maxmemoryRedis
- 使用SAP BSP應用執行VueVue
- SAP Fiori 應用 Manage Workflows for Purchase RequisitionsUI
- SAP ESOA (6) - 主要的應用模式模式
- SAP S/4HANA生產訂單的BAdI增強點之Initialize方法
- 26.SAP MII應用分析(01)什麼是SAP MII?
- 27.SAP MII應用分析(02)什麼是SAP MII?
- 使用BAPI_ACC_DOCUMENT_POST,建立會計憑證,用BADI擴充套件欄位(轉)API套件