方法一、利用TCODE尋找增強(第二代的增強)
執行一個程序(源代碼後附),在選擇屏幕處輸入你所需要增強的程序TCODE,執行後,就會出現一個列表,那裏就有關於如何增強這個的絕大部分SMOD增強。
方法二、利用系統函數尋找
MODX_FUNCTION_ACTIVE_CHECK
在這個FUNCTION的代碼最後添加一個斷點。執行需要增強的TCODE,如果有增強,就會自動跳入DEBUG界面。在DEBUG界面,查看f_tab字段,這裏面所顯示的Smod就是關於這個TCODE所有的增強項目的列表。這些增強都是屬於EXIT_XXXXXX_XXX這種形式。
至於如何查看這個增強是屬於哪個SMOD,可以自己查閱 MODSAP這個表(SAP Enhancements).
這是第二代增強。
還有一些FUNCTION供參考:
[1].DYNP_VALUES_READ
[2]. MODX_ALL_ACTIVE_MENUENTRIES(菜單增強)
[3].MODX_FUNCTION_ACTIVE_CHECK(出口函數增強)
[4].MODX_MENUENTRY_ACTIVE_CHECK(菜單增強)
[5].MODX_SUBSCREEN_ACTIVE_CHECK(屏幕增強)
這些的使用方法和上述的一樣,可以針對各種情況尋找增強。
方法三、從程序代碼中找
在需要增強的事務裏面,打開SYSTEM——》status,雙擊進入PROGRAM,查看所有的subroutines, 重點觀察所有形似 userexit_******* 這種,由描述來確定合適的需要增強的FORM。這裏是第一代的增強。
方法四、針對BADI的增強
轉摘自網上
1、badi對象的信息存儲在SXS_INTER, SXC_EXIT, SXC_CLASS 和SXC_ATTR 這四個表中。
2、sap程序都會調用cl_exithandler=>get_instance來判斷對象是否存在,並返回實例;其實get_instance就是對上述幾個表和他們的視圖(V_EXT_IMP 和 V_EXT_ACT)進行查詢和搜索。
3、基於這個機理,我查用ST05來監控一個TCODE來跟蹤,然後選擇查找有關上述幾個表和視圖的操作,就可獲得相關BADI。
4、se18 查找接口,se19 實現接口就可以實現用戶增強。