sap 一代增强_SAP 4代增强
*20170325 160000
以下之外,
还有:.替代, -用过一次;
.BTE -没用过,
需要学习;
第二代增强和第三代增强的差别:
1.Tcode 不同:
第二代: CMOD 增强管理,SMOD 实施的增强点;
第三代: SE18 BADI定义,SE19 BADI实现;
2.实现方式不同;
SMOD 增强 是基于函数模块的增强,函数名称是 EXIT_程序名_'xxx',
使用CALL customer-function 'XXX'调用函数模块,
函数里面一般是 INCLUDE Zxxx 一句话,进去里面进行增强代码;
SE19增强 是基于面向对象的增强,
源代码发布以接口方式,通过接口的方法调用来实现使用。
通过 接口名称 找到对应的方法:
如:
采购订单创建的检查:BADI:ME_PROCESS_PO_CUST
在所提供方法中->找到对应方法->实施增强;
INITIALIZE
OPEN
PROCESS_HEADER
PROCESS_ITEM
PROCESS_SCHEDULE
PROCESS_ACCOUNT
CHECK
POST
CLOSE
FIELDSELECTION_HEADER_REFKEYS
FIELDSELECTION_HEADER
FIELDSELECTION_ITEM_REFKEYS
FIELDSELECTION_ITEM
3.查找方式不同,
4.能够实现的功能是否相同?
通过网络资料学习SAP 的4代增强:
SAP ABAP,增强就是对SAP 标准程序功能的扩充。比如在事物码ME31N 新建PO 时,
在保存时需要做一些特定的检查,这时候就需要用到增强:
【 ME_PROCESS_PO_CUSE 】
SAP 系统已经给我们预设好了很多增强,我们只需要往这些增强里写代码就行了。
SAP增强按照历史先后, 主要四类:
1.第一代(基于源代码的增强)是SAP提供了一个空代码的子过程,
这个子过程中,用户可以添加自己的代码,控制自己的需求。
这类增强需要修改sap的标准代码,它们在发布的时候都是空的,
集中在文件名倒数第二个字符为 Z 的包含程序中,
因为在标准程序中,所以:
(1)程序的全局数据可以使用。
弱点:系统升级时会被新版本覆盖;
这种源代码增强和 屏幕增强的说明
可以从Tcode:
SPRO 后台配置的相关模块的路径里找到;
一般是 UserExit_ 打头的子模块。
这类增强事先要到 service marketplace 申请对象键(Access key),
然后才可以修改这个子程序。
这类增强比较多用在SD模块,比如创建SO 时(VA01).
2.第二代增强(基于函数模块的增强),用SMOD和CMOD 维护
在SAP发布的版本中,使用Call customer-function 'xxx'调用函数模块的,
所以你可以通过在程序中搜索
cusomer-function 来查找第二代增强,
第二代增强函数名构成:EXIT_程序名_'xxx',
这样你就可以找到对应的增强函数模块了,它们在发布的时候只有一句代码
include 'xxx'
修改时无需像第一代增强一样需要ACCESS key,直接双击回车就可以了。
从第二代增强都是 子程序了,include or ???
只能使用接口中传递进来的参数。
第二代增强主要有以下几类:
1)E. Enhancement exits:
这些出口以Exit_ 打头,你可以到SE37 中查看,
也可以在表 TFDIR 中查询Exit_ 打头的函数,
2)C. Gui codes,(GUI增强)
3)S. Subscreen (屏幕增强)
4)T. include structure 表/结构 增强,
SAP扩充(增强表) MODSAP,里面记录了所有的smod 增强,
这个表里重要字段
NAMEX 增强名
TYPX 组件类型
MEMBERX 增强
TFDIR 函数清单
重要字段:
FUNCName(函数名),
MAND(功能模块激活状态如果是C代表此函数模块激活)。
3.第三代增强(基于面向对象概念的增强 BADI-[ business add-in ]),使用SE18管理,SE19实施,
(1)SAP保证所有BADI的向上兼容性。版本升级不影响标准系统中增强的调用,也不会影响调用接口的有效性。你不必在SSCR中注册BADI。
(2)只能使用一次实施,增强功能可以同时被任意数量的客户激活。?
BADI可根据过滤器的值定义。这使您可以根据特定的标准来控制实施(例如:按照在特定国家)。
(3)BADI包含了所有必要实现特定任务的接口。?
源代码发布以接口方式,通过接口的方法调用来实现使用。
自定义增强实际上是实现一个或者多个基于这个接口的实现类,
因为-接口类实际上是一个抽象类,所以- 对于同一个增强会出现不同的源代码,
这些不同的源代码通过 过滤器(adapter) 来区分不同的 业务场景。
Tcode:SE18, SE19 来实现,
***BADI 的查找方法:
1)BADI 对象的信息存储在
SXS_INTER,
SXC_EXIT,
SXC_CLASS,
SXC_ATTR 这四个表
其中 SXC_ATTR 【Exit: Implementationsseite: Attribute】可以找到自建BADI,
IMP_NAMECHAR200业务加载项实施
VERSION CHAR60版本号
ACTIVE CHAR10客户增强激活
MST_LANGLANG10语言代码
ANAME CHAR120最后修改人
ADATE DATS80日期
ATIME TIMS60时间
UNAME CHAR120最后修改人
UDATE DATS80日期
UTIME TIMS60时间
LAYER CHAR800业务加载项管理的层值
MIG_ENHNAMECHAR300
2)SAP BADI 程序都会调用
cl_exithandler=>get_instance 来判断对象是否存在,并返回实例,
**我们可以在这个方法处设置断点,获取实例。
这个方法实际是对上面四张表和视图 V_EXT_IMP 和V_EXT_ACT 进行检索,
3)它的调用方式是call method(instance), 可以通过exit_handler关键词来查找。
4)ST05选择“table buffer trace”而不是常用的"SQLtrace",
查找上面的几个表和视图找到对应的BADI.
5)se18 查找接口,se19 实现接口就可以实现用户增强
4.第四代是第三代的加强 switch Framework
SAP 进入NewWeaver 7.0后 推出的新增强体系,将BADI 改名叫新BADI。
还新增了 Enhancement spot 和Enhancement section 以及隐式增强点的概念,
基本在面向对象的程序里实现处处可以增强,
这类增强一般
可以加在一个函数过程的开头和结尾的地方。
***隐式增强:
1)寻找隐式增强方法:
使用debug 方式,跟踪业务处理过程,记下经过的 程序,子程序,函数名,
最好是在标准业务结束前的最后环节,去确认是否有可用的隐士增强点。
如有,实施步骤:
(1)使用圈圈 增强menu,
(2)菜单:编辑-》增强操作-》显示隐式增强选项;
(3)代码框行号前有箭头的表明有隐式增强点,可以创建,
操作隐式增强点 4个menu:
创建,更改,替代,撤销,(所以隐式增强没有删除,是标准撤销)
(4)创建实施,声明代码;
SAP四代增强实现:销售订单复制项目文本时不需要显示文本框和回车
最近接收到一个业务需求,在SAP依据销售订单复制时,如果订单里面的项目有多个文本,系统就会显示复制的文本框处理,让用户选择是否复制,这个就让销售很不舒服,如果有几十个项目,每个项目有几个文本,那就就要 ...
SAP增强总结-第二代增强(SMOD、CMOD)【转载】
第二代增强比第二代增强安全性提高了很多,第一代增强毕竟是在原标准程序中修改,大部分传递参数都可以直接使用,第二代增强做了一些封装,对用户可以修改的参数做了限制. 1.增强点查找方法 首先根据事物码找到 ...
SAP中寻找增强的实现方法(转)
SAP 增强已经发展过几代了,可参考 SAP 标准教材 BC425 和 BC427.简单的说SAP的用户出口总共有四代:1.第一代 基于源代码的增强.SAP提供一个空代码的子过程,在这个子过程中用户 ...
Azure 为 SAP 提供的增强监控解决方案
正如大家在之前公告中所看到的,多个SAP应用程序已获得认证可在 Azure虚拟机中运行,未来还会有更多 SAP应用程序获得认证.对于希望在 Azure中运行 SAP应用程序的客户来说,这是个激动人心的 ...
【ABAP系列】SAP ABAP MRKO增强
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP MRKO增强 ...
【MM系列】SAP 交货单屏幕增强
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP 交货单屏幕增强 前言部分 ...
【ABAP系列】SAP VA01屏幕增强(user-exit)
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP VA01屏幕增强(user- ...
SAP 销售条件表增强栏位
有时遇到一个比较特殊的业务,比如公司间免费订单,既要让价格为0,不读取VK11里创建的价格, 又要让公司间的价格读取VK11,这实际上是有矛盾的,也就是说一个订单里面的两行,物料一样,客户一样,就会出 ...
SAP 金税接口增强 BADI
SAP与金税连接有两种方式:组件接口及文本接口. 文本接口为例: 1.SAP取发票数据.主要来自合同,销售订单,交货单.发票,客户供应商主数据等 2.SAP处理:合并.拆分,折扣等 3.导出TXT ...
随机推荐
解决NSTimer存在的内存泄漏的问题
创建定时器会在一定的间隔后执行某些操作,一般大家会这样创建定时器,这样创建的定时,self对定时器有个引用,定时器对self也有个引用,造成了循环引用,最终造成了内存泄漏,如果定时器在做下载的操作就会 ...
mybase 用户教程
一.安装.卸载 1.安装 在Mac OS X环境下,可通过打开下载的.dmg文件,再把myBase图标拖到应用程序文件夹即可安装.然后通过双击程序图标运行程序 2.卸载 对于Mac OS X,把myB ...
Bootstrap3.0学习第二十四轮(JavaScript插件——按钮)
详情请查看 http://aehyok.com/Blog/Detail/30.html 个人网站地址:aehyok.com QQ 技术群号:206058845,验证码为:aehyok 本文文章链接:h ...
Android 使用FACE++架构包实现人脸识别
今天给大家带来一个通过使用Face++来实现人脸识别的功能. 我们先去这个Face++官网看看:http://www.faceplusplus.com.cn 我们点开案例可以看到众多我们熟知的软件都是 ...
Open Phone, SMS, Email, Skype and Browser apps of Android in Unity3d
最近项目需要使用Android的一些基本功能,写插件各种悲剧,google了一下,如获至宝.Nice ! string url = String.Format("tel:{0}", ...
2016 系统设计第一期 (档案一)MVC 相关控件整理
说明:前者是MVC,后者是boostrap 1.form 表单 @using (Html.BeginForm("Create", "User", FormMet ...
python 自动化之路 day 09 进程、线程、协程篇
本节内容 操作系统发展史介绍 进程.与线程区别 python GIL全局解释器锁 线程 语法 join 线程锁之Lock\Rlock\信号量 将线程变为守护进程 Event事件 queue队列 生产者 ...
Java并发编程:ThreadLocal
Java并发编程:深入剖析ThreadLocal Java并发编程:深入剖析ThreadLocal 想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用 ...
Traffic Ccontrol(流量控制)
linux有一个成熟的带宽供给系统,称为Traffic Control(流量控制).这个系统支持各种方式进行分类.排序.共享和限制出入流量. 一.基础知识 让ip显示我们的链路 ip link li ...
CSS3学习笔记(4)-CSS3函数
p{ font-size: 15px; text-indent: 2em; } .alexrootdiv>div{ background: #eeeeee; border: 1px solid ...
sap 一代增强_SAP 4代增强相关推荐
- sap 一代增强_SAP增强Enhancement
第一代:基于源码增强(子过程subroutine) 第一代增强基于源代码,是SAP提供的一个空代码的子过程.在这个子过程中用户可以添加自己的代码,控制自己的需求.这类增强集中在一些文件名倒数第二个字符 ...
- ABAP 快速找到第二代增强的方法(基于函数出口增强function)
SAP系统带有增强出口检查函数如下: MODX_ALL_ACTIVE_MENUENTRIES (菜单增强) MODX_FUNCTION_ACTIVE_CHECK (出口函数增强) MODX_MENUE ...
- SAP 系统标准表的结构增强
在实际业务操作中,经常会存在较多的客制化需求.很多时候,企业可能会需要在表中增加一些自定义的字段.例如,VBAP表用于保存销售订单的详细信息,在一些销售订单行业,每个商品都可能存在很多价格相关的信息, ...
- 【SAP Abap】记录一次增强开发之销售交货开票VF04增强
记录一次增强开发之销售交货开票VF04增强 1.增强需求 2.增强查找 2.1.查找增强点 2.2.查看增强 3.增强实现 3.1.创建增强项目 3.2.添加增强 3.3.实现增强 3.4.激活项目 ...
- Pytorch 文本数据分析方法(标签数量分布、句子长度分布、词频统计、关键词词云)、文本特征处理(n-gram特征、文本长度规范)、文本数据增强(回译数据增强法)
日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 文本数据分析 学习目标: 了解文本数据分析的作用. 掌握常用的 ...
- 数据增强_imgaug图像数据增强必备工具
导读 我们经常会遇到训练模型时数据不够的情况,而且很多时候无法再收集到更多的数据,只能通过做一些数据增强或者其它的方法来合成一些数据.常用的数据增强方式有裁剪.旋转.缩放.亮度对比度色度饱和度变换.仿 ...
- SBAS星基增强系统 及 广域增强系统WAAS
1.为什么需要增强系统? GPS自建成以来到现在,其SPS可以向民用用户提供水平方向100米左右,垂直方向150米左右的定位精度,但随着应用领域的不断拓展,民用航空对于GPS的应用提出了更加苛刻的要求 ...
- 语音增强:求语音增强评价:CSIG,CBAK和COVL的代码
语音增强:求语音增强评价:CSIG,CBAK和COVL的代码 CSIG,CBAK和COVL分别代表: CSIG: MOS predictor of speech distortion, CBAK: M ...
- sap 一代增强_在SAP标准实施中不起眼的“小”功能,居然融了3个亿
昨日,劳动力管理服务商"盖雅工场"微信官方宣布完成C轮融资,本轮由老虎环球基金领投,老股东华平投资.经纬中国跟投. 公开信息显示,盖雅工场于2016年3月获得由经纬创投领投的数千万 ...
- sap 一代增强_在SAP故乡,感受“边缘智能”之变
汉诺威工业博览会SAP展台 在德国,有奔驰.宝马等汽车巨头,但SAP仍然是德国市值最高的企业,目前这家企业正在发生什么变化?5G.人工智能.区块链.VR/AR.物联网等新技术如火如荼,正在港口.汽车. ...
最新文章
- 014_logback中的SiftingAppender
- CString的部分实现剖析
- 为什么jsp写script代码报错_JSP 报错:ReferenceError: $ is not defined
- android webview 字体 系统字体大小,Android 系统字体大小动态改变,导致webview中显示不兼容的问题解决...
- 网站流量预测任务第一名解决方案:从GRU模型到代码详解时序预测
- Builder 模式在 Guava 中的应用
- 使用Opencv分离图像通道/合并图像通道
- Linux内核的裁剪移植,Linux内核裁剪移植学习分享
- 计算机专业英语课程整体设计,计算机专业英语的课程整体.doc
- Mysql的分组函数
- 批量剔除consul无效服务
- 玩客云安装linux系统的好处,玩客云armbian安装aria2+ariaNG过程记录
- java斗地主程序制作过程
- 驻留内存 虚拟内存 共享内存
- 邓宁-克鲁格效应的理解
- 2014年博客之星评选,请大家多多支持
- linux 删除目录下所有指定的子目录
- SVN服务端客户端安装配置及权限管理
- 此计算机上的硬盘驱动器要更新,Win10自动更新给微软闯大祸:搞坏用户电脑硬盘...
- 3DAI智能皮肤检测仪--拥抱新美业的科技变革
热门文章
- 24小时动手学prezi入门到精通+破解(全能“破解”软件)
- crm客户管理软件的精髓
- JDK6和JDK7中String的substring()方法及其差异
- 【C/C++】Socket编程实例解析
- 我的世界起床战争java 版服务器_我的世界中国版起床战争下载-我的世界中国版起床战争服务器_5577安卓网...
- windows 邮件系统收发163邮件
- python爬取豆瓣书籍_Python爬取豆瓣读书
- java解析魔兽争霸3录像_Java解析魔兽争霸3录像W3G文件(三):解析游戏开始前的信息...
- SPSS统计分析行业应用实战--SPSS 24.0新增
- 基于QT的音视频采集推流实时传输播放数据发布系统 文档+项目源码+答辩PPT