查找SAP標准程序用戶出口及BADI的方法


查找SAP標准事務代碼中使用的BADI

在SE24中,查看類對象CL_EXITHANDLER,在其方法(Methods)GET_INSTANCE 的第14行打斷點,之后運行事務代碼;

當有BADI將會被執行的時候,這時候會進入類CL_EXITHANDLER的GET_INSTANCE方法,按F6執行這個方法之后,參數EXIT_NAME中的值便是BADI定義(SE18中看到的東西),參數CLASS_NAME則是類對象名稱(SE24里面看到的東西),所有的方法實現都是存在於類對象中;

 

 

通過查找類方法中的參數(Parameter)和對對象的屬性(Attribute),如果能滿足自己需要實現的功能,則可以通過實現這個BADI來做增強。

 

實現BADI的方法(ECC6.0版本下):

進入SE19,選擇Create Implementation中的Classic BADi,輸入剛才查找到的EXIT_NAME;

 

點擊Create Impl,輸入實現名;

 

點綠勾;

 

點擊保存,激活(如果是ECC6.0版本,則還需要指定對應的Enhancement Spot,才可以完全創建成功。但是這里有個疑問:我第一次創建BADI實現需要指定Enhancement Spot,這次創建保存激活時直接創建成功,並沒有提示我需要指定Enhancement Spot,不知道為什么!);

 

雙擊進入方法CHANGE_SEGMENT_PSEGMENT,即可在里面實現功能;

 

下面再運行F-02,執行程序,即可進入此段代碼。

 

 

查找SAP標准事務代碼中使用的USER_EXIT

在SE37中,查看函數MODX_FUNCTION_ACTIVE_CHECK ,在最后一行打斷點;

 

   當有USER_EXIT將會被執行的時候,這時候函數MODX_FUNCTION_ACTIVE_CHECK中的參數L_FUNCNAME 會顯示出口的名稱。

 

 

如果要使用這個出口,必須先激活(已經激活的則不需要);

先去表MODSAP中查找這個程序名的出口名;

 

 

進入CMOD,創建出口對象(以下圖例使用的是一個已經存在的增強對象);

 

 

選擇Enhacement assignments;

 

在這里輸入增強對象名,也就是剛才在MODSAP表里面查到的F180A001,點擊組件;

 

選擇修改,激活這些增強,雙擊進入EXIT_SAPLF048_001 程序;

 

創建INCLUDE ZXF48U01;

 

運行F-02,便會進入此出口程序。


免責聲明!

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



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