文章目录

  • 1、增强概念
  • 2、SAP四种用户出口的类型
  • 3、应用案例
  • 4.通过spro找到增强的方法
  • 5、增强的发展
    • 5.1.第一代,基于源代码的增强
    • 5.2.找到第一代增强的方法
    • 5.3.第二代,基于函数模块的增强出口
    • 5.4 第三代,基于面向对象概念的增强BADI

1、增强概念

在SAP中,除了自开发,就是增强,ABAP开发的增强主要指的是标准系统事先预留好的接口,根据不同业务需求,进行开发,这种开发称为增强,又叫出口,如果增强满足不了,就只能修正。
标准功能修改(后台配置(业务顾问来做),增强,修改)

2、SAP四种用户出口的类型

1.菜单出口(Menu exits)
2.屏幕出口(Screen exits)
3.功能模块出口(function Module EXITS)(这个用的最多)
4.表/结构出口(structure exits)

3、应用案例

4.通过spro找到增强的方法

通过配置找到物料主数据找到增强

第二代增强
第三代增强

5、增强的发展

5.1.第一代,基于源代码的增强

提供了子例程来增加自己的代码。
屏幕增强以客户屏幕形式发布。
表/结构 :append structure.
通过SPRO可以找源代码增强和屏幕增强的相关模块的路径。
集中在一些名称倒数第二个字符为Z 的include程序中,所有的程序的全局数据都可以使用。
When the order type is AA ,I must input CUST reference

Enhancement Document

Find Enhancement point

一股是以userexit_开头的子例程.
如果在代码中该表了全局全量,还可能破坏系统原有的逻辑,因而现在很少使用.
要在SAP官方网站中申请ACCESS KEY。
在include种的最后两位为ZZ 程序,在子例程种以 USEREXIT包含的名称
vmod (SD程序的第一代增强)

5.2.找到第一代增强的方法

VA03(标准程序代码)
include
子例程

5.3.第二代,基于函数模块的增强出口

以函数的模块形式的发布,在SAP的发行版本中,使用CALL CUSTOMER-FUNCTION调用这些函数模块,它们在发布时只有一句代码
include xxxxx.
1.功能模块增强(以EXIT_打头的函数)
2、子屏幕增强,子屏幕需要自己创建
3.GUI status
4. include structure
增强相关的函数肯表格
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(屏幕增强)
Table:
5. TFDIR->function module table
6. modsap->sap enhancement table
7. tsdir->dynpro areas call customer subscreen(屏幕增强)
8. CUATEXTS-> GUI INTERFACE : MENU TEXTS CHANGED (GUI 菜单文本增强)
MODSAP, 这个表里最重要的字段增强名(Name),组件类型(typ: E C S T),组件功能模块名(Member): 里面记录了所有enhancement的增强。
TFDIR,所有的函数表,重要字段funcname(函数名), MAND(功能模块激活状态如果是C代表此函数模块激活)。
EXIT实现方法
Enhancement exits实现方法
SMOD:查看增强组件, CMOD:实现增强
1 T_CODE: CMOD中创建一个Project,添加所要使用的Enhancement,激活目标Components
2 在目标Function module中编写功能代码
SUBscreens实现方法
1 T-CODE: CMOD中创建一个Project,添加所要使用的Enhancement,激活目标Components
2 通过SMOD定位到目标程序,创建与其对应的屏幕号,屏幕属性为Subscreen,并编写功能代码。

以下是第二代增强中的三个,分别是函数,屏幕,还有结构增强

必须在以下的地方右键创建才可以使用

查看增强的方法
1.代码找增强
2.利用函数(MODX_FUNCTION_ACTIVE_CHECK)寻找增强

5.4 第三代,基于面向对象概念的增强BADI

第三代增强(基于面向对象概念的增强BADI(business add-in)),源代码发布以接哗啦啦 方式,通过接口的方法调用来实现使用的。用户增强实际上是实现一个或多个基于这个接口的实现类,因为接类实际上是一个抽象类,所以对同一个增强会出现不同的源代码,这些不同的尖代码是通过过滤器(adapter)来区别用于不同的业务场景的。这种增强是用SE18 SE19来实现的。
badi 和exit的区别: Exit中一个Enhancement只能使用一次,BADI一个接口可以被实现多次。
SE24:类构建器
sE18:是查看BADI
SE19:是创建实例

BADI 存储
badi对象的信息存储在SXS_INTER,SXC_EXIT,SXC_CLASS和SXC_ATTR这四个表中(参见SECE包).
SAP程序都会调用cl_exithandler=>get_instance来判断对象是否存在,并返回实例;其实get_instance就是对上述几个表肯他们的视图(V_EXT_IMP 和V_EXT_ACT)进行查询肯搜索。
基于这个机理,我查用ST05来监控一个TCDOE来跟踪,然后选择查找有关上述几个表和视图的操作,就可以获得相关BADI.

通过ST05跟踪,BADI对应的数据表为SXS_INTER,SXC_EXIT, SXC_CLASS和 SXC_ATTR,而这些表
都是通过视图V_EXT_IMP和V_EXT_ACT来查询的。
1)打开运行事物码:ST05选择“table buffer trace”而不是常用的"SQL trace"
2)activate trace(开始跟踪)
3)运行事物代码: me21n
4)创建一个采购订单,保存
5) deactivate trace(结束跟踪)
6)点击display trace, 在出来的选择条件中:objects中输入: V_EXT_IMP和V_EXT_ACT; 在operations中输入"OPEN"
7) 查询 通过查询的结果可以看出,视图V_EXT_IMP的BADI的接口类名字都是以if_ex_ 开头的,其中if_ex之后的就是对应的badi接口的定义

SAP的增强(enhancement)相关推荐

  1. 62. 如何通过增强(Enhancement) 的方式给 SAP ABAP 标准程序增添新功能

    文章目录 如何找到可以创建增强实现的增强点位置 如何创建增强实现 如何在 SE80 里找到增强实现本身 如何调试 ABAP 增强实现 总结 ABAP 系统有比较完善的修改控制权限管控,比如笔者试图修改 ...

  2. 【SAP Abap】SAP第四代增强开发DEMO

    SAP第四代增强开发DEMO 1.创建自开发程序 2.创建增强选项 2.1.创建增强点(ENHANCEMENT-POINT) 2.2.创建增强部分(ENHANCEMENT-SECTION) 3.显式增 ...

  3. SAP BADI增强点初学分享

    在SAP系统实施过程,不可避免的需要实施增强点开发,来满足业务需求:现简单总结SAP BADI增强(第三代)的应用,用于SAP初学者理解. 1.首先,查询到可以被实施的BADI,通过事务代码SE24, ...

  4. SAP ERP增强高科技电子企业核心竞争力

    SAP ERP增强高科技电子企业核心竞争力 成立于2000年的上海山泰柯电子有限公司位于上海浦东,主要经营电子线路板的加工.销售,以及相关产品的技术咨询服务和仓储业务.国际贸易.转口贸易.保税区企业间 ...

  5. sap 一代增强_SAP增强Enhancement

    第一代:基于源码增强(子过程subroutine) 第一代增强基于源代码,是SAP提供的一个空代码的子过程.在这个子过程中用户可以添加自己的代码,控制自己的需求.这类增强集中在一些文件名倒数第二个字符 ...

  6. SAP产品增强技术回顾

    Jerry最近的工作和SAP某云产品的扩展性设计相关,因此借这个机会,把我过去工作中积累的SAP产品扩展技术相关的知识做一个梳理和回顾. 文章目录 SAP产品标准 SAP Field Extensib ...

  7. SAP第三代增强——BADI解读

    BAdI是SAP在标准程序中,为客户自定义逻辑所预留的接口(属于第三代增强),在技术本质上是一个interface,通过实现类的向上继承,完成用户逻辑的调用. 操作BAdI的事务代码: SE18:定义 ...

  8. sap 一代增强_在SAP标准实施中不起眼的“小”功能,居然融了3个亿

    昨日,劳动力管理服务商"盖雅工场"微信官方宣布完成C轮融资,本轮由老虎环球基金领投,老股东华平投资.经纬中国跟投. 公开信息显示,盖雅工场于2016年3月获得由经纬创投领投的数千万 ...

  9. 如何使用SAP CRM增强工具AET创建Table表格类型的增强

    Jerry创建于2019年1月11日周五. 第一步,创建一个起包裹作用的SAP CRM UI component,用于容纳这个表格类型的UI增强: 点击按钮Create UI component,指定 ...

  10. SAP第四代增强 BTE

    SAP对FI模块真的做的非常透彻,所以称FI是SAP R/3 系统的中流砥柱啊,单就增强这块来看,之前有会计凭证的验证和替代,目前又出现了专为FI模块设计的增强方案BTE(OpenFI). BTE的设 ...

最新文章

  1. 产品配件类目税目分类_我国消费税税目种类有哪些?
  2. js 判断日期时间差
  3. 1002 C语言输入解决方案
  4. C语言和设计模式(桥接模式)
  5. 查找php中的内容,如何通过PHP从内容中查找URL?
  6. python网络蜘蛛
  7. Pycharm我认为最好看,最舒服的主题配色和字体设置
  8. spring-boot 与 elasticsearch 版本对应
  9. 1024 程序员节|用代码,改变世界
  10. 相对于父容器(取值:true / false)帧布局(FrameLayout)
  11. tensorflow实现Word2Vec——生成词向量以及降维可视化
  12. 什么是BI工具?怎么选择好用的BI工具
  13. xsy3320 string
  14. 英语KOREITE寿山石koreite单词
  15. 社区发现-Fast Unfolding
  16. Windows10下修改盘符
  17. 最大公约数程序c语言,C语言求最大公约数(两种最简单的算法实现)
  18. 2016恒生电子秋招笔试两道算法题
  19. 面向流行性疾病科普的用户问题理解与答案内容组织
  20. Python安装opencc

热门文章

  1. php微信支付接口开发的实现程序
  2. YOLOX-PAI: An Improved YOLOX, Stronger and Faster than YOLOv6
  3. Leetcode 1235. 规划兼职工作(DAY 73) ---- 动态规划学习期(上午去上高数课了 课下老师说上次旷课不扣平时分嘻嘻)
  4. 基于天地图热力图及区域划分
  5. 学计算机应用的必懂知识,学习计算机应用基础心得体会
  6. Tebleau-四象限图
  7. C++中的trivial destructor和non-trivial destructor
  8. 【友盟+】于晓航:大数据“格物致知”
  9. 考点图文详解 - 网络管理(第十一章)
  10. Vue.js项目实战——Day(1)