用户出口-GUI接口增强-屏幕增强 11.编写用户增强 用户增强通常包括下面3类,顾名思义,就是增强SAP的可能没有提供的功能(通过后台配置也不能实现). 1.E Enhancement exits :就是常说User_exit (用户出口) 使用SE37搜索EXIT*的函数大都是做exit用的,通常里面预包含了一个 Z开头 的程序. SE16查询 TFDIR(函数表)输入 EXIT*也可. 2.C GUI codes( GUI接口增强) 3. S Subscreens (屏幕增强) Enhancement在表 MODSAP可看到,而 TFDIR字段 MAND(值为 C表示此出口函数被激活).使用SMOD(CMOD)当然可激活 exit function,有时候一时难以查询到相关 Enhancement时可使用下面程序将出口函数激活. 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换成实际所需 exit函数名 update tfdir set MAND = 'C'. where FUNcname = 'EXIT_SAPMM06E_013'. ***当然也可SE16:MODSAP表 enhancement输入 EXIT_SAPMM06E_013然后得到 enhancement name MM06E005后使用SMOD测试激活 exit函数. 增强相关函数和表格 Function: [1].DYNP_VALUES_READ [2]. MODX_ALL_ACTIVE_MENUENTRIES(菜单增强) [3].MODX_FUNCTION_ACTIVE_CHECK(出口函数增强) 由于读者可能接触user exit最多,除了附录光盘有个查找ZFINDEXIT的程序外(有些exit使用它并不能找到),另一个直接有效的方法就是使用这个函数,SE37设好断点后执行 tcode如其有exit就会调用此函数. 如图 2-11-1是运行 MIGO时的一个截图,表示相关 exit被激活. 4].MODX_MENUENTRY_ACTIVE_CHECK(菜单增强) [5].MODX_SUBSCREEN_ACTIVE_CHECK(屏幕增强) Table: [1]. TFDIR->function module table [2]. MODSAP->sap enhancement table [3]. TSDIR->Dynpro Areas CALL CUSTOMER SUBSCREEN(屏幕增强) [4]. CUATEXTS-> GUI Interface: Menu Texts Changed(GUI 菜单文本增强) ***注意,为了确保一个出口被真正应用,必须同时激活相关程序(SE38)和出口函数(SMOD|CMOD,反正就是要保证tfdir-mandt=’C’,用程序也可.) 关于增强中的 user exit,在实战篇中会有更多详细的例子. 找屏幕增强有很多方法,读者可从 SE16:TSDIR中找寻,或者 CMOD...