iT邦幫忙

2024 iThome 鐵人賽

DAY 18
0
佛心分享-IT 人自學之術

從0開始的ABAP之旅 系列 第 18

Day 18 SAP中的外掛-增強Enhancement介紹

  • 分享至 

  • xImage
  •  

Hi 大家好
今天要來介紹SAP中的增強(Enhancement),
增強可以說是SAP中的一種外掛,
也就是在標準程式上進行二次開發,
根據公司的業務需求加上邏輯,
增強的好處是可以避免修改到標準程式。

舉例:我們希望建立訂單時當訂單類型為維修訂單時,統一不收銷售稅,
但SAP標準程式沒有IMG可以做設定,
這時就可以透過增強程式加上我們要的邏輯。

增強的種類

1.User exit

主要是通過修改預留的FORM函數模塊來實現。這些函數模塊通常會包含在 SAP 標準程式中,並允許用戶在指定的點進行自定義開發。

透過SPRO查找:Control+F 搜尋USER EXIT
https://ithelp.ithome.com.tw/upload/images/20241002/20169147s98ulCDatV.png

透過SE80查找
以VA01建立訂單為例
https://ithelp.ithome.com.tw/upload/images/20241002/20169147mG3csjR11x.png
右下角可以看到標準Program名稱為SAPMV45A

進入T-CODE:SE80 輸入程式名稱
https://ithelp.ithome.com.tw/upload/images/20241002/20169147zpMBVgKC2n.png
程式名稱為USEREXIT開頭的就是增強FUNCTION

2.Customer EXIT

Customer Exits 是 SAP 提供的一種更靈活的增強方式,允許客戶在 SAP 標準程序中插入自己的代碼

查找方式
進入SE37用MODX_FUNCTION_ACTIVE_CHECK
https://ithelp.ithome.com.tw/upload/images/20241002/201691475htYIt08Wp.png
在Function開始處打上斷點,
之後執行我們要的t-code,
如果有進入debug模式就是有進入增強,
只要看l_funcname就可以知道增強的函數名稱。

查函數屬於哪個SMOD

TABLE:MODSAP
https://ithelp.ithome.com.tw/upload/images/20241002/20169147S6zTTFQokU.png
在第三個欄位填入我們剛查到的函數名稱,
https://ithelp.ithome.com.tw/upload/images/20241002/20169147ia0LyVw2vg.png
就可以找到隸屬於哪個SMOD

修改增強代碼

在SMOD可以查詢到增強的函數,
但是沒有辦法直接修改,

需要透過T-CODE:CMOD
創建一個增強Project
https://ithelp.ithome.com.tw/upload/images/20241002/20169147G3HlZDMx9c.png

https://ithelp.ithome.com.tw/upload/images/20241002/20169147SdEtdSnG8b.png
並將smod的增強分配給這個Project
就可以進入對應的函數去做開發跟修改了!

以上是今天的分享


上一篇
Day 17 如何建立客製table & 插入資料
下一篇
Day 19 SAP中物件導向的增強技術 BADI
系列文
從0開始的ABAP之旅 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言