2020.02.28 【ABAP隨筆】- SAP查找增強點小記


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大致是做什么的

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM