|
作者:黃慧珠
SAP標準系統功能增強
SAP ERP系統為企業營運提供了廣泛多元的功能結構,但企業為了使商業流程合理化難免會需要修改原廠標準,而SAP也為此提供了特定環境讓客戶做增強、修改或減少部份功能。
其中Enhancement (增強) 允許我們在不需要維護原標準程式的情況下增加自己需要的功能。此外,SAP也在標準系統的一些特定程式、畫面和功能選單中開發了不少內容為空的Customer exits,用來保留給客戶自行開發,以因應產業差異或內部管控等產生的需求。這些Customer exits就好像是SAP主體上的掛鉤,允許客戶將自己的程式功能掛上,所以也有人將這些Enhancement、Customer exits、user exits 稱為外掛。
Function Module Exits
然而SAP系統中不是所有的程式和畫面都允許外掛功能,只有那些已經存在於標準系統的外掛接點才能進一步開發。而SAP的功能模組外掛 (function module exit) 有其特殊的命名規則 EXIT_<程式名稱><三碼數字> ,這讓我們可以很容易地在每支標準程式找到可以使用的外掛。
另外,在標準程式中用來呼叫這些外掛的方式為 CALL CUSTOMER.-FUNCTION <三碼數字>。舉例來說,建立訂單 (交易代碼VA01) 的程式名稱為SAPMV45A,則我們可以在其中找到以下程式:
CALL CUSTOMER-FUNCTION '003'
exporting
xvbak = vbak
xvbuk = vbuk
xkomk = tkomk
importing
lvf_subrc = lvf_subrc
tables
xvbfa = xvbfa
xvbap = xvbap
xvbup = xvbup.
其對應的功能模組名稱即為 “EXIT_SAPMV45A_003”
除了以上方式,我們也可以直接進入交易CMOD的畫面,在路徑Utillities->SAP Enhancements 輸入已知的外掛名稱,並找到此外掛下的所有功能模組外掛。
SAP Enhancements專案管理
在SAP系統中開發外掛功能時,並非把程式碼直接寫到功能模組中,而是寫在功能模組所執行的Include程式。在這種層層架構中為了便於讓客戶管理及維護這些自行開發的enhancement及exit,SAP還提供了專案管理的介面讓用戶可以組織這些外掛使之井然有序。
在下面的例子中,我們建立了一個專案來增強VA01建立訂單的功能:
1. 首先,進入CMOD的交易畫面新增一個專案名稱為ZVA01,選擇Enhancement Assignment後按下<更改>,在第一欄輸入Enhancement名稱:V45A0002 (預先定義銷售文件的買方)後做<儲存>。
2. 然後點選<元件>進入元件畫面後我們可以看到名稱為EXIT_SAPMV45A_002 的功能模組外掛,雙擊該名稱後便會進到該功能模組畫面。再雙擊Include程式-ZXVVAU04,加入以下程式:E_KUNNR = '2155'.
3. 最後啟動此Include程式,再回到CMOD啟動專案。現在當我們用VA01建立訂單時,系統就會自動帶出買方'2155'
這樣的系統架構的好處是,透過SAP enhancement專案管理的介面讓我們可以有條序地管理外掛功能,而且當我們新增功能時不會動到標準程式的原始碼。這些由客戶自行開發的程式或畫面都是獨立的物件個體,這使得我們在做系統版本升級或進行系統修正時不會受到外掛的影響,更不必擔心因系統更新造成外掛需要重寫或無法使用的問題,因為SAP保證了系統兼容並蓄的特性。
|