SAP VA01銷售訂單標(biāo)準(zhǔn)功能邏輯增強(qiáng)_第1頁(yè)
SAP VA01銷售訂單標(biāo)準(zhǔn)功能邏輯增強(qiáng)_第2頁(yè)
SAP VA01銷售訂單標(biāo)準(zhǔn)功能邏輯增強(qiáng)_第3頁(yè)
SAP VA01銷售訂單標(biāo)準(zhǔn)功能邏輯增強(qiáng)_第4頁(yè)
SAP VA01銷售訂單標(biāo)準(zhǔn)功能邏輯增強(qiáng)_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1、VA01/VA02/VA03標(biāo)準(zhǔn)功能邏輯增強(qiáng)實(shí)例目的:在VA01創(chuàng)建銷售訂單時(shí),輸入物料、工廠、批次(不輸數(shù)量)后通過回車鍵提示可用庫(kù)存,當(dāng)輸入數(shù)量時(shí)則校驗(yàn)數(shù)量是否超過可用庫(kù)存。說明:需要找到光標(biāo)在批次處按回車后的事件處理位置。涉及內(nèi)容:第四代增強(qiáng)(Framework)。1.1 VA01通過DEBUG找到可增強(qiáng)點(diǎn)第四代增強(qiáng)一個(gè)難點(diǎn)就是先找到需增強(qiáng)位置(如銷售訂單行項(xiàng)目中的訂單數(shù)量)所以對(duì)應(yīng)的屏幕,然后在屏幕流中進(jìn)行DEBUG,找到能夠?qū)υ鰪?qiáng)位置進(jìn)行 邏輯控制的可增強(qiáng)點(diǎn),通??稍鰪?qiáng)點(diǎn)有多個(gè)。也就是說要能夠?qū)崿F(xiàn)第四代增強(qiáng),需要一定的DEBUG能力。1.1.1 通過業(yè)務(wù)操作找到增強(qiáng)點(diǎn)所在屏幕步驟

2、如下:1、T-CODE:VA01進(jìn)入創(chuàng)建銷售訂單初始界面,輸入訂單類型等信息(具體可咨詢業(yè)務(wù)顧問),然后回車,如圖1.1.1-1:圖1.1.1-1說明:a、回車后進(jìn)入銷售訂單創(chuàng)建界面。2、在銷售訂單創(chuàng)建界面中,將光標(biāo)放置在需要進(jìn)行邏輯控制的字段處,該實(shí)例是對(duì)訂單數(shù)量字段進(jìn)行邏輯處理,所以將光標(biāo)放置在訂單數(shù)量處,如圖1.1.1-2:圖1.1.1-23、光標(biāo)在訂單數(shù)量時(shí)按“F1”鍵,彈出高級(jí)助手窗口,如圖1.1.1-3:圖1.1.1-34、圖1.1.1-3中點(diǎn)擊“技術(shù)信息”按鈕,彈出技術(shù)信息窗口,如圖1.1.1-4:圖1.1.1-4說明:a、圖中可以看出訂單數(shù)量對(duì)應(yīng)的程序是"SAPMV4

3、5A",對(duì)應(yīng)的屏幕號(hào)"4900",對(duì)應(yīng)表結(jié)構(gòu)"RV45A",對(duì)應(yīng)表結(jié)構(gòu)字段名稱"KWMENG"。到這里,屏幕號(hào),字段對(duì)應(yīng)的表都找到了。1.1.2 在屏幕流中找到可增強(qiáng)點(diǎn)在程序中找到可增強(qiáng)點(diǎn)是指在程序中找到一個(gè)位置將增強(qiáng)的代碼放在那,執(zhí)行增強(qiáng)代碼后會(huì)將代碼的控制邏輯進(jìn)行生效。而找到增強(qiáng)點(diǎn)的邏輯則是通過設(shè)置斷點(diǎn),然后在斷點(diǎn)處進(jìn)行變量賦值(假設(shè)的值),繼續(xù)執(zhí)行后假設(shè)的值符合需求,則假設(shè)值的那個(gè)點(diǎn)就是可以進(jìn)行增強(qiáng)的位置,就可考慮在那個(gè)位置進(jìn)行增強(qiáng)。另外,可增強(qiáng)的點(diǎn)可能有多個(gè),具體選擇根據(jù)業(yè)務(wù)進(jìn)行盡可能的找到最合適的增強(qiáng)點(diǎn)。查找增強(qiáng)點(diǎn)

4、的步驟如下:1、圖1.1.1-4中雙擊屏幕號(hào)"4900",進(jìn)入程序"SAPMV45A"的屏幕"4900"的邏輯流界面,如圖1.1.2-1:圖1.1.2-1說明:a、在屏幕的邏輯流中如何找到增強(qiáng)點(diǎn)是第四代增強(qiáng)的一大難點(diǎn),本練習(xí)介紹的方法就是:根據(jù)邏輯流中MODULE的名字進(jìn)行大概理解,然后在方法中進(jìn)行斷點(diǎn)嘗試;b、因?yàn)楸揪毩?xí)是通過按回車鍵來觸發(fā)邏輯控制,所以首先考慮斷點(diǎn)的設(shè)置是在PAI中;c、因?yàn)橛唵螖?shù)量是在行項(xiàng)目中,也就是跟VBAP(銷售憑證:項(xiàng)目數(shù)據(jù))表相關(guān),所以優(yōu)先考慮MODULE名跟VBAP相關(guān)的MODULE進(jìn)行斷點(diǎn)設(shè)置,如果沒

5、有相關(guān)的就只能一個(gè)一個(gè)MODULE進(jìn)行斷點(diǎn)設(shè)置;d、根據(jù)業(yè)務(wù)操作分析可設(shè)置斷點(diǎn)的位置。2、根據(jù)步驟1中的說明,首先考慮業(yè)務(wù)操作中會(huì)有的提示,在VA01中,如果行項(xiàng)目中不輸入數(shù)量,在輸入批次后回車,提示輸入數(shù)量信息,如圖1.1.2-2:圖1.1.2-2說明:a、由圖可以考慮在彈出訂單數(shù)量提示窗口之前就提示可使用庫(kù)存;b、如果未找到像圖中顯示的可以選擇的位置,則根據(jù)第一步的說明使用別的方法繼續(xù)查找。3、由第二步可知,需要在提示輸入訂單數(shù)量的警告之前就彈出增強(qiáng)需要的提示信息,那么就要找到程序在何處彈出提示輸入訂單數(shù)量的警告,那么就進(jìn)入到表格所在的屏幕,在屏幕流中進(jìn)行斷點(diǎn)設(shè)置,因?yàn)橛|發(fā)的是回車事件,所

6、以優(yōu)先考慮在屏幕的PAI中進(jìn)行斷點(diǎn)設(shè)置,如圖1.1.2-3:圖1.1.2-34、首先,在第一個(gè)MODULE中的第一個(gè)方法中設(shè)置斷點(diǎn),也可以放在最后一個(gè)方法中,具體位置看個(gè)人習(xí)慣,如圖1.1.2-4:圖1.1.2-45、新開窗口,重新進(jìn)行銷售訂單創(chuàng)建,維護(hù)常規(guī)訂單需要維護(hù)的信息(但不輸入數(shù)量),然后在行項(xiàng)-批次字段處輸入批次后按回車,觀察是否有提示“輸入訂單數(shù)量”信息,如果沒有提示,則程序會(huì)執(zhí)行到斷點(diǎn)處,如圖1.1.2-5:圖1.1.2-5說明:a、圖中可以看出,程序執(zhí)行到了屏幕PAI的第一MODULE中的第一個(gè)方法出,但創(chuàng)建銷售訂單界面沒有出現(xiàn)“輸入訂單數(shù)量”警告,也就說明了出發(fā)警告的代碼在第

7、一個(gè)MODULE的第一個(gè)方法以后,那為了提高調(diào)試效率,就在PAI的第二個(gè)MODULE的第一個(gè)方法出再設(shè)置斷點(diǎn),然后在DEBUG界面執(zhí)行“F8”,繼續(xù)往下執(zhí)行,如果在執(zhí)行到下一個(gè)斷點(diǎn)處之前就提示了“輸入訂單數(shù)量”的警告,則說明警告的觸發(fā)代碼在第一個(gè)MODULE的第一個(gè)方法到第二個(gè)MODULE的第一個(gè)方法之間(已縮小查找范圍),進(jìn)而再重新創(chuàng)建訂單,并在第一個(gè)MODULE和第二個(gè)MODULE之間的方法中逐一進(jìn)行斷點(diǎn)設(shè)置,進(jìn)行調(diào)試,直至找到觸發(fā)警告的代碼處(如果多層方法調(diào)用,同理進(jìn)行斷點(diǎn)設(shè)置);而若是不在第二個(gè)MODULE的第一個(gè)方法之前,則在第三個(gè)MODULE中進(jìn)行斷點(diǎn)設(shè)置,直至找到觸發(fā)警告的代碼。

8、6、經(jīng)過第五步的循環(huán)操作,直至找到增強(qiáng)點(diǎn)位置,本練習(xí)的增強(qiáng)點(diǎn)位置位于圖1.1.2-6中:圖1.1.2-6如此,增強(qiáng)點(diǎn)的位置就找到了。下一章將介紹如何實(shí)現(xiàn)第四代增強(qiáng)。1.2 SE38(或SE80)進(jìn)行邏輯增強(qiáng)在1.1.2中已經(jīng)找到增強(qiáng)點(diǎn)的位置,接下來這一節(jié)就介紹如何通過增強(qiáng)實(shí)現(xiàn)行項(xiàng)目可用數(shù)量提示信息。1.2.1 創(chuàng)建增強(qiáng)1、將光標(biāo)置于需要增強(qiáng)的位置,如圖1.2.1-1:圖1.2.1-12、將光標(biāo)放置在需增強(qiáng)位置,然后點(diǎn)擊“增強(qiáng)”按鈕,如圖1.2.1-2:圖1.2.1-2說明:a、點(diǎn)擊“增強(qiáng)”按鈕后才能進(jìn)行增強(qiáng)創(chuàng)建、修改、撤銷等等操作。3、點(diǎn)擊增強(qiáng)按鈕后,選擇“編輯->增強(qiáng)操作->顯示

9、隱式增強(qiáng)選項(xiàng)”菜單顯示隱式增強(qiáng)選項(xiàng),如圖1.2.1-3:圖1.2.1-34、選擇“顯示隱式增強(qiáng)選項(xiàng)”菜單后,從需增強(qiáng)的位置往前找,直至找到一個(gè)箭頭(箭頭指向處可以實(shí)施增強(qiáng))(如果找不到,則往前一個(gè)方法進(jìn)行嘗試),如圖1.2.1-4:圖1.2.1-45、將光標(biāo)放置在箭頭指向的行中,然后選擇“創(chuàng)建實(shí)施”,如圖1.2.1-5:圖1.2.1-56、本練習(xí)增強(qiáng)選擇“代碼”增強(qiáng)類型,如圖1.2.1-6:圖1.2.1-67、點(diǎn)擊“新建”按鈕創(chuàng)建增強(qiáng)的名稱,如圖1.2.1-7:圖1.2.1-78、輸入增強(qiáng)的名稱及描述,然后打鉤,如圖1.2.1-8:圖1.2.1-89、創(chuàng)建了增強(qiáng)后選中,然后打鉤,如圖1.2.1

10、-9:圖1.2.1-910、成功創(chuàng)建增強(qiáng),增強(qiáng)名稱為自定義增強(qiáng)名稱,如圖1.2.1-10:圖1.2.1-10到此就成功了創(chuàng)建了增強(qiáng)。1.2.2 增強(qiáng)邏輯設(shè)計(jì)上一節(jié)已經(jīng)創(chuàng)建了增強(qiáng),這一節(jié)就介紹增強(qiáng)的邏輯設(shè)計(jì)(具體根據(jù)實(shí)際業(yè)務(wù)需求而定)。1、增強(qiáng)代碼如下:ENHANCEMENT 2  ZSD_SO_ITEM_CHECK1.    "active version  IF SY-TCODE = 'VA01' and sy-DYN

11、NR = '4900'.    DATA WA_MCHB LIKE MCHB.    DATA ZCLABS TYPE STRING.    DATA ZMATNR TYPE STRING.    DATA MSG1 TYPE STRING.   

12、60;IF ( VBAP-KWMENG = 0 OR VBAP-KWMENG IS INITIAL )      AND VBAP-MATNR IS NOT INITIAL      AND VBAP-WERKS IS NOT INITIAL     

13、0;AND VBAP-CHARG IS NOT INITIAL.      CLEAR WA_MCHB.      SELECT SINGLE * FROM MCHB INTO WA_MCHB        WHERE WERKS = VBAP-WERKS&#

14、160;       AND MATNR = VBAP-MATNR        "AND LGORT = WA_VBAP-LGORT        AND CHARG = VBAP-CHARG.      &

15、#160; ZCLABS = WA_MCHB-CLABS.      ZMATNR = VBAP-MATNR.      SHIFT ZMATNR LEFT DELETING LEADING '0'.      CLEAR MSG1.     

16、 CONCATENATE '物料/批次(' ZMATNR '/' VBAP-CHARG ')有可用庫(kù)存' ZCLABS VBAP-MEINS '.' INTO MSG1.      MESSAGE W000(001) WITH MSG1.    ENDIF.   &

17、#160;IF VBAP-WERKS > 0      AND VBAP-MATNR IS NOT INITIAL      AND VBAP-KWMENG IS NOT INITIAL      AND VBAP-CHARG IS NOT INITIAL.

18、60;     CLEAR WA_MCHB.      SELECT SINGLE * FROM MCHB INTO WA_MCHB        WHERE WERKS = VBAP-WERKS        AND 

19、MATNR = VBAP-MATNR        "AND LGORT = WA_VBAP-LGORT        AND CHARG = VBAP-CHARG.        ZCLABS = WA_MCHB-CLABS.  

20、;      ZMATNR = VBAP-MATNR.        SHIFT ZMATNR LEFT DELETING LEADING '0'.        IF VBAP-KWMENG > WA_MCHB-CLABS.  

21、0;       CLEAR MSG1.          CONCATENATE '物料/批次(' ZMATNR '/' VBAP-CHARG ')可用庫(kù)存為' ZCLABS VBAP-MEINS '.' INTO MSG1.          MESSAGE E000(001) 

溫馨提示

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

評(píng)論

0/150

提交評(píng)論