必威体育Betway必威体育官网
当前位置:首页 > IT技术

SAP 增强学习(3):三代增强 BADI

时间:2019-07-03 03:43:27来源:IT技术作者:seo实验室小编阅读:89次「手机版」
 

增强

使用到的TCODE:SE24 、SE18、SE19

需求样例:使用MM01创建物料的销售视图时,销项税分类的字段自动填写默认值0。(因为MM01创建销售视图时虽然屏幕上并没有必输项,但是直接保存会提示销项税没维护的错误)

  1. 介绍

由于一代、二代增强还是不能满足所有的业务需求,所有SAP在一代增强和二代增强的基础又开发出来第三代的增强。这就是BADI。BADI运用了面向对象的方式来体现增强。运用面向对象的思想来实现增强的话管理和实现起来就会方便很多,而且对系统的影响会比一代和二代增强小的多(因为,一代和二代增强都是直接在原程序里面进行修改的)。

  1. 学习的步骤
  1. 如何查找BADI.

第一种方式:

SE38->事务代码对应的程序名->在程序内搜索CL_EXIThandler

第二种方式:

SE24-> CL_EXITHANDLER->在GET_instance中打断点,然后运行相应事物码根据它来找到运行到的BADI。

第三种方式:

它的调用方式是call method(instance), 可以通过exit_handler关键词来查找

第四种方式:

ST05选择“table buffer trace”而不是常用的"sql trace",然后查找表和视图(SXS_INTER,SXC_EXIT,SXC_CLASS和SXC_ATTR)找到对应的BADI.

  1. 根据上面的方法来实现我们的需求:SE24-> CL_EXITHANDLER->在GET_INSTANCE中打断点

然后查找到下面这些BADI

输入TCODE-MM01后

BADI_SCREEN_LOGIC_RT

W_RETaiLSYSTEM_IDENT

BADI_MATN1

选择视图时

BADI_MATERIAL_OD

进入事务代码后

BADI_MATERIAL_OD

ECM_EXIT

BADI_LAYER

GOS_SRV_SELECT

BADI_MATERIAL_OD

BADI_MATERIAL_REF

  1. 查看BADI。

在SE18中分别查看这些BADI。如下图

这个增强BADI_MATN1下包含了一个接口IF_EX_BADI_MATN1,而这个接口下面包含了4个方法。查看这些方法是否有我们的需求。

点进方法里面取看,很显然,这是一个对MATNR进行输入输出转换增强。并不是我们想要的。

按照同样的步骤来查找最后可以找到是在BADI_MATERIAL_REF下CREATE_MATERIAL方法。然后在CT_SALES_TAX这个结构内去完成我们的需求。(小技巧,寻找BADI的时候如这个在给字段一个初始的默认值。那么可以先找到这个字段对应的字段名,然后根据参数中的描述和字段名去搜)

描述是对物料的税(非常接近我们想要的需求了)。

然后看它参考的结构,和屏幕字段上面的完全一致。确定就是它了。

  1. 已经找到需要的BADI了,接下来就是用BADI去实现我们的需求。

首先我们要创建一个BADI的实现(BADI是面向对象的思想,可以把BADI理解为一个类)可以在SE18下这里的增强或者点击显示进去后的创建,这2种方法是完全一致的。

双击方法进去写代码

写完后激活。

然后激活增强(上面是激活程序,这个是激活增强。不是一个东西!)

一般来说在测试增强前都要先检测确认下增强是否被激活

可以发现进入屏幕后自带默认值0了。完成测试。

学习心得: BADI可以说是基于面向对象概念的增强BADI源代码发布以接口的方式,通过接口来让用户实现增强,可以说让用户可以使用增强的地方更多了些。

容易的地方: 由于BADI都是一些接口,所以只需要找到对应的接口传对应的参数即可完成我们的需求。

难点:也由于BADI都是一些接口,所以有可能会有很多的参数。要找的我们需要的BADI和参数会有点难度。

相关阅读

ERP和SAP是什么意思

每天都在讲ERP,公司在做ERP软件,到底ERP是什么意思呢?ERP和SAP指什么意思呢?老吧查询并整理了ERP和SAP的相关解释如下:ERP是英文Enterp

RtAudio与DirectSound、ASIO和WASAPI

之前写过一篇文章,谈到我在折腾 RtAudio 5.0 版本。它支持 DirectSound、ASIO和WASAPI 三种底层,最初的时候,使用 DS 肯定是最省事了

SAP预付账款处理

采购流程 : 采购订单--->采购收货--->采购发票--->采购付款(清帐) 1 总账做发票(仅仅总账) 2 采购订单 3 采购订单收货 4 采购订单做

SAP系统接口方式:

https://www.cnblogs.com/rainysblog/p/8177930.html 1.PI - 信使中间件 (大公司多选择) 数据: SAP- PI- U8U8- PI- SAPPI 底层用

社交巨头三国杀:微信、WhatsApp、Line到底有啥区别?

美团创始人王兴在《九败一胜》里提出过一个“四纵三横”的理论:四纵即互联网的四大热门领域——资讯、交流(社交)、娱乐、商务。在这

分享到:

栏目导航

推荐阅读

热门阅读