[轉帖]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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [轉帖]
- [轉帖]mkcertmkcert
- [轉帖]Windows netstat 檢視埠、程序佔用Windows
- 外行假裝內行,我也來談談SAP BAPI和BADIAPI
- [轉帖]海光CPU
- [轉帖]剖析free命令
- [轉帖]Native Memory Tracker
- [轉帖]redis中的maxmemoryRedis
- SAP BTP MTA 應用的應用場景
- SAP S/4HANA生產訂單的BAdI增強點之Initialize方法
- SAP Fiori應用索引大全索引
- 【轉帖】說說忠誠度
- [轉帖]sysbench基準測試
- [轉帖]10 Hardware Components of Oracle ExadataOracle
- [轉帖]TLAB(Thread Local Allocation Buffer)thread
- [轉帖]Redis如何繫結CPURedis
- SAP S4HANA精華帖集錦
- SAP UI5 Web Component React應用如何在Component之間跳轉UIWebReact
- SAP CRM Fiori應用和SAP JAM的整合配置
- 把 SAP UI5 應用部署到 SAP KymaUI
- SAP應用真的不性感麼
- [轉帖]OceanBase 儲存引擎詳解儲存引擎
- [轉帖]10 Tips for using the Eclipse Memory AnalyzerEclipse
- [轉帖]CentOS8 處理dockerCentOSDocker
- [轉帖]XACT_ABORT 的問題
- [轉帖]Moving the JDK to a Two Year LTS CadenceJDK
- 測試要點總結(轉帖)
- [轉帖]netstat -st輸出解析(二)
- [轉帖]Linux 最新SO_REUSEPORT特性Linux
- Bioconductor 分析基因晶片資料(轉帖)晶片
- 某SAP微信公眾號 2019 SAP模組精華帖彙總
- [轉帖]CPU效能原理篇:什麼是負載,應該如何排查負載
- 如何免費試用SAP的Fiori應用
- SAP Fiori 應用 Manage Workflows for Purchase RequisitionsUI
- 使用SAP BSP應用執行VueVue
- [轉帖]CentOS 各版本的對應核心表和發行時間表【全】CentOS
- [轉帖]SQL秘笈 : NOLOCK、ROWLOCK、UPDLOCK的使用!SQL
- [轉帖]一文搞懂LSM-Tree
- [轉帖]深度探究Linux核心透明巨型頁Linux