SAP_ABAP_BADI AND NEW BADI

本文详细介绍了BADI(Business Add-In)及其在ECC6.0中的新形式NEWBADI的概念、实现步骤及两者之间的区别。通过面向对象技术,BADI允许在不修改标准代码的情况下扩展业务流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BADI是business add-in的缩写。它是一种新的功能增强概念,使用面向对象技术。实现BADI要用到接口、实施类以及方法等面向对象的概念。
BADI增强实现过程:首先定义BADI实现,为BADI实现指定一个接口→然后创建一个实施类来实现这个接口→最后在实施类的相应方法中编写代码实现业务逻辑。
CLASS BADI的实现步骤:
1、SE19输入BADI名字,比如MB_MIGO_BADI,单击按钮“创建实现”,在弹出的对话框中输入BADI实现的名字和描述,比如ZMB_MB_MIGO_BADI,(自动)为BADI实现指定一个接口(IF_EX+BADI名);
2、创建一个实施类来实现这个接口(ZCL_IM_BADI名);
3、在实施类的相应方法中编写代码实现业务逻辑。
NEW BADI的实现步骤:
1、SE19输入增强点名字,比如MB_MIGO_BADI,单击按钮“创建实现”,在弹出的对话框中输入增强实现的名字和描述,比如ZMB_MB_MIGO_BADI_NEW,(自动)为BADI实现指定一个接口(IF_EX+BADI名);
2、创建一个实施类来实现这个接口(ZCL_IM_BADI名);
3、在实施类的相应方法中编写代码实现业务逻辑。
ECC 6.0中,新建CLASS BADI会自动移植到NEW BADI,实现步骤:
1、SE19输入BADI名字,比如MB_MIGO_BADI,单击按钮“创建实现”,在弹出的对话框中输入BADI实现的名字和描述,比如ZMB_MB_MIGO_BADI,(自动)为BADI实现指定一个接口(IF_EX+BADI名);
2、创建一个实施类来实现这个接口,ZCL_IM_BADI名;
3、保存,提示已移植BADI实现,回车,在弹出的对话框中,单击创建按钮,创建NEW BADI(增强实现),输入增强实现的名字和描述,比如ZMB_MIGO_BADI_NEW;
4、保存激活NEW BADI;
5、删除刚创建的BADI实现;
6、在NEW BADI(增强实现)中的执行类的相应方法中写代码实业务逻辑。
BADI和NEW BADI的区别:
1、CLASS BADI用call method获取BADI,CALL METHOD CL_EXITHANDLER=>GET_INST CHANGING INSTANCE = badi_name
NEW BADI不能用call method获取BADI,要用GET BADI badi_name;
2、CLASS BADI用CALL METHOD调用BADI中的方法 CALL METHOD badi_name->method EXPORTING LGORT = wa_lgort;
NEW BADI用CALL BADI调用BADI中的方法 CALL BADI badi_name->method EXPORTING LGORT = wa_lgort;
3、NEW BADI中新增了ENHANCEMENT SPOT增强点、ENHANCEMENT SECTION以及隐式增强点的概念。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值