SAP用户出口(exit)问题--数据源增强
SAP用戶出口(exit)問(wèn)題
數(shù)據(jù)源增強(qiáng)
sap的用戶出口總共有三代:
第一代
sap提供一個(gè)空代碼的子過(guò)程,在這個(gè)子過(guò)程中用戶可以添加自己的代碼,控制自己的需求。這類增強(qiáng)都需要修改sap的標(biāo)準(zhǔn)代碼。
示例:USEREXIT.. in SAPMV45A
對(duì)于第一代增強(qiáng),可以用以下方法查找增強(qiáng):打開(kāi)欲增強(qiáng)的程序,點(diǎn)擊工具欄上的“Display Object List”按鈕,選擇Subroutines,查找以“UserExit”開(kāi)頭的子程序,根據(jù)子程序前面的注釋文檔來(lái)查找用戶出口
第二代
sap提供的是CUSTOMER-FUNCTION,它是通過(guò)SMOD和CMOD完成實(shí)現(xiàn)。
對(duì)于第二代增強(qiáng),可以用以下方法查找增強(qiáng)用戶增強(qiáng)通常包括下面3類,顧名思義,就是增強(qiáng)SAP的可能沒(méi)有提供的功能(通過(guò)后臺(tái)配置也不能實(shí)現(xiàn)).
1.E Enhancement exits :就是常說(shuō)User_exit (用戶出口)
使用SE37搜索EXIT*的函數(shù)大都是做exit用的,通常里面預(yù)包含了一個(gè)Z開(kāi)頭
的程序. SE16查詢TFDIR(函數(shù)表)輸入EXIT*也可.
2.C GUI codes( GUI接口增強(qiáng))
3. S Subscreens (屏幕增強(qiáng))
Enhancement在表MODSAP可看到,而TFDIR字段 MAND(值為C表示此出口函數(shù)被激活).使用SMOD(CMOD)當(dāng)然可激活exit function,有時(shí)候一時(shí)難以查詢到相關(guān)Enhancement時(shí)可使用下面程序?qū)⒊隹诤瘮?shù)激活.
REPORT Zactexitfun .
data ztfdir like tfdir .
* select single * from tfdir into ztfdir
* where FUNCNAME =
* 'EXIT_SAPMM06E_013'.
* ztfdir-MAND = 'C' .
* update tfdir from ztfdir.
* 將EXIT_SAPMM06E_013換成實(shí)際所需exit函數(shù)名
update tfdir set MAND = 'C'.
where FUNcname = 'EXIT_SAPMM06E_013'.
***當(dāng)然也可SE16:MODSAP表enhancement輸入EXIT_SAPMM06E_013然后得到enhancement name MM06E005后使用SMOD測(cè)試激活exit函數(shù).
增強(qiáng)相關(guān)函數(shù)和表格
Function:
[1].DYNP_VALUES_READ
[2]. MODX_ALL_ACTIVE_MENUENTRIES(菜單增強(qiáng))
[3].MODX_FUNCTION_ACTIVE_CHECK(出口函數(shù)增強(qiáng))
由于讀者可能接觸user exit最多,除了附錄光盤有個(gè)查找ZFINDEXIT的程序外(有些exit使用它并不能找到),另一個(gè)直接有效的方法就是使用這個(gè)函數(shù),SE37設(shè)好斷點(diǎn)后執(zhí)行tcode如其有exit就會(huì)調(diào)用此函數(shù).
[4].MODX_MENUENTRY_ACTIVE_CHECK(菜單增強(qiáng))
[5].MODX_SUBSCREEN_ACTIVE_CHECK(屏幕增強(qiáng))
Table:
[1]. TFDIR->function module table
[2]. MODSAP->sap enhancement table
[3]. TSDIR->Dynpro Areas CALL CUSTOMER SUBSCREEN(屏幕增強(qiáng))
[4]. CUATEXTS-> GUI Interface: Menu Texts Changed(GUI 菜單文本增強(qiáng))
***注意,為了確保一個(gè)出口被真正應(yīng)用,必須同時(shí)激活相關(guān)程序(SE38)和出口函數(shù)(SMOD|CMOD,反正就是要保證tfdir-mandt=’C’,用程序也可.)
第三代
sap提供的第三代的用戶出口就是BADI,他的調(diào)用方式是CALL METHOD (instance),(相關(guān)的TCODE是SE18和SE19),可以通過(guò)EXIT_HANDLER這個(gè)單詞查找BADI。
轉(zhuǎn)載于:https://www.cnblogs.com/hanmos/archive/2012/07/26/2610543.html
總結(jié)
以上是生活随笔為你收集整理的SAP用户出口(exit)问题--数据源增强的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如何在内核里面查找某些结构体或者宏的定义
- 下一篇: ant 合并 jar