- 第一代(FORM 增強)
在所需增強的主程序中,查找form名中有userexit_的form. - 第二代(Function 增強)
在程序中搜索customer-function,找到customer-function後面的3位數字編號,出口函數名為EXIT_程序名_3位數字,然後用出口函數名去MODSAP表中取得增強對象。
在MODX_FUNCTION_ACTIVE_CHECK中第36行打斷點,運行要查找出口的T-code,進入debug,查看l_funcname值。funcname就是出口函數名稱。
cmod增強管理,smod實施的增強點。 - 第三代 BADI(Business add-Ins)
在cl_exithandler中的方法get_instance中的調用方法cl_exithandler=>get_class_name_by_interface處打斷點,exit_name就是出口名,再通過se18查看badi的描述,找到接口對應的方法,點擊上面implementation下的create創建實施,然後雙擊方法編寫代碼,激活后查看是否生效。
在NEW BADI中,一個Enhancement Spot可以定義多個BADI,每個BADI又是由1個接口與多個方法組成。Enhancement Spot相當於容器,用來存儲多個BADI,而每個BADI必須定義一個接口,這個接口可以有一個或多個方法,BADI就是將接口與方法鏈接在一起。
不同implementation的調用通過過濾器進行設定;同一個enhancement implementation中,不同的BADI implementations是由Default Implementation 、Implementation is active選項共同決定。 - BTE(Business Transaction Event)
兩種類型的接口:P/S(Publish & Subscribe Interfaces);Process Interface.
1.標準程序中經常是以OPEN_FI_PERFORM開頭的function。OPEN_FI_PERFORM,找到的function名最後如果是’_E’,它就是P/S接口;如果是’_P’,那就是Process Interface.
2.如果是P/S接口,T-code: BERE,直接運行后,用OPEN_FI_PERFORM中的數字去查詢,找到對應的Event后選中,點上面的Sample function module,然後copy Sample (要先創建function group).在複製的function module中添加增強的代碼;Process接口用T-code:BERP查找,後面的都一樣。
3.T-code:FIBF,Setting–Products–…of a customer,創建一個Product,後面的Active打鉤。保存生成request。
4.如果是P/S接口,在Setting-下選P/S Modules–… of a customer,Event就是OPEN_FI_PERFORM中的數字,Application Indicator可以不填,添加完後保存;Process Interface在Setting中選 Process Modules,其他步驟都一樣。
SAP 增強
最新推荐文章于 2023-02-11 21:29:51 发布