分享
SAPUserExit.pptx
下载文档

ID:5176

大小:1.61MB

页数:62页

格式:PPTX

时间:2023-01-04

收藏 分享赚钱
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
SAPUserExit
R3标准事务中无法满足用户独特的需求,需要做二次增强开发。目的:不需要修改R3标准事务代码就能增强R3的功能 当系统升级时,原有增强得以保留下来,不需要重新开发。什么是用户出口(User Exits)用户出口的分类 三代用户出口:第一代:固有的FM,需要修改R3代码,现已很少用。第二代:也是通过FM的方式。包括:A 功能模块出口(Function Module Exit)B 屏幕出口(Screen Exit)C 菜单出口(Menu Exit)D 字段出口(Field Exit)第三代:采用面向对象方式实现的出口(BADI)另:模块独有的出口(BTE会计模块专有,需要修改R3代码)出口的目的 功能出口(Function Exit)在标准事务运行中的某点添加业务逻辑。一般用于验证标准事务中的字段。屏幕出口(Screen Exit)为标准事务添加子屏幕。菜单出口(Menu Exit)使能或屏蔽标准事务的菜单栏。字段出口(Field exits)根据数据元素验证标准事务的某些屏幕字段。例子 事务码 CO11N.需求 添加一个新的子屏幕,让用户输入人力资源(HR)数据并保存倒标准数据库表中,然后在COOIS事务中展现出来。验证执行日期字段(Execution start date)不能超过从今天起的一个星期。CO11N Standard Screen Required Screen 寻找功能出口(Function Exit)首先取得标准事务对应的程序名称。然后到SE38,取得程序对应的包名。(Package Name)STEP I Tcode SMOD STEP II STEP III Dbl click STEP IV Dbl click STEP V Dbl click STEP VI STEP VII 另一个找功能出口的方法 转到SE38,输入程序名称,点击菜单utilities-find in source code 搜索Call customer 找到出口后双击进入。Press Enter Dbl click Required Screen Dbl Click Required Screen 然后转到SMOD进行搜索(见前面步骤Step I和步骤Step II)开发程序查找用户出口 使用已有程序查找出口,详见附件。怎样找屏幕出口 如上述STEP I和STEP II所示到SMOD找。Dbl click Click Here CMOD 字段出口(Field Exit)转到事务RZ10,在instance profile中检查abap/fieldexit参数是否为yes.然后转到标准事务,取得数据元素,屏幕名称,和屏幕号。转到SE38,执行RSMODPRF。STEP I Transaction code RZ10 Click STEP II Press Display Or Change Check the parameter value If it is not there create the new parameter Press 保存Profile后返回 现在返回标准事务,取得数据元素和屏幕名称,屏幕号。假设我们使用 CS03 Press Execute Execute Press create to create your function module and activate 现在再次回到SE38,执行RSMODPRF,但不输入数据元素。Execute BADI 寻找BADI的方法一 1、badi对象的信息存储在SXS_INTER,SXC_EXIT,SXC_CLASS 和SXC_ATTR 这四个表中(参见SECE包);2、sap程序都会调用cl_exithandler=get_instance来判断对象是否存在,并返回实例;其实get_instance就是对上述几个表和他们的视图(V_EXT_IMP 和 V_EXT_ACT)进行查询和搜索。3、基于这个机理,查用ST05来监控一个TCODE来跟踪,然后选择查找有关上述几个表和视图的操作,就可获得相关BADI。BADI 寻找BADI的方法二 1.使用SE24进入Class Builder。2.查看对象CL_EXITHANDLER,进入其get_instance方法。3.对get_class_name_by_interface设置断点。4.Debug需要增强的事务,在断点处查看class_name即可找到对应的BADI 注意事项 一个出口可能被多个事务调用,请注意指定被哪个事务调用。注意出口的参数是否满足业务需求,如果参数不满足要求,请继续寻找下一个出口。请注意出口执行的时间点。演讲完毕,谢谢观看!

此文档下载收益归作者所有

下载文档
收起
展开