EXIT出口的查找:函數
方法一:spa
第一步:經過SE30,輸入TCODE(例如ME21N),執行EXCUTE,前臺建立一張採購訂單。點擊TIMES頁籤,查找EXIT開頭的SAP程序。code
第二步:這些function就是tcode提供的一個出口,能夠經過SE11查詢MODSAP表,查看該出口屬於哪個SMOD。對象
方法二:blog
第一步:經過SE37中的:MODX_FUNCTION_ACTIVE_CHECK 函數來找。事務
在函數的最後一行打個斷點,再運行TCODE(例如ME21N),若是有加強則會跳入DEBUG界面,在DEBUG界面中,查看L_FUNCNAME字段對應的值,此值就是就是要找的出口,開發
第二步:這些function就是tcode提供的一個出口,能夠經過SE11查詢MODSAP表,查看該出口屬於哪個SMOD。io
第三步:找到合適的出口,經過TCODE-CMOD建立項目,將SMOD分配加強裏,根據業務需求進行開發便可。function
若是碰到加強已經屬於其餘項目,則能夠其餘項目裏進行開發。程序
BADI的查找:
第一步:執行TCODE-SE24,查看類對象CL_EXITHANDLER,。
在其方法:GET_INSTANCE的14行( CALL METHOD CL_EXITHANDLER=>GET_CLASS_NAME_BY_INTERFACE)打上一個斷點。
第二步:接下來運行事務代碼例如(ME21N),當有BADI是將會被執行,這時在DEBUG模式下,
會進入類CL_EXITHANDLER 的GET_INSTANCE 方法,按F6執行這個方法以後,點參數EXIT_NAME查看其對應的值,全部的方法實現都在此類對象中,此時就是咱們所要找的BADI。
第三步:進入SE19,選擇Create Implementation中的Classic BADI
利用開發類找加強。
第一步:以ME21N事務代碼爲例,進入TCODE後,選擇點系統 ->狀態 ->雙擊事務代碼->程序名稱,
雙擊後進入到程序中,再點菜單欄中的 轉到 ->屬性,找到開發類的名稱,好比ME21N的開發類是‘ME’。
第二步:
若是是找出口,則到SMOD事務代碼中,點 增強邊的按紐,在開發類中輸入‘ME’,回車後就會顯示出全部的出口。
找BADI也是一樣的過程,只是到SE18中去肯定BADI。
不過此方法找出來的出口,不是針對某個程序的出口,而是把開發類所對應的出口全找出口,因此還要經過本身的判斷找到所需求的出口
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)