




已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
sap增強(qiáng) 2009年08月26日 星期三 19:46 1、關(guān)于增強(qiáng)的簡單介紹 1.1 SMOD包含具體的增強(qiáng),而CMOD是包含一組SMOD編寫的增強(qiáng). 1.2 User exits (Function module exits)是sap提供出口,它的命名規(guī)則如下: EXIT_ 示例: sd的VA01事務(wù),對應(yīng)的程序是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_003 2、先試用SMOD建立一個SAP增強(qiáng) 2.1、選擇一個增強(qiáng),如:SDVFX001 ,點(diǎn)擊修改,進(jìn)入sap增強(qiáng)維護(hù)屏幕; 2.2、點(diǎn)擊組件按鈕,進(jìn)入組件維護(hù)屏; 2.3、將光標(biāo)移到功能模塊名,輸入模塊名,如:EXIT_SAPLV60B_001; 2.4、選擇代碼修改按鈕進(jìn)入函數(shù)模塊; 2.5、雙擊函數(shù)模塊的包含單元,進(jìn)入包含單元加入自定義代碼并激活保存; 3、使用CMOD建立增強(qiáng)項(xiàng)目 3.1、輸入自定義的項(xiàng)目名,點(diǎn)擊創(chuàng)建; 3.2、進(jìn)入增強(qiáng)項(xiàng)目,選擇配置增強(qiáng),進(jìn)入增強(qiáng)配置屏幕; 3.3、輸入增強(qiáng)名如:SDVFX001 3.4、保存,并退出; 4、使用CMOD將增強(qiáng)項(xiàng)目激活,便大工告成。*小技巧 透視ERP增強(qiáng)(一)什么是增強(qiáng)(Enhancement)?簡單地說,增強(qiáng)就是ERP系統(tǒng)中標(biāo)準(zhǔn)程序的出口,在該出口中由用戶根據(jù)企業(yè)實(shí)際需求編寫客戶化邏輯代碼。增強(qiáng)是ERP系統(tǒng)設(shè)計(jì)時(shí)考慮到企業(yè)實(shí)際的流程有可能和系統(tǒng)默認(rèn)標(biāo)準(zhǔn)流程不同,在標(biāo)準(zhǔn)流程框架下專門留的接口,每個接口對應(yīng)一個客戶化函數(shù),這些出口函數(shù)有標(biāo)準(zhǔn)處理程序傳入的參數(shù)和輸出參數(shù),用戶可根據(jù)系統(tǒng)輸入?yún)?shù)做條件編寫適合本企業(yè)流程的邏輯,然后通過輸出參數(shù)傳輸回。(二)用戶增強(qiáng)分類SAP的用戶增強(qiáng)通常包括下面3類。1.E類:Enhancement exits,即通常所謂的用戶出口(User_exit )用戶出口也叫功能出口(Function Exit)。使用Tcode:SE37搜索EXIT*,找到的函數(shù)大都是做系統(tǒng)預(yù)留的出口函數(shù),前面說過,用戶出口是標(biāo)準(zhǔn)程序留給用戶的接口,標(biāo)準(zhǔn)程序通常不允許用戶任意修改,如果修改需要申請Access Key,而且修改標(biāo)準(zhǔn)程序可能導(dǎo)致的錯誤erp公司通常是不負(fù)責(zé)的。在SAP中,自定義的程序通常以保留字Y或Z開頭,因此,出口函數(shù)中都預(yù)包含了一個Z開頭的程序。2.C類:GUI接口(GUI codes)3.S類:屏幕增強(qiáng)(Screen Exit)比如,在建立采購訂單,工單和固定資產(chǎn)主數(shù)據(jù)時(shí),系統(tǒng)都預(yù)留屏幕增強(qiáng),也就是說允許用戶自定義用戶輸入界面并編寫相應(yīng)的輸入輸出處理程序。在各類增強(qiáng)中,可能還用戶自己定義結(jié)構(gòu)或表格,系統(tǒng)對應(yīng)類型T類。比如增強(qiáng)MM06E005允許用戶建立兩個結(jié)構(gòu)CI_EKKODB和CI_EKPODB。接下來將重點(diǎn)介紹功能出口的應(yīng)用。(三)組織用戶增強(qiáng)相關(guān)增強(qiáng)表格:MODSAP:增強(qiáng)表格TFDIR:包括出口函數(shù)在內(nèi)的所有函數(shù)表(E類)CUATEXTS:修改 GVI 界面,界面: 菜單文本被客戶(C類)TSDIR:動態(tài)程序區(qū) CALL CUSTOMER SUBSCREEN(S類)* 對于以EXIT開頭的出口函數(shù),TFDIR-MAND值為C表示此出口函數(shù)被激活。相關(guān)增強(qiáng)檢查函數(shù):MODX_FUNCTION_ACTIVE_CHECK:檢查E類用戶出口是否被激活。MODX_MENUENTRY_ACTIVE_CHECK:檢查C類增強(qiáng)激活狀況MODX_SUBSCREEN_ACTIVE_CHECK: 檢查S類增強(qiáng)激活狀況你可能會發(fā)現(xiàn),SAP的各模塊的任何一個事務(wù)碼(Tcode)對應(yīng)的標(biāo)準(zhǔn)程序都留下了大量的用戶出口,正是SAP靈活的配置功能和強(qiáng)大的用戶出口才使其產(chǎn)品輕松應(yīng)對各種復(fù)雜需求成為可能,系統(tǒng)還為能快速找到和激活這些增強(qiáng)進(jìn)行了有效組織,各類增強(qiáng)被記錄在table中并且提供了相關(guān)檢查函數(shù),從而更方便企業(yè)用戶。熟悉ABAP開發(fā)的朋友通常都收集了一個可以輸入事務(wù)碼快速找到系統(tǒng)留下的所有出口的程序,下表就是一個檢測系統(tǒng)增強(qiáng)被激活的簡單參考程序。* 該程序可以檢測出系統(tǒng)所有被激活的用戶增強(qiáng).* By Stone Fu. on 2006/11/07 .* Used to find out all the activated user-exit of SAP .report zfindactexit .tables: modsap,tfdir.data : begin of itab_exit occurs 0, funcname like tfdir-funcname, mand like tfdir-mand, name like modsap-name, end of itab_exit .data : field1(30)._select afuncname amand bnameinto table itab_exitfrom tfdir as a inner join modsap as b on afuncname = bmemberwhere amand = Cand afuncname = bmember .format color col_heading intensified on.write:/1 sy-vline,2 Enhancement Name,21 sy-vline ,22 Activated Exit Function,95 sy-vline.write:/(95) sy-uline.loop at itab_exit.format color col_normal intensified off.write:/1 sy-vline,2 itab_exit-name hotspot on,21 sy-vline ,22 itab_exit-funcname,95 sy-vline.endloop.at line-selection.get cursor field field1.set parameter id MON field sy-lisel+1(10).call transaction SMOD and skip first screen.有一種直接有效的查找用戶出口增強(qiáng)的方法,就是使用函數(shù)MODX_FUNCTION_ACTIVE_CHECK,如圖1。圖1中的判斷語句If tfdir-mand = aktiv_flag(常數(shù)C)則出口函數(shù)active標(biāo)志=X,表示該用戶出口被激活,處理邏輯將從標(biāo)準(zhǔn)程序轉(zhuǎn)入出口函數(shù),在該語句設(shè)置斷點(diǎn)然后運(yùn)行任一個事務(wù)碼,都會調(diào)用該函數(shù)判斷是否存在用戶出口。(四)增強(qiáng)應(yīng)用實(shí)例業(yè)務(wù)背景:如果采購訂單已經(jīng)做了發(fā)票校驗(yàn)后,則不再允許用戶修改價(jià)格。相關(guān)程序:MM06EFPO_POT_FUELLEN| MM06EF0C_CUSTSCR1_ITEM_SET_DAT相關(guān)Tcode:SMOD|CMOD如果沒有啟動采購審批功能,SAP標(biāo)準(zhǔn)功能是允許用戶隨時(shí)修改采購價(jià)格的,不同的企業(yè)有對采購價(jià)格控制有不同的策略,甲企業(yè)規(guī)模較小為了省事可能為以后數(shù)月的采購開了一個大采購單,如果中途材料價(jià)格變動則直接修改價(jià)格就行,乙集團(tuán)則嚴(yán)格控制采購價(jià)格,采購價(jià)格由總部集中維護(hù),各企業(yè)采購員只需要維護(hù)采購數(shù)量等信息等,真因如此,ERP系統(tǒng)顯然不會去禁止用戶修改價(jià)格,如果企業(yè)確實(shí)需要如此,則可通過增強(qiáng)實(shí)現(xiàn)。前面已經(jīng)介紹過如何通過在函數(shù)MODX_FUNCTION_ACTIVE_CHECK設(shè)置斷點(diǎn)跟蹤系統(tǒng)每個事務(wù)預(yù)留的用戶出口,你很快將發(fā)現(xiàn)增強(qiáng)MM06E005的EXIT_SAPMM06E_017用戶出口非常適合此業(yè)務(wù)背景。首先來看看增強(qiáng)的EXIT_SAPMM06E_017用戶出口(以下稱017出口)處理流程,Include程序MM06EFPO_POT_FUELLEN被專門用來處理增強(qiáng)出口,調(diào)用了子程序CUSTSCR1_ITEM_SET_DATA_PAI(對應(yīng)下一級Include程序MM06EF0C_CUSTSCR1_ITEM_SET_DAT),分析Include程序MM06EF0C_CUSTSCR1_ITEM_SET_DAT的代碼,如下表,這個程序是從系統(tǒng)原本Copy出來的,注意本人所加的附注粗體部分:*-* User-Exit fr Positionsfelder versorgen (PAI)FORM custscr1_item_set_data_pai USING im_no_screen LIKE fc_call. 770427DATA: l_ucomm LIKE sy-ucomm, l_enj_call TYPE c.STATICS: first_call(1) TYPE c VALUE X, active LIKE sy-calld.ENHANCEMENT-POINT CUSTSCR1_ITEM_SET_DATA_PAI_02 SPOTS ES_MM06EF0C_CUSTSCR1_I_SET_DAT INCLUDE BOUND .*$*$-Start: CUSTSCR1_ITEM_SET_DATA_PAI_02-$*$*ENHANCEMENT 1 OI0_COMMON_MM06EF0C_ITEM_S_DAT. active version* C5030897 I.Twardowski Implementation of BADI for OGSDPERFORM OI0_BADISCR1_ITEM_SET_DATA_PAI.ENDENHANCEMENT.*$*$-End: CUSTSCR1_ITEM_SET_DATA_PAI_02-$*$*IF NOT first_call IS INITIAL.CLEAR first_call.*注釋: MODX_FUNCTION_ACTIVE_CHECK用來檢查017出口是否被激活,如果激活則執(zhí)行之. CALL FUNCTION MODX_FUNCTION_ACTIVE_CHECK EXPORTING cprogname = SAPMM06E funcnumber = 017 IMPORTING active = active EXCEPTIONS not_found = 1 OTHERS = 2. IF NOT sy-subrc IS INITIAL. CLEAR active. ENDIF.ENDIF.CHECK NOT active IS INITIAL.IF fc_vorga EQ cva_en. l_enj_call = X.ELSE. l_enj_call = space.ENDIF.*-Define Data:DATA: lt_usr_tekpo LIKE bekpo OCCURS 0, lt_usr_teket LIKE beket OCCURS 0, lt_usr_tekkn LIKE ekknu OCCURS 0, lt_usr_tkomv LIKE tkomv OCCURS 0.*-Copy Tables:lt_usr_tekpo = pot.lt_usr_teket = ett.lt_usr_tekkn = knt.lt_usr_tkomv = tkomv.l_ucomm = ok-code.*注釋:調(diào)用出口的一般步驟是先定義數(shù)據(jù)(Define Data),多為內(nèi)表或工作區(qū),再將參數(shù)賦予這些內(nèi)表(Copy Tables),相當(dāng)于*建立了原始參數(shù)的一個鏡象.*-User Exit:*如果017出口增強(qiáng)被激活則執(zhí)行它.CALL FUNCTION EXIT_SAPMM06E_017 EXPORTING i_ekpo = ekpo i_ekpo_old = *ekpo i_ekko = ekko i_aktyp = aktyp i_bstyp = ekko-bstyp i_no_screen = im_no_screen 770427 i_lfa1 = lfa1 i_lfm1 = lfm1 i_rekpo = rekpo i_kekpo = kekpo i_aekpo = aekpo i_reban = reban i_mt06e = mt06e i_eina = *eina i_eine = *eine i_komp = komp i_ucomm = l_ucomm i_enj_call = l_enj_call TABLES tekpo = lt_usr_tekpo teket = lt_usr_teket tekkn = lt_usr_tekkn tkomv = lt_usr_tkomv EXCEPTIONS OTHERS = 0.ENDFORM. CUSTSCR1_ITEM_SET_DATA_PAI上面的程序代碼非常簡單,相信聰明的讀者看了對ERP增強(qiáng)的設(shè)計(jì)思路會開始有一定了解。現(xiàn)在你可以通俗理解,增強(qiáng)就是ERP設(shè)計(jì)者在合適的地點(diǎn)設(shè)置了一些合適的游戲規(guī)則并提供了一些有意義的游戲給用戶自己玩耍!獨(dú)樂樂,與人樂樂,孰樂?好玩的東西應(yīng)該留點(diǎn)給用戶自己樂呵樂呵。接下來開始編寫增強(qiáng)程序,可以使用Tcode:SMOD直接激活增強(qiáng)或CMOD建立一個項(xiàng)目包含一個或多個增強(qiáng),如圖2,輸入增強(qiáng)MM06E005并激活它,然后在EXIT_SAPMM06E_017出口函數(shù)中編寫代碼。在圖2中,我們發(fā)現(xiàn)增強(qiáng)MM06E005包括用戶出口和屏幕增強(qiáng)(Screen Exit),屏幕增強(qiáng)允許用戶在采購訂單自定義用戶界面,從而使采購訂單包含更多企業(yè)客戶化的信息,這種屏幕增強(qiáng)在固定資產(chǎn)模塊中更始發(fā)揮到極致。EXIT_SAPMM06E_017包含程序ZXM06U42,程序ZXM06U42示例代碼如下表,這段客戶化代碼邏輯十分簡單,為了方便說明,本人注釋出該出口函數(shù)的輸入?yún)?shù),該出口沒有輸出參數(shù),也就是說,你只能根據(jù)輸入?yún)?shù)進(jìn)行判斷而不能更改任何數(shù)據(jù):*增強(qiáng) ZXM06U42的示例代碼*By Stone.Fu 2007/01/02*Lokale Schnittstelle:*IMPORTING/TABLES是輸入的單個參數(shù)和輸入的內(nèi)表參數(shù)* IMPORTING* VALUE(I_EKPO) LIKE EKPO STRUCTURE EKPO* VALUE(I_AKTYP)* VALUE(I_BSTYP) LIKE EKKO-BSTYP* VALUE(I_NO_SCREEN)* VALUE(I_LFA1) LIKE LFA1 STRUCTURE LFA1* VALUE(I_LFM1) LIKE LFM1 STRUCTURE LFM1* VALUE(I_EKKO) LIKE EKKO STRUCTURE EKKO* VALUE(I_REKPO) LIKE EKPO STRUCTURE EKPO OPTIONAL* VALUE(I_KEKPO) LIKE EKPO STRUCTURE EKPO OPTIONAL* VALUE(I_AEKPO) LIKE EKPO STRUCTURE EKPO OPTIONAL* VALUE(I_REBAN) LIKE EBAN STRUCTURE EBAN OPTIONAL* VALUE(I_MT06E) LIKE MT06E STRUCTURE MT06E OPTIONAL* VALUE(I_EINA) LIKE EINA STRUCTURE EINA OPTIONAL* VALUE(I_EINE) LIKE EINE STRUCTURE EINE OPTIONAL* VALUE(I_EKPO_OLD) LIKE EKPO STRUCTURE EKPO OPTIONAL* VALUE(I_KOMP) LIKE KOMP STRUCTURE KOMP OPTIONAL* VALUE(I_UCOMM) LIKE SY-UCOMM OPTIONAL* VALUE(I_ENJ_CALL) OPTIONAL* TABLES* TEKPO STRUCTURE BEKPO OPTIONAL* TEKET STRUCTURE BEKET OPTIONAL* TEKKN STRUCTURE EKKNU OPTIONAL* TKOMV STRUCTURE KOMV OPTIONAL*-*判斷程序代碼如下:DATA ZWATEKPO like BEKPO.TABLES EKBE .* 輸入的內(nèi)表參數(shù)TEKPO記錄該采購單所有的原始舊數(shù)據(jù) .* 輸入的I_EKPO 參數(shù)表示當(dāng)前處理的PO行項(xiàng)目,其包含的是采購行項(xiàng)目的最新更新數(shù)據(jù) .READ TABLE TEKPO INTO ZWATEKPO WITH KEY EBELP = I_EKPO-EBELP .*只對ME21N/22/23才生效.check SY-TCODE = ME22N or SY-TCODE = ME22N or SY-TCODE = ME23N .*EKBE是PO history 表,如有Q,R表示有發(fā)票校驗(yàn)歷史,不允許更改價(jià)#SELECT SINGLE_ * FROM EKBE WHERE EBELN = I_EKPO-EBELN AND EBELP = I_EKPO-EBELP AND ( BEWTP = Q OR BEWTP = R ) .*如果SY-SUBRC =0表示發(fā)票已經(jīng)校驗(yàn),不允許更改價(jià)格。CHECK SY-SUBRC = 0 .*判斷數(shù)據(jù)更改后新采購行項(xiàng)目的單價(jià)是否和從數(shù)據(jù)庫讀出的原始行項(xiàng)目單價(jià)一致IF I_EKPO-NETPR ZWATEKPO-NETPR . MESSAGE E001(00) with 采購訂單行項(xiàng)目已經(jīng)進(jìn)行發(fā)票校驗(yàn),不再允許修改價(jià)格ENDIF.如果你熟悉增強(qiáng),你會發(fā)現(xiàn)一些用戶出口都會傳入舊數(shù)據(jù)和更新后的新數(shù)據(jù)以方便兩者比較,和財(cái)務(wù)模塊的替代(Substitution)不同,ERP系統(tǒng)一般對增強(qiáng)保留嚴(yán)謹(jǐn)態(tài)度,通常只允許在出口中做檢查工作,這一點(diǎn)類似財(cái)務(wù)模塊的檢查(Validation)。(五)再次淺析增強(qiáng)企業(yè)實(shí)施ERP的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國進(jìn)板接駁臺市場分析及競爭策略研究報(bào)告
- 女兵聯(lián)誼活動方案
- 2025年證券研究報(bào)告發(fā)布業(yè)務(wù)卷:證券分析師核心技能與實(shí)操技巧解析
- 婚慶公司策劃花藝活動方案
- 如虎添翼活動方案
- 季度蛋糕活動方案
- 威海文明活動方案
- 學(xué)先進(jìn)活動方案
- 學(xué)子季手機(jī)活動方案
- 頭盔以舊換新活動方案
- 2025年陜西省中考數(shù)學(xué)試題(解析版)
- 北師大版7年級數(shù)學(xué)下冊期末真題專項(xiàng)練習(xí) 03 計(jì)算題(含答案)
- 小學(xué)生匯報(bào)講課件
- 黨課課件含講稿:《關(guān)于加強(qiáng)黨的作風(fēng)建設(shè)論述摘編》輔導(dǎo)報(bào)告
- GB/T 19023-2025質(zhì)量管理體系成文信息指南
- 多余物管理制度
- 2024北京朝陽區(qū)三年級(下)期末語文試題及答案
- 灌腸技術(shù)操作課件
- 電梯維保服務(wù)投標(biāo)方案
- 變電所10KV電流互感器更換標(biāo)準(zhǔn)化作業(yè)指導(dǎo)書
- 自拌混凝土施工方案(完整版)
評論
0/150
提交評論