一、什么是增强?
1、基于SAP源代码的增强:对SAP所预留的空的子过程进行编码,用户可以编辑此过程,并在这个子过程中添加自定义的代码,以增加SAP标准程序的控制功能。
2、基于函数的增强:SAP为此类出口提供了相应的函数,依据函数结构指定的传入/传出参数,程序执行时,调用该函数并检查相应的代码。
3、SAP BADI:使用面向对象的方式实现增强。
什么是BADI?
1、BADI(business add-ins)是SAP在R/3 release 4.6A后增加的增强技术。中的来说,BADIS克服了之前出口的所有缺点,用的是OO技术实现。
BADI的调用机制:先调用一个方法,找到具体实现内容。
相关事务码,SE18创建及维护接口、类,SE19维护实例,功能的实现。
二、如何找BADI增强?
1、进SE24查看,对象类型CL_EXITHANDLER

2、找到GET_INSTANCE方法,双击进去

3、在第一个方法打断点

4、再执行需要做增强的事务码,如va01,直接就进入debug,查看变量exit_name,即BADI名

5、记录涉及到的每个增强的名称,F8找下一个增强的名字
BADI_SCREEN_LOGIC_RT
W_RETAILSYSTEM_IDENT
BADI_MATN1
到输入物料代码页面,选择视图
BADI_MATERIAL_OD
到选择销售视图

选择销售视图和分销渠道
进入事务码后
BADI_MATERIAL_OD
GOS_SRV_SELECT
BADI_LAYER
BADI_MATERIAL_OD
BADI_MATERIAL_REF

6、在以上增强函数中找出可以填写默认值的增强、物料的一般信息。
先在SE18中找出所有函数的描述,方便筛选出对应的函数
|
BADI_SCREEN_LOGIC_RT |
屏幕顺序/有效性客户自我控制出口 |
|
W_RETAILSYSTEM_IDENT |
系统配置 'SAP 零售'的识别 |
|
BADI_MATN1 |
转换退出MATN1的BAdI |
|
BADI_MATERIAL_OD |
物料或条款主数据中新对象的集成 |
|
GOS_SRV_SELECT |
GOS: 限制一般服务的选择 |
|
BADI_LAYER |
业务加载项管理的层值管理 |
|
BADI_MATERIAL_OD |
物料或条款主数据中新对象的集成 |
|
BADI_MATERIAL_REF |
物料的附加客户定义缺省数据 |
找到三个可能的函数
7、SE18查看BADI,输入BADI名称

可以看到接口名称以及所包含的方法

8、双击接口名称,查看,最后找到的相关变量

三、增强实例
实现功能:MM01创建销售视图时自动填税分类为 1。
条件:
销售组织架构一般信息
工厂6011
销售组织6011
分销渠道10
将changing的参数
CT_SALLES_TAX-TAXKM,赋初始值1.
如何实现功能
1、SE18中创建

2、输入实施名称

3、填写文本后保存
类似类的继承

4、保存后双击进去写功能代码

5、根据需求写功能代码

6、激活接口

7、SE18查看实施

黄色表示已激活

反激活时

8、最终实现MM01创建销售视图时,税分类自动填1

如何查看字段名,F1



1191

被折叠的 条评论
为什么被折叠?



