资源预览内容
第1页 / 共31页
第2页 / 共31页
第3页 / 共31页
第4页 / 共31页
第5页 / 共31页
第6页 / 共31页
第7页 / 共31页
第8页 / 共31页
第9页 / 共31页
第10页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
SAP系统增强应用入门培训,1,提纲,2,功能增强 增强理论 增强实例 报表编写 功能段划分 功能段效果,功能增强-增强理论,3,增强(enhancement)的概念其实很广,SAP标准系统之上的所有二次开发,我们都可以理解为增强,做增强的目的就是标准的sap正常的业务系统不能满足实际需求,所以我们在标准的系统基础进行增加不同的功能来达到不同企业的要求,换句话说我们今天开发过程中所有的ADD-ON都可以说是增强开发。 但作为开发人员所说的增强主要是标准系统事先预留好的接口,根据不同业务需求,进行开发,我们称为增强,又叫出口。,功能增强-增强理论,4,比如: 1、在业务检查时,比如在某个工厂发货,可以设定在某个库位的出货只能使用某种移动类型。 2、在需要界面增强时,比如用户对某个字段要求大写,但是最终用户不按规范操作,这也可以在出口中自动转换,有些模块甚至能自定义数据库字段,并且可以在出口中增加字段输入。还有的模块能对输入数据检查,甚至实现自动替代等功能。 3、有不规则业务时,比如按某种条件定价,可以设定从自己定义的表中按某种条件取值 。 4、搜索帮助的出口,可以对Sap标准的搜索帮助做权限控制等等。,功能增强-增强理论,5,放学路上:,功能增强-增强理论,6,Sap的用户出口发展至今有四代: 第一代(基于源代码的增强)是sap提供一个空代码的子过程,在这个子过程中用户可以添加自己的代码,控制自己的需求。这类增强都需要修改sap的标准代码,它们在发布的时候都是空的,集中在一些文件名倒数第二个字符为Z的包含程序中,由于在标准程序中,所以所有程序的全局数据都可以使用,但同时系统升级时会被新版本覆盖;这种源代码增强和屏幕增强的说明可以从事务码 spro 后台配置中相关模块的路径里面找到;一般是以UserExit_打头的子模块。,功能增强-增强理论,7,Sap的用户出口发展至今有四代: 第二代增强(基于函数模块的增强),用SMOD和CMOD维护;在SAP发布的版本中,使用Call customer-function xxx调用函数模块的,所以你可以通过在程序中收cusomer-function来查找第二代增强,第二代增强函数名构成:Exit_程序名_xxx(3 digital number),这样你就可以找到对应的增强函数模块了,它们在发布的时候只有一句代码include xxxxxxx,修改时无需像第一代增强一样需要ACCESS key,直接双击回车就可以了,但同时这种增强以及后面几代的增强都不能像第一代一样随便使用程序的全局数据,只能使用接口中传递进来的参数。,功能增强-增强理论,8,Sap的用户出口发展至今有四代: 第三代增强(基于面向对象概念的增强BADI(business add-in)),源代码发布以接口的方式,通过接口的方法调用来实现使用的。用户增强实际上是实现一个或多个基于这个接口的实现类,因为接口类实际上是一个抽象类,所以对同一个增强会出现不同的源代码,这些不同的源代码是通过过滤器(adapter)来区别用于不同的业务场景的。这种增强是用SE18 SE19来实现的。,功能增强-增强理论,9,Sap的用户出口发展至今有四代: 第四代其实是第三代的加强switch Framework 当sap进入netweaver 7.0以后推出的新增强体系,将BADI进行了改进,叫新BADI了。还新增 Enhancement Spot 和 Enhancement Section 以及隐式增强点的概念,基本可以在面向对象的程序里实现处处皆可增强的最高境界。,提纲,10,功能增强 增强理论 增强实例 报表编写 功能段划分 功能段效果,功能增强-增强实例,11,例程类: 根据业务配置需要,在合适的地方进行功能的添加和完善; 利用后台配置路径上的【系统修正】功能; 在【系统修正】处新增自定义需求或例程; 在配置中合适的位置使用自定义增强; *原则: 尽可能的使用该增强处所能使用的变量; 因增强都处于业务处理过程中,故需减少直接对数据库的操作,以避免效率问题;,功能增强-增强实例,12,示例一:定价过程标准接口预留(定价“计算类型”),需 求,计算类型,业务数据,定价过程,条件类型,定价数据表,存取顺序,1、需求914,2、需求900,3、公式909,功能增强-增强实例,13,示例一:定价过程标准接口预留(定价“计算类型”),1、需求914,需求类例程,返回结果是状态标志位sy-subrc; 如果订单类型为ZFD时, 如果条件类型不为空时, 如果条件类型为ZHI1/ZPR1时,不处理,否则修改状态标志位sy-subrc=4。 实现ZFD订单定价中除ZHI1/ZPR1条件类型外,都不能取出定价的效果。,功能增强-增强实例,14,示例一:定价过程标准接口预留(定价“计算类型”),1、需求900,需求类例程,返回结果是状态标志位sy-subrc; 如果客户定价组为15或者16或者25时,或者物料代码为B900100001时, 修改状态标志位 sy-subrc=0。 实现定价提取时,只有经销商类客户和特殊放行物料可满足该存取关键字条件,可以继续提取定价。,功能增强-增强实例,15,示例一:定价过程标准接口预留(定价“计算类型”),1、公式909,公式类例程,返回结果是变量 xkwert 的值; 如果销售业务的订单 或 交货 或 发票为原材料销售业务时,且送达方客户代码以SQ开头,则将成本字段值乘以1.17或1.13(判断物料税分类)后,传递给变量xkwert;否则。将变量xkwert置零。 实现定价提取时,针对原材料销售业务,自动提取物料成本乘以税率作为销售价格。,功能增强-增强实例,16,程序类: 根据业务配置需要,在合适的地方进行功能的添加和完善; 四代增强的查找使用; 利用后台配置路径上的【系统修正】功能; 在后台配置路径的【文本说明】中查找具体增强位置及说明; 资料上获得的增强信息,验证后使用; *原则: 尽可能的使用该增强处所能使用的变量; 因增强都处于业务处理过程中,故需减少直接对数据库的操作,以避免效率问题; 在合适的功能上,找到合适的位置,写段合适的代码,实现正确的目的;,功能增强-增强实例,17,示例二:全丰订单评估类型增强需求 订单类型为ZORC,输入物料后,检查物料主数据MARC-BWTTY字段值: 评估类型=C:自动赋值Z001 评估类型=D:自动赋值 zichan 评估类型=空:不赋值 订单类型为ZORD,输入物料后,检查物料主数据MARC-BWTTY字段值: 评估类型C:自动赋值Z002 评估类型D:自动赋值 waigou 评估类型=空:不赋值,功能增强-增强实例,18,示例二:全丰订单评估类型增强实现,功能增强-增强实例,19,示例三:交货单数量为零时设置项目发票状态为无关 在交货单数量为零时,将交货单项目的状态修改为空(与发票无关,不会形成零数量的未清开票项目),功能增强-增强实例,20,示例四:交货单定价自动计算增强 当在销售订单交货时,或交货单自动修改后,自动计算交货单定价值并写入LIPS的功能增强; 现有系统部署因交货单定价过程中定价日期与订单不能保持一致问题,且交货单定价过程分配已经取消,故使用此增强实现交货单定价效果; 该功能还可以通过给交货单分配定价过程,同时通过增强完善交货单定价日期与订单定价日期保持一致的功能增强来实现;,功能增强-增强实例,21,示例四:交货单定价自动计算增强,提纲,22,功能增强 增强理论 增强实例 报表编写 功能段划分 功能段效果,报表编写-功能段划分,23,报表程序功能段:,1、程序声明,2、声明定义,3、定义屏幕,4、屏幕检查,5、数据处理,6、数据输出,REPORT,DATA、TYPE,SELECTION-SCREEN,AT SELECTION-SCREEN,START-OF-SELECTION,END-OF-SELECTION,报表编写-功能段划分,24,1、程序声明:ERPORT 此处做为程序名称的声明,是程序第一个有效语句; 2、声明定义:DATA、TYPE 类型声明:TYPES、TYPE-POOLS 常数声明:CONSTANTS 变量声明:TABLES、DATA 定义程序处理过程中用到的变量和临时表等;,报表编写-功能段划分,25,3、定义屏幕:SELECTION-SCREEN SELECTION-SCREEN,定义屏幕一个选择块; SELECT-OPTIONS,定义屏幕一个选择变量; 4、屏幕检查:AT SELECTION-SCREEN 针对屏幕输入数据,做逻辑性检查; 针对屏幕数据数据,做权限检查;,报表编写-功能段划分,26,5、数据处理:START-OF-SELECTION 在此事件块中进行数据逻辑关系的处理; 代码块(INCLUDE)、子程序(FORM、PERFORM)、函数(CALL FUNCTION); 数据库语句:SELECT(查询)、INSERT(插入)、UPDATE(更新)、DELETE(删除)、MODIFY(修改:插入或修改); 判断语句:IF、CASE ; 循环语句:DO、WHILE、LOOP、SELECT; 输出语句:WRITE(非 ALV 格式输出使用); 系统字段:SY-SUBRC(执行结果状态)、SY-MANDT(客户端)、SY-UNAME(用户名)、SY-DATUM(日期)、SY-UZEIT(时间)、SY-TCODE(事务码)、SY-INDEX(循环次数),报表编写-功能段划分,27,6、数据输出:END-OF-SELECTION 输出语句:WRITE(非 ALV 格式输出使用); 函数调用:CALL FUNCTION REUSE_ALV_GRID_DISPLAY;,本程序名称,需输出的临时表,提纲,28,功能增强 增强理论 增强实例 报表编写 功能段划分 功能段效果,报表编写-功能段效果,29,程序功能段:,1、程序声明,2、声明定义,3、定义屏幕,4、屏幕检查,5、数据处理,6、数据输出,REPORT,DATA、TYPE,SELECTION-SCREEN,AT SELECTION-SCREEN,START-OF-SELECTION,END-OF-SELECTION,程序编写-功能段效果,30,程序功能段: 代码介绍; 功能调试; ZSD_YHB007;,结束语,31,THANKS,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号