用戶出口分類.doc_第1頁
用戶出口分類.doc_第2頁
用戶出口分類.doc_第3頁
全文預覽已結(jié)束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

sap的用戶出口總共有三代:1、第一代sap提供一個空代碼的子過程,在這個子過程中用戶可以添加自己的代碼,控制自己的需求。這類增強都需要修改sap的標準代碼。示例:USEREXIT. in SAPMV45A2、第二代sap提供的是CUSTOMER-FUNCTION,它是通過SMOD和CMOD完成實現(xiàn)。參見:如何使用SMOD和CMOD進行SD的用戶增強3、第三代sap提供的第三代的用戶出口就是BADI,他的調(diào)用方式是CALL METHOD (instance),(相關的TCODE是SE18和SE19),你可以通過EXIT_HANDLER這個單詞查找BADI。第二代: 如何使用SMOD和CMOD進行SD的用戶增強1、關于增強的簡單介紹1.1 SMOD包含具體的增強,而CMOD是包含一組SMOD編寫的增強.1.2 User exits (Function module exits)是sap提供出口,它的命名規(guī)則如下:EXIT_示例:sd的VA01事務,對應的程序是SAPMV45A ,你會在程序里查到(用CALL CUSTOMER-FUNCTION字符串)如下代碼:CALL CUSTOMER-FUNCTION 003 exporting xvbak = vbak xvbuk = vbuk xkomk = tkomk importing lvf_subrc = lvf_subrc tables xvbfa = xvbfa xvbap = xvbap xvbup = xvbup.則exit calls function module的名稱就是: EXIT_SAPMV45A_0032、先試用SMOD建立一個SAP增強2.1、選擇一個增強,如:SDVFX001 ,點擊修改,進入sap增強維護屏幕;2.2、點擊“組件”按鈕,進入組件維護屏;2.3、將光標移到“功能模塊名”,輸入模塊名,如:EXIT_SAPLV60B_001;2.4、選擇“代碼修改”按鈕進入函數(shù)模塊;2.5、雙擊函數(shù)模塊的包含單元,進入包含單元加入自定義代碼并激活保存;3、使用CMOD建立增強項目3.1、輸入自定義的項目名,點擊“創(chuàng)建”;3.2、進入增強項目,選擇“配置增強”,進入增強配置屏幕;3.3、輸入增強名如:SDVFX0013.4、保存,并退出;4、使用CMOD將增強項目激活,便大工告成。如何查找*判斷是否存在相應增強的定義(SMOD) select single name from modsapa into mod0-name where name = PPCO0002. if sy-subrc = 0. endif. select single * from tadir into ps_tadir_db where pgmid = R3TR and object = SMOD and obj_name = PPCO0002.*判斷是否存在相應增強項目的定義(CMOD) SELECT SINGLE name FROM MODATTR into mod0-name WHERE NAME = PPCO0002.*提取增強的定義的組件 (可以用此反查增強定義) select * from modsap where name = PPCO0002.*判斷該增強是否移植到BADI實現(xiàn)*Enhancement & has already been migrated in Business Add-In definition select single migrated badi_def into (migrated, exit_name) from modsapa where name = modname. if sy-subrc = 0 and migrated = seex_true. message s621 with modname exit_name. check mode ne CHAM. endif.MODTYP 類型:E : 功能退出S : 屏幕T : 表C : GUI代碼sap增強存在MODSAP表內(nèi)*獲取增強組件的參見函數(shù)MOD_SAP_MEMBER_TEXT*獲得退出功能模塊的信息 select single * from tftit where SPRAS = 1 AND FUNCNAME = EXIT_SAPLCORE_001 if sy-subrc = 0. endif.*值得學習的函數(shù)MOD_KUN_ACTIVATE(會操作相關報表)第三代BADI作為SAP的第三代用戶出口,他的應用也越來越廣泛,但如何找到合適的badi是許多abap程序員的困惑。我這里就介紹一下我個人的應用的經(jīng)驗,供大家參考。1、badi對象的信息存儲在SXS_INTER, SXC_EXIT, SXC_CLASS 和SXC_ATTR這四個表中(參見SECE包);2、sap程序都會調(diào)用cl_exithandler=get_instance來判斷對象是否存在,并返回實例;其實get_instance就是對上述幾個表和他們的視圖(V_EXT_IMP和 V_EXT_ACT)進行查詢和搜索。3、基于這個機理,我查用ST05來監(jiān)控一個TCODE來跟蹤,然后選擇查找有關上述幾個表和視圖的操作,就可獲得相關BADI。4、se18 查找接口,se19 實現(xiàn)接口就可以實現(xiàn)用戶增強。示例:用LE_SHP_DELIVERY_PROC控制跨月CancelMETHOD IF_EX_LE_SHP_DELIVERY_PROCCHANGE_DELIVERY_HEADER .data : thismonth(2) type c.data : wa_likp type line of SHP_LIKP_T.data : wa_log type line of SHP_BADI_ERROR_LOG_T.clear ct_log,thismonth.thismonth = sy-datum+4(2). -這一個月的月份loop at it_xlikp into wa_likp.check IS_V50AGL-WARENAUSG_STORNO =X.-代表作GI cancelif wa_likp-WADAT_IST+4(2) thismonth.wa_log-VBELN = cs_likp-vbeln.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論