1. SE30 運行時間分析評估,找到EXIT_*開頭的函數-可以查到CMOD增強點
然后去MODSAP表中查找:
我們可以在SE30中運行MM02,隨便輸入一個物料,稍微改點東西,然后保存退出,
得到運行時間分析報表:
得到 function :EXIT_SAPLMGMU_001
然后SE16N中MODSAP查詢:
然后這個增強就是MM01 MM02在創建物料時額外增強的校驗增強點。
可以去事務碼CMOD增強。
2. 在function:MODX_FUNCTION_ACTIVE_CHECK 打斷點
在函數的最后一行打個斷點,再運行TCODE的,如果有增強則會跳入DEBUG界面,在DEBUG界面中,查看L_FUNCNAME字段對應的值,此值就是就是要找的出口
還是用MM02做演示:
首先在SE37中進入MODX_FUNCTION_ACTIVE_CHECK 在最后一行打個斷點
然后執行MM02,修改保存時,若是有增強點就會觸發debug
再去SE11中通過MODSAP來查看出口對就的是那個SMOD,
接下來就可以在CMOD中創建增強組了,把找到的增強填入,
最后根據實際的業務進行處理。
3. 找BADI的方法:類對象CL_EXITHANDLER
先運行SE24,查看類對象CL_EXITHANDLER, 在其方法:GET_INSTANCE的14行( CALL METHOD CL_EXITHANDLER=>GET_CLASS_NAME_BY_INTERFACE)打上一個斷點。
接下來運行事務代碼,當有BADI是將會被執行,這時在DEBUG模式下,會進入類CL_EXITHANDLER 的GET_INSTANCE 方法,按F6執行這個方法之后,
點參數EXIT_NAME查看其對應的值,所有的方法實現都在此類對象中,此時就是我們所要找的BADI。
我們以事務碼ME22N為例:
執行ME22N:進入debug模式
雙擊EXIT_NAME參數可以看到BADI的名稱,然后我們可以去SE18里面查看,這個BADI大致是做什么的
由此可以得知這個ME_PO_PRICING增強點是增強PO價格確定的。
若是這個不是你所需要的增強可以在DEBUG界面按F8讓程序繼續進行,遇到BADI又會進入DEBUG界面。
4. 通過開發類找出口
以ME21N事務代碼為例,進入TCODE后,選擇點系統 -》狀態 -》程序名稱,雙擊后進入到程序中,再點菜單欄中的轉到 -》屬性,找到開發類的名稱,比如ME21N的開發類是‘ME’。
如果是找出口,則到SMOD事務代碼中,點加強邊的按紐,在開發類中輸入‘ME’,回車后就會顯示出所有的出口。
打開SMOD:
找BADI也是同樣的過程,只是到SE18中去確定BADI
不過此方法找出來的出口,不是針對某個程序的出口,而是把開發類所對應的出口全找出口,所以
還要通過自己的判斷找到所需求的出口
5. 根據SPRO配置說明或者modification等查找(重要)
其實使用中發現任何一個增強方法的查找都是不全面的,SAP系統十分復雜繁瑣,增強方式也有很多。一般性的增強我們都可以先百度一下,說不定一起出來的還有例子,這應該是最快一種方法。
第五點是根據SPRO配置點附近增強說明去查找:這個個人覺得是最有頭緒的,有理有據的。
舉個例子:我們進入SPRO->銷售與分銷->系統調整->用戶出口->銷售中的User Exit->銷售憑證處理的User Exit
點擊
就可以查看出口說明(此處需要英文閱讀)
然后我們點擊執行按鈕或者運行SE38
輸入MV45AFZZ 點擊查看
以上兩個較為常用,對於SD的增強來說
你會看到好多增強點,挑選一個適用的OK了。可能有不能確定的,業務顧問需要和開發顧問相互配合測試一下。
-Tab Zhu 不念過去 不畏將來
執行ME22N:進入debug模式
雙擊EXIT_NAME參數可以看到BADI的名稱,然后我們可以去SE18里面查看,這個BADI大致是做什么的