您好,登錄后才能下訂單哦!
如何使用SMOD和CMOD進行SD的用戶增強
1、關于增強的簡單介紹
1.1 SMOD包含具體的增強,而CMOD是包含一組SMOD編寫的增強.
1.2 User exits (Function module exits)是sap提供出口,它的命名規則如下:
EXIT_<program name><3 digit suffix>
示例:
sd的VA01事務,對應的程序是SAPMV45A ,你會在程序里查到(用CALL CUSTOMER-FUNCTION字符串)如下代碼:
CALL CUSTOMER-FUNCTION '003'
exporting
xvbak = vbak
xvbuk = vbuk
xkomk = tkomk
importing
lvf_subrc = lvf_subrc
tables
xvbfa = xvbfa
xvbap = xvbap
xvbup = xvbup.
則exit calls function module的名稱就是:EXIT_SAPMV45A_003
2、先試用SMOD建立一個SAP增強
2.1、選擇一個增強,如:SDVFX001 ,點擊修改,進入sap增強維護屏幕;
2.2、點擊“組件”按鈕,進入組件維護屏;
2.3、將光標移到“功能模塊名”,輸入模塊名,如:EXIT_SAPLV60B_001;
2.4、選擇“代碼修改”按鈕進入函數模塊;
2.5、雙擊函數模塊的包含單元,進入包含單元加入自定義代碼并激活保存;
3、使用CMOD建立增強項目
3.1、輸入自定義的項目名,點擊“創建”;
3.2、進入增強項目,選擇“配置增強”,進入增強配置屏幕;
3.3、輸入增強名如:SDVFX001
3.4、保存,并退出;
4、使用CMOD將增強項目激活,便大工告成。
如何查找
*判斷是否存在相應增強的定義(SMOD)
select single name from modsapa into mod0-name
where name = 'PPCO0002'.
if sy-subrc = 0.
endif.
select single * from tadir into ps_tadir_db
where pgmid = 'R3TR'
and object = 'SMOD'
and obj_name = 'PPCO0002'.
*判斷是否存在相應增強項目的定義(CMOD)
SELECT SINGLE name FROM MODATTR into mod0-name
WHERE NAME = 'PPCO0002'..
*提取增強的定義的組件 (可以用此反查增強定義)
select * from modsap
where name = 'PPCO0002'.
*判斷該增強是否移植到BADI實現
*Enhancement & has already been migrated in Business Add-In definition
select single migrated badi_def into (migrated, exit_name)
from modsapa where name = modname.
if sy-subrc = 0 and migrated = seex_true.
message s621 with modname exit_name.
check mode ne 'CHAM'.
endif.
MODTYP 類型:
E : 功能退出
S : 屏幕
T : 表
C : GUI代碼
SAP增強存在MODSAP表內
*獲取增強組件的參見函數MOD_SAP_MEMBER_TEXT
*獲得退出功能模塊的信息
select single * from tftit
where "SPRAS" = '1' AND "FUNCNAME" = 'EXIT_SAPLCORE_001'
if sy-subrc = 0.
endif.
*值得學習的函數
MOD_KUN_ACTIVATE(會操作相關報表)
https://mp.weixin.qq.com/s/aCzXtfJeT-QTTQvPl6Lz0g
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。