在SAP/ERP項(xiàng)目的實(shí)施中銷售管理模塊(SD)的創(chuàng)建和修改發(fā)貨單(DN)經(jīng)常會(huì)遇到檢查校驗(yàn)的需求,來防止業(yè)務(wù)人員創(chuàng)建錯(cuò)誤的DN,SAP系統(tǒng)這方面的配置功能也非常強(qiáng)大,通常情況下不需要寫開發(fā)代碼,通過配置可以實(shí)現(xiàn)大部分需求,但是在實(shí)際項(xiàng)目中還是會(huì)遇到一些特殊的需求,不能通過配置實(shí)現(xiàn),需要進(jìn)行增強(qiáng)開發(fā)。 SAP系統(tǒng)這方面主要增強(qiáng)點(diǎn)有如下兩點(diǎn): 增強(qiáng)點(diǎn)1: 程序:MV50AFZ1 子例程(FORM): USEREXIT_SAVE_DOCUMENT_PREPARE. 增強(qiáng)點(diǎn)2: BADI: LE_SHP_DELIVERY_PROC 接口:IF_EX_LE_SHP_DELIVERY_PROC 方法: IF_EX_LE_SHP_DELIVERY_PROC~DELIVERY_FINAL_CHECK 這兩增強(qiáng)點(diǎn)主要用于創(chuàng)建或修改交貨單(DN)時(shí)候保存前的各種合規(guī)性的檢查和校驗(yàn)。 具體業(yè)務(wù)需求: 某公司的財(cái)務(wù)要求針對(duì)退貨的銷售訂單的DN,在做發(fā)貨過賬時(shí)候需要檢查對(duì)應(yīng)SO的成本價(jià)格是否為0,如果是0不允許發(fā)貨過賬。 具體增強(qiáng)開發(fā)邏輯: 通過交貨單行項(xiàng)目對(duì)應(yīng)的SO,在表VBAK中取到SO的訂單類型和價(jià)格條件記錄號(hào),然后再通過條件記錄號(hào)在表KONV里面取到銷售訂單的成本價(jià),然后判斷成本價(jià)是否為零,如果是零報(bào)錯(cuò)提示。 備注:KONV價(jià)格條件記錄表里面保存是SO里定價(jià)過程里各條件類型的價(jià)格,比如銷售價(jià)、成本價(jià)、稅、現(xiàn)金折扣等。 具體的增強(qiáng)實(shí)施步驟 1.創(chuàng)建BADI增強(qiáng)實(shí)施項(xiàng)目 輸入實(shí)施名稱點(diǎn)擊確認(rèn),繼續(xù)按如下步驟操作 如果正式開發(fā)環(huán)境需要選擇包,這里是學(xué)習(xí)系統(tǒng),不需要傳輸,所以選擇本地對(duì)象即可。繼續(xù)按如下步驟操作。 在下面的方法里面寫上具體的增強(qiáng)代碼 這里需要注意下:SY-UCOMM = 'WABU_T' ,這個(gè)表示點(diǎn)擊“發(fā)貨過賬”圖標(biāo)才觸發(fā)校驗(yàn)檢查,如果是發(fā)貨單創(chuàng)建和修改保存前檢查不需要這個(gè)條件。另外如果有開發(fā)批量的交貨單發(fā)貨過賬的功能,是捕捉不到這鼠標(biāo)點(diǎn)擊事件的,應(yīng)該會(huì)跳過這條件,所以需要在批量程序或增強(qiáng)程序中處理下。
增強(qiáng)實(shí)施后效果如下 往期相關(guān)文章薦讀: 1.SAP ERP系統(tǒng)SD模塊常用增強(qiáng)之一:VA01&VA02創(chuàng)建或修改SO的輸入檢查2.SAP ERP系統(tǒng)實(shí)施隱式增強(qiáng)中"聲明"和"代碼"的區(qū)別和用途介紹 3.通過一個(gè)例子介紹SAPSmartform的應(yīng)用及其技術(shù)細(xì)節(jié)和要點(diǎn) ABAP入門好書推薦: |
|