SAP_增强(源代码_user_exit_badi_Enhancement_Spot_)_第1页
SAP_增强(源代码_user_exit_badi_Enhancement_Spot_)_第2页
SAP_增强(源代码_user_exit_badi_Enhancement_Spot_)_第3页
SAP_增强(源代码_user_exit_badi_Enhancement_Spot_)_第4页
SAP_增强(源代码_user_exit_badi_Enhancement_Spot_)_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、ABAP基础课程第六周本课内容概要本课内容概要: (使用使用SAPSAP的增强,建议系统学习一下的增强,建议系统学习一下 SAP SAP 标准教材标准教材 BC425 BC425 和和 BC427 BC427) 1 1:什么是增强(:什么是增强(EnhancementEnhancement),为什么我们做增强(),为什么我们做增强(EnhancementEnhancement) ? 2 2:SAPSAP四代增强分别是什么?四代增强分别是什么?User-ExitUser-Exit简介。简介。 3 3:第一代增强简介,查找方法,增强:第一代增强简介,查找方法,增强DemoDemo介绍;介绍; 4

2、4:第二代增强:第二代增强User-exitUser-exit简介,与第一代增强对比;简介,与第一代增强对比;SAPSAP有四种基本用户出有四种基本用户出 口的类型;口的类型; 5 5:如何找到第二代增强,如何使用?:如何找到第二代增强,如何使用?SMODSMOD与与CMODCMOD使用与使用与DemoDemo介绍。介绍。 6 6:以常用的功能用户出口为例,出口命名规则,几张重要的出口激活情况:以常用的功能用户出口为例,出口命名规则,几张重要的出口激活情况 查看检查表;查看检查表; 7 7:查找出口的几个重要的:查找出口的几个重要的function module function module

3、 含义及使用;含义及使用; 8 8:以:以MB02MB02修改物料凭证为例,查找出口修改物料凭证为例,查找出口; ;使用调试查找有用的出口;使用调试查找有用的出口; 9 9:介绍什么是:介绍什么是access keyaccess key,如何去申请我们需要的,如何去申请我们需要的access keyaccess key?T-codeT-code slicense slicense。 10 10:增强:增强STEP BY STEPSTEP BY STEP简介简介; ; 11 11:本节课作业,我们先要修改物料主数据增强,找到你需要的:本节课作业,我们先要修改物料主数据增强,找到你需要的EXIT.

4、EXIT. ABAP基础课程第六周增强(增强(Enhancement):): 增强增强(enhancement)的概念其实很广,的概念其实很广,SAP标准系统之上标准系统之上的所有二次开发,的所有二次开发, 我们都可以理解为增强,做增强的目的就我们都可以理解为增强,做增强的目的就是标准的是标准的sap正常的业务系统不能满足实际需求,所以我们在正常的业务系统不能满足实际需求,所以我们在标准的系统基础进行增加不同的功能来达到不同企业的要求,标准的系统基础进行增加不同的功能来达到不同企业的要求,换句话说我们今天开发过程中所有的换句话说我们今天开发过程中所有的ADD-ON都可以说是增强都可以说是增强开

5、发。开发。 但作为开发人员所说的增强主要是标准系统事先预留好的但作为开发人员所说的增强主要是标准系统事先预留好的接口,根据不同业务需求,进行开发,我们称为增强,又叫用接口,根据不同业务需求,进行开发,我们称为增强,又叫用户出口。户出口。ABAP基础课程第六周SAPSAP四代增强:四代增强:第一代(基于源代码的增强)是第一代(基于源代码的增强)是sapsap提供一个空代码的子过程,在这个子提供一个空代码的子过程,在这个子 过程中用户可以添加自己的代码,控制自己的需求;过程中用户可以添加自己的代码,控制自己的需求;第二代增强(基于函数模块的增强),用第二代增强(基于函数模块的增强),用SMODSM

6、OD和和CMODCMOD维护;在维护;在SAPSAP发布的发布的 版本中,使用版本中,使用Call customer-function xxxCall customer-function xxx调用函数模块的,调用函数模块的, 所以你可以通过在程序中收所以你可以通过在程序中收cusomer-functioncusomer-function来查找第二代增强;来查找第二代增强;第三代增强第三代增强( (基于面向对象概念的增强基于面向对象概念的增强BADIBADI(business add-inbusiness add-in)),),源代源代 码发布以接口的方式,通过接口的方法调用来实现使用的;码发

7、布以接口的方式,通过接口的方法调用来实现使用的;第四代其实是第三代的加强第四代其实是第三代的加强switch Frameworkswitch Framework,当,当sapsap进入进入newweaver newweaver 7.0 7.0以后推出的新增强体系,将以后推出的新增强体系,将BADIBADI进行了改进,叫新进行了改进,叫新BADIBADI了。还了。还 新增新增 Enhancement Spot Enhancement Spot 和和 Enhancement Section Enhancement Section 以及隐式增强以及隐式增强 点的概念;点的概念; ABAP基础课程第六

8、周第一代增强第一代增强demodemo: 由于第一代增强由于第一代增强这类增强需要修改这类增强需要修改sapsap的标准代码。用户增强时,应首先到的标准代码。用户增强时,应首先到 service marketplace service marketplace 申请对象键(又称为申请对象键(又称为access keyaccess key),然后才能修改这),然后才能修改这些子程序,这些子程序可以使用程序中所有的全局数据些子程序,这些子程序可以使用程序中所有的全局数据. .早就废弃不用,早就废弃不用,SAPSAP已经不再建议使用。已经不再建议使用。出口查找方法一):出口查找方法一):案例:案例:

9、SAPMV45A Subroutines SAPMV45A Subroutines 出口查找方法二):出口查找方法二):SPRO - SAP Reference IMGSPRO - SAP Reference IMG,按,按 ,Search TermSearch Term中填中填入入USER EXITUSER EXIT就可以查到每个模块相应的出口了,每个出口就可以查到每个模块相应的出口了,每个出口SAPSAP都会有相都会有相应的使用说明。应的使用说明。ABAPABAP基础课程第六周基础课程第六周第二代增强简介,第二代与第一代增强的不同对比。第二代增强简介,第二代与第一代增强的不同对比。 Use

10、r Exits是是SAP第二代增强技术,其技术原理就是在程序中预先置放一第二代增强技术,其技术原理就是在程序中预先置放一个个Form.End Form的子程序,并在事物运行时使用的子程序,并在事物运行时使用 CALL CUSTOMER-FUNCTION 调用这些函数模块。当然,如果这个调用这些函数模块。当然,如果这个Form是空的,那么不执行是空的,那么不执行任何操作,反之,执行相应的动作。任何操作,反之,执行相应的动作。与修改标程的区别在于,在与修改标程的区别在于,在SAP做升级做升级的时候,的时候,User Exits会自动保留,标程的修改如果不做特殊处理,就会被覆会自动保留,标程的修改如

11、果不做特殊处理,就会被覆盖。盖。SAP有四种基本用户出口的类型:有四种基本用户出口的类型: 菜单出口菜单出口-Menu Exits,定义自己的菜单;,定义自己的菜单; 屏幕出口屏幕出口-Screen Exits,定义自己的屏幕;,定义自己的屏幕; 功能模块出口功能模块出口-Function Module Exits,在,在SAP应用程序中添加功能;应用程序中添加功能; 关键字出口关键字出口-Keyword Exits,在,在ABAP/4字典中的关键字数据元素添加文档。字典中的关键字数据元素添加文档。 结果是你在使用这些数据元素的字段处按结果是你在使用这些数据元素的字段处按F1后会出现你自定义的

12、说明文档。后会出现你自定义的说明文档。ABAPABAP基础课程第六周基础课程第六周Tcode SMOD与与CMOD: 增强通过事务码增强通过事务码 SMOD 进行维护激活,进行维护激活,CMOD 进行实现。进行实现。SMOD 中的一中的一个增强可以包含源代码、屏幕和表结构增强,按照较容易理解的逻辑结构来个增强可以包含源代码、屏幕和表结构增强,按照较容易理解的逻辑结构来管理这些增强,使用相对更加便利。管理这些增强,使用相对更加便利。 CMOD是为了对出口程序的修改进行管理,是为了对出口程序的修改进行管理,sap提供专门的用来管理出口提供专门的用来管理出口程序的事务;程序的事务; 本节课以最常用的

13、用户出口,功能模块出口本节课以最常用的用户出口,功能模块出口-Function Module Exits为例为例来进行讲解来进行讲解: User exits (Function module exits)是是sap提供出口,它的命名规则如下:提供出口,它的命名规则如下: EXIT_ 几张重要的表几张重要的表: MODSAP:sap enhancement table TFDIR:function module table,包括出口函数在内的所有函数表包括出口函数在内的所有函数表 字段字段 MAND(值为值为C表示此出口函数被激活表示此出口函数被激活).(E类)类) CUATEXTS:修改修改

14、GUI 界面,界面界面,界面: 菜单文本被客户菜单文本被客户(C类类) TSDIR:动态程序区动态程序区 CALL CUSTOMER SUBSCREEN(S类类) ABAPABAP基础课程第六周基础课程第六周相关增强检查函数:相关增强检查函数: MODX_FUNCTION_ACTIVE_CHECK: (E类)类) 检查功能出口类用户出口是否被激活。检查功能出口类用户出口是否被激活。 MODX_MENUENTRY_ACTIVE_CHECK:(C类)类) 检查菜单关键字类增强激活状况检查菜单关键字类增强激活状况 MODX_SUBSCREEN_ACTIVE_CHECK: (S类)类) 检查屏幕累增强

15、激活状况检查屏幕累增强激活状况 SAP的各模块的任何一个事务码的各模块的任何一个事务码(Tcode)对应的标准程序都留对应的标准程序都留下了大量的用户出口,正是下了大量的用户出口,正是SAP灵活的配置功能和强大的用户出灵活的配置功能和强大的用户出口才使其产品轻松应对各种复杂需求成为可能口才使其产品轻松应对各种复杂需求成为可能,系统还为能快速找系统还为能快速找到和激活这些增强进行了有效组织,各类增强被记录在到和激活这些增强进行了有效组织,各类增强被记录在table中并中并且提供了相关检查函数,从而更方便企业用户。且提供了相关检查函数,从而更方便企业用户。ABAPABAP基础课程第六周基础课程第六

16、周DEMO举例:案例以举例:案例以MB02,修改物料凭证为例,修改物料凭证为例检查凭证抬头文本检查凭证抬头文本(Doc.header text)ABAPABAP基础课程第六周基础课程第六周找到相应程序的名称:找到相应程序的名称:出口都没有激活,没使用,出口都没有激活,没使用,好多出口,哪个才是我们真好多出口,哪个才是我们真是需要的,好用的出口呢?是需要的,好用的出口呢?ABAPABAP基础课程第六周基础课程第六周DEMO举例:举例: 案例以案例以MB02,修改物料凭证为例,修改物料凭证为例 功能模块功能模块MODX_FUNCTION_ACTIVE_CHECK 设置断点设置断点重要的两个字段的含

17、义:重要的两个字段的含义: 如果强函数如果强函数TFDIR-MAND = C则表示该增强是激活的则表示该增强是激活的,于是系统赋于是系统赋 予一个标志予一个标志active = X; 字段字段 l_funcname 即为目前正在经过的出口;即为目前正在经过的出口;ABAPABAP基础课程第六周基础课程第六周ABAPABAP基础课程第六周基础课程第六周COMPONENTSAccess keyTcode slicense or key generatorABAPABAP基础课程第六周基础课程第六周增强步骤:增强步骤: 2、先使用、先使用SMOD激活一个激活一个SAP增强增强 2.1、选择一个增强,

18、如:、选择一个增强,如:SDVFX001 ,点击修改,进入,点击修改,进入sap增强维护屏幕;增强维护屏幕; 2.2、点击、点击组件组件按钮,进入组件维护屏;按钮,进入组件维护屏; 2.3、将光标移到、将光标移到功能模块名功能模块名,输入模块名,如:,输入模块名,如:EXIT_SAPLV60B_001; 2.4、选择、选择代码修改代码修改按钮进入函数模块;按钮进入函数模块; 2.5、双击函数模块的包含单元,进入包含单元加入自定义代码并激活保存;、双击函数模块的包含单元,进入包含单元加入自定义代码并激活保存; 3、使用、使用CMOD建立增强项目建立增强项目 3.1、输入自定义的项目名,点击、输入

19、自定义的项目名,点击创建创建; 3.2、进入增强项目,选择、进入增强项目,选择配置增强配置增强,进入增强配置屏幕;,进入增强配置屏幕; 3.3、输入增强名如:、输入增强名如:SDVFX001 3.4、保存,并退出;、保存,并退出; 4、使用、使用CMOD将增强项目激活,便大工告成。将增强项目激活,便大工告成。ABAP基础课程第七周本课内容概要本课内容概要: (使用使用SAPSAP的增强,建议系统学习一下的增强,建议系统学习一下 SAP SAP 标准教材标准教材 BC425 BC425 和和 BC427 BC427) 1 1:ABAP Object ABAP Object 面向对象语言简介;声明

20、面向对象语言简介;声明 Definition Definition 和实现和实现 implementation implementation 的分别定义;的分别定义;ABAPABAP对象中,三种可见性简介;对象中,三种可见性简介; 代码实例简介;代码实例简介; 2 2:The SAP Enhancement Framework 简介;简介; 3 3:BADIBADI概念简介;概念简介;Enhancement spot概念简介;如何创建概念简介;如何创建 Enhancement spot如何创建如何创建BADIBADI及及BADIBADI各组件简介;各组件简介;创建创建 method及及para

21、meter;程序中调用;程序中调用 BADI BADI的小语句;的小语句; 4 4:如何创建:如何创建BADI BADI 定义定义DefinitionDefinition;如何创建;如何创建BADI BADI 实现实现ImplementationImplementation; 5 5: Enhancement-POINT 简介;使用简介;使用DEMO简介及日常用法;简介及日常用法; Enhancement-POINT 和和BADI的区别联系简介;的区别联系简介;ABAP基础课程第七周ABAP基础课程第七周ABAP基础课程第七周程序实例详见:程序实例详见:Z_BADI_CALLABAP基础课程第

22、七周程序实例:程序实例:Z_BADI_CALLABAP基础课程第七周The SAP Enhancement FrameworkSAP ERP提供了大量的标准功能,但是用户的需求是多种多样的,如何提供了大量的标准功能,但是用户的需求是多种多样的,如何是是SAP的标准功能适应用户的需求就变得非常重要。的标准功能适应用户的需求就变得非常重要。SAP enhancement 技术允许我们对技术允许我们对SAP的标准功能进行扩展,以满足的标准功能进行扩展,以满足用户的个性化需求用户的个性化需求修改后台配置修改后台配置修改修改BAPI创建创建BAPI增强功能增强功能ABAP基础课程第七周BADI:Busi

23、ness Add-Ins:BADI是基于是基于SAP面向对象的的面向对象的的SAP增强技术;增强技术;SAP预定义了预定义了Interface,由客户来实例化相应的接口,应用程序,由客户来实例化相应的接口,应用程序通过调用来获得用户所定义通过调用来获得用户所定义class的的instance;BADI对象的信息存储在对象的信息存储在SXS_INTER, SXC_EXIT, SXC_CLASS 和和SXC_ATTR 这四个表;这四个表;使用使用se18,se19查询查询badiSe18:定义接口功能:定义接口功能Se19:创建实现类并编码:创建实现类并编码SAP 保证所有的保证所有的BADI接口

24、向上兼容版本更新即不会影响标准版接口向上兼容版本更新即不会影响标准版本中增强的调用,也不会影响接口调用的正确性。本中增强的调用,也不会影响接口调用的正确性。ABAP基础课程第七周Business Add-Ins:BADI由两部分组成:由两部分组成: Definition( SE18 )通常由通常由SAP提供提供Implementation( SE19 )通常由用户实现通常由用户实现ABAP基础课程第七周Enhancement spotEnhancement spot概念:概念:Enhancement spotEnhancement spot是对是对EnhancementEnhancement的一个管理平台;是作为一个的容的一个管理平台;是作为一个的容器,在这个容器里面,我们可以定义自己的器,在这个容器里面,我们可以定义自己的BADIBADI或者或者Enhancement Enhancement PointPoint。如何创建如何创

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论