幾種SAP增強的查詢方法
阿新 • • 發佈:2019-02-15
***方法一****************************************通過SE30,執行TCODE後,點Evaluate後,檢視執行時間分析評估:命中清單。找以“exit”開頭的SAP程式,如:EXIT_SAPLIE01_007,這個FUNCTION就是TCODE提供的一個出口。至於如何檢視這個增強是屬於哪個SMOD,能夠查閱 MODSAP這個表(SAP Enhancements).***方法二****************************************通過SE37中的:MODX_FUNCTION_ACTIVE_CHECK 函式來找,在函式的最後一行打個斷點,再執行TCODE的,如果有增強則會跳入DEBUG介面,在DEBUG介面中,檢視L_FUNCNAME欄位對應的值,此值就是就是要找的出口,再去SE11中通過MODSAP來查看出口對就的是那個SMOD,接下來就可以在CMOD中建立增強組了,把找到的增強填入,最後根據實際的業務進行處理。以上的兩種方法是用來找第二代增強。 ***方法三****************************************找BADI的方法。先執行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。實現BADI的方法進入SE19,選擇Create Implementation中的Classic BADi另一種方法(跟上面的差不多)查詢源程式,在程式中查詢程式碼段 CL_EXITHANDLER => GET_INSTANCE就可以找到該程式所用到的BADI。***方法四 ****************************************通過開發類找出口以ME21N事務程式碼為例,進入TCODE後,選擇點系統 -》狀態 -》程式名稱,雙擊後進入到程式中,再點選單欄中的 轉到 -》屬性,找到開發類的名稱,比如ME21N的開發類是‘ME’。如果是打出口,則到SMOD事務程式碼中,點 加強邊的按紐,在開發類中輸入‘ME’,回車後就會顯示出所有的出口。找BADI也是同樣的過程,只是到SE18中去確定BADI不過此方法找出來的出口,不是針對某個程式的出口,而是把開發類所對應的出口全找出口,所以還要通過自己的判斷找到所需求的出口*******************************************增強相關函式和表格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(螢幕增強)