资源描述:
《sap abap 屏幕增强》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、11.编写用户增强 用户增强通常包括下面3类,顾名思义,就是增强SAP的可能没有提供的功能(通过后台配置也不能实现). 1.EEnhancementexits:就是常说User_exit(用户出口) 使用SE37搜索EXIT*的函数大都是做exit用的,通常里面预包含了一个Z开头 的程序.SE16查询TFDIR(函数表)输入EXIT*也可. 2.CGUIcodes(GUI接口增强) 3.SSubscreens(屏幕增强) Enhancement在表MODSAP可看到,而TFDIR字段MAND(值为C表示此出口函数
2、被激活).使用SMOD(CMOD)当然可激活exitfunction,有时候一时难以查询到相关Enhancement时可使用下面程序将出口函数激活. REPORTZactexitfun. dataztfdirliketfdir. *selectsingle*fromtfdirintoztfdir *whereFUNCNAME= *'EXIT_SAPMM06E_013'. *ztfdir-MAND='C'. *updatetfdirfromztfdir. *将EXIT_SAPMM06E_013换成实际所需exi
3、t函数名 updatetfdirsetMAND='C'. whereFUNcname='EXIT_SAPMM06E_013'. ***当然也可SE16:MODSAP表enhancement输入EXIT_SAPMM06E_013然后得到enhancementnameMM06E005后使用SMOD测试激活exit函数. 增强相关函数和表格 Function: [1].DYNP_VALUES_READ [2].MODX_ALL_ACTIVE_MENUENTRIES(菜单增强) [3].MODX_FUNCTION_A
4、CTIVE_CHECK(出口函数增强) 由于读者可能接触userexit最多,除了附录光盘有个查找ZFINDEXIT的程序外(有些exit使用它并不能找到),另一个直接有效的方法就是使用这个函数,SE37设好断点后执行tcode如其有exit就会调用此函数. 如图2-11-1是运行MIGO时的一个截图,表示相关exit被激活. 4].MODX_MENUENTRY_ACTIVE_CHECK(菜单增强) [5].MODX_SUBSCREEN_ACTIVE_CHECK(屏幕增强) Table: [1].TFDIR->fun
5、ctionmoduletable [2].MODSAP->sapenhancementtable [3].TSDIR->DynproAreasCALLCUSTOMERSUBSCREEN(屏幕增强) [4].CUATEXTS->GUIInterface:MenuTextsChanged(GUI菜单文本增强) ***注意,为了确保一个出口被真正应用,必须同时激活相关程序(SE38)和出口函数(SMOD
6、CMOD,反正就是要保证tfdir-mandt=’C’,用程序也可.) 关于增强中的userexit,在实战篇中会有更多详细
7、的例子. 找屏幕增强有很多方法,读者可从SE16:TSDIR中找寻,或者CMOD菜但utilities(M)->SAPEnhancements搜寻出所有的exitname,然后在搜寻结构中再输入’screen’关键字(通常在shorttext描述)一般能找到一些SAP预留的屏幕增强. 下面以建立PO举个实例介绍什么是屏幕增强. 如图2-11-2,很简单,SE38输入SAPMM06E. SAPMM06E可看成专为PO增强的一个modulepool,可以增强的subscreenno一般还有0101,0111,0201,0211,
8、0301,0311(增强的子屏作用读者可从描述中就知). SAPLXM06实际上包含四个include,INCLUDELXM06TOP(GlobalData在此为增强定义globaldata),INCLUDELXM06UXX.(FunctionModules实际上包含所有可用的userexit),INCLUDELXM06F00.(SAP-FormpoolforCustomer-Use可在此建立Formpool),INCLUDEZXM06ZZZ.(SubprogramsandModules,在此建立增强子屏) 在include程序ZX
9、M06ZZZ中加入如下代码. *&---------------------------------------------------------- *&Include