天天看點

SAP 增強學習(1):一代增強 USER EXIT

程式:MV45AFZZ

下面以建立銷售訂單(VA01)内的一代增強為例,當選擇某些指定的銷售訂單的類型時,PO NUMBER變成必輸項。。

介紹

SAP的一代增強我稱之為USER EXIT(使用者出口),從字面上也很好了解,就是SAP在标準的程式中有預留了一些給使用者後續增加新功能的出口USER EXIT。我們就在這些地方寫代碼來實作我們需要的功能。如下圖,一代在程式中是以CALL CUSTOMER-FUNCTION+編号差別的。

SAP 增強學習(1):一代增強 USER EXIT
而在SE37中通過EXIT_主程式名(這裡是SAPMV45A)_編号(這裡是002)來查詢,如下圖
SAP 增強學習(1):一代增強 USER EXIT
然後就在INCLUDE内寫代碼就好了,需要注意的是一代增強相當于是在改SAP的标準程式,是以是會需要開發KEY的!
SAP 增強學習(1):一代增強 USER EXIT

學習的步驟:

首先要使PO NUMBER變為必輸項,必須要知道要在什麼地方寫增強,這就是寫一代增強的第一步也是最難的一部。這裡通過SPRO(背景配置)來找,在下圖使用者出口下的那些就是有可能是我們要寫增強的地方了。

SAP 增強學習(1):一代增強 USER EXIT
通過檢視描述來初步确定我們的需求是在哪個程式中的
SAP 增強學習(1):一代增強 USER EXIT
也可以在開發類VMOD内直接查找,VMOD類下的包含内的程式都是上圖中的那些增強的程式。是一樣的。
SAP 增強學習(1):一代增強 USER EXIT

根據描述找到我們需要些代碼的程式名MV45AFZZ

在USEREXIT_SAVE_DOCUMENT_PREPARE(通過名字也可以看出是儲存前的操作)内寫代碼

SAP 增強學習(1):一代增強 USER EXIT

需要注意的是,寫增強的時候最好是先加上類似上圖的第一個IF語句,這樣的話隻有開發人員自己才會觸發這個增強,其他的員工進行這個操作時并不會受到影響。這樣不會導緻自己在寫這個增強的時候别人用不了這個程式或者相應的事務碼。

學習心得:一代增強現在用的很少了,因為他的需求隻能在固定的程式内去實作,意味着開發人員的工作量會很大,而且局限性也很大。比如說它隻支援系統的标準的程式。有些需求如果系統開發人員本身也沒考慮到的話也沒法實作。

容易的地方: 寫代碼的邏輯、流程完全和寫普通的程式類似。

難點:找增強點困難。

作者:ChasingWithWind

來源:CSDN

原文:

https://blog.csdn.net/huanglin6/article/details/81353657

版權聲明:本文為部落客原創文章,轉載請附上博文連結!

繼續閱讀