前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >查询出口增强

查询出口增强

作者头像
古道无仙
发布2021-03-11 11:42:38
7060
发布2021-03-11 11:42:38
举报
文章被收录于专栏:叕鰦座叕鰦座

SAP 中如何寻找增强

SAP增强已经发展过几代了,可参考SAP标准教材 BC425和BC427 简单说SAP的用户出口共有四代。

1、第一代,基于源代码的增强

SAP提供一个空代码的子过程,在这个子过程中用户可以添加自己的代码,控制自己的需求。这类增强要修改 SAP的标准代码。

示例:USEREXIT_ in SAPMV45A

源代码增强以子程序形式发布,在SAP的发地版本中,使用PERFORM调用这些子程序,它们在发布时都是空的 。

2、第二代 基于函数模块的增强。

3、第三代 基于面向对象概念的增强

4、第四代 Switch FrameWork

方法一、利用TCODE寻找增强(第二代的增强)

执行一个程序(源代码后附),在选择屏幕处输入你所需要增强的程序TCODE,执行後,就会出现一个列表,那里就有关于如何增强这个的绝大部分SMOD增强。

点击进去,自己手动寻找需要的增强。

这是第二代增强

方法二、利用系统函数寻找

MODX_FUNCTION_ACTIVE_CHECK 例如:vl10b : EXIT_SAPLMCS5_002

在这个FUNCTION的代码最后添加一个断点。执行需要增强的TCODE,如果有增强,就会自动跳入DEBUG界面。在DEBUG界面,查看f_tab 字段,这里面所显示的Smod就是关于这个TCODE所有的增强项目的列表。这些增强都是属于EXIT_XXXXXX_XXX这种形式。

至于如何查看这个增强是属于哪个SMOD,可以自己查阅 MODSAP这个表(SAP Enhancements).

SMOD 相当于结构

CMOD 是开发创建包含SMOD的增强。需要KEY激活后代码实现。

这是第二代增强。

还有一些FUNCTION供参考:

[1].DYNP_VALUES_READ

[2].MODX_ALL_ACTIVE_MENUENTRIES(菜单增强)

[3].MODX_FUNCTION_ACTIVE_CHECK(出口函数增强)

[4].MODX_MENUENTRY_ACTIVE_CHECK(菜单增强)

[5].MODX_SUBSCREEN_ACTIVE_CHECK(屏幕增强)

这些的使用方法和上述的一样,可以针对各种情况寻找增强。

方法三、从程序代码中找

在需要增强的事务里面,打开SYSTEM——》status,双击进入PROGRAM,查看所有的subroutines, 重点观察所有形似 userexit_******* 这种,由描述来确定合适的需要增强的FORM。这里是第一代的增强。

方法四、针对BADI的增强

转摘自网上

1、badi对象的信息存储在SXS_INTER, SXC_EXIT, SXC_CLASS 和SXC_ATTR 这四个表中。

2、sap程序都会调用cl_exithandler=>get_instance来判断对象是否存在,并返回实例;其实get_instance就是对上述几个表和他们的视图(V_EXT_IMP 和 V_EXT_ACT)进行查询和搜索。

3、基于这个机理,我查用ST05来监控一个TCODE来跟踪,然后选择查找有关上述几个表和视图的操作,就可获得相关BADI。

4、se18 查找接口,se19 实现接口就可以实现用户增强。

附: 增强查找ABAP代码

代码相似过高,已经被分享过了:如下位置

分享一个找增强的程序(版权归原作者大神所有~)

原创 Sapliumeng 码农干货铺 2019-10-25

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-09-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 叕鰦座 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 分享一个找增强的程序(版权归原作者大神所有~)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档