SAP_ABAP_BADI AND NEW BADI
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以及隐式增强点的概念。
SAP_ABAP_BADI AND NEW BADI相关推荐
- SAP BADI应用
SAP BADI应用 1.定义BADI 1) T-Code: SE18 Business Add-In Define. 2) 输入要创建的BADI的名字,点击"C ...
- 【整理】BADI的查找和使用
BADI的查找和使用 一.BADI简介 BADI是SAP主要的增强的方式之一,目前BADI有两种:CLassic BADI 和 New BADI.两种BADI的基本原理差不多,但是具体的实现方式不同, ...
- 【ABAP增强】基于BADI的增强
BADI的全称是Business Add-in,它的主要技术是基于ABAP的对象来实现增强.SAP中BADI的维护事务代码是SE18和SE19,SE18主要是创建及维护BADI对象,而SE19用于维护 ...
- [三代] 获取BADI对象的两种方法
1.直接调用方法 cl_exithandler=>get_instance(老方法) CLASS: cl_exithandler DEFINITION LOAD.DATA: l_badi_ins ...
- BADI中Filter Dependent和Multiple Use
一.Filter Dependent 1.Overview 如果实施一个特定功能的增强时,有时想想基于一些参数有不同的版本(e.g. 根据国家或者公司代码), 这时相同的一个BADI就需要生成多个不同 ...
- 一个BADI中实施多个Implementation
业务场景:例如我们需要对国家的税率做一个增强,以完成某种业务运算,但是每个国家的税率又是不同的,所以可以新建一个BADI用于增强国家税率计算,对BADI进行多次实施,分别用于不同国家的税率计算. 1. ...
- User Exits,Customer Exits,BADI and BTE基本概念
Basic Concepts: 1. User Exits:是系统中预留的一些空的Form/Subroutine,获得Access key后可以在Form中写入自己的逻辑. 2. Customer E ...
- 采购订单检查/保存BADI使用
BADI:ME_PROCESS_PO_CUST 需求: 2.1 根据采购申请是否经过修改或采购申请的类型,确定订单为一级审批还是二级审批.一级 审批订单汇总号为80,二级审批订单汇总号为90.系统默认 ...
- me21n增强BADI:ME_PROCESS_PO_CUST之process_account
当实施ME_PROCESS_PO_CUST这个badi来增强ME21N的时候,用了到方法process_account,既对ME21N的行项目的科目分配做增强.主要用到如下类: IF_PURCHASE ...
最新文章
- java布道师_初探第10代Java帝国:11位Java专家道出了他们最喜欢的功能
- 好程序员Web前端分享无法忽视的JavaScript技巧
- C学习杂记(二)笔试题:不使用任何中间变量如何将a、b的值进行交换
- 如何查看一个组件的 classid是多少_如何快速查看胎压?胎压多少才正常?带您全面了解爱车的轮胎...
- 滴滴,一个连接者的责任边界
- Linux中的nc测试端口是否开放
- Django 系列博客(二)
- conda python源配置
- 正态逆威沙特分布NIW
- 工作两年简历写成这样,谁要你呀!
- 怎样快速熟悉公司产品
- android 调用onclick事件,在Android上使用onClick()事件时出错
- with admin option和with grant option的区别与用法
- 接口文档编辑工具+接口文档编写
- Android给文件改后缀名
- IPC Send timeout/node eviction etc with high packet reassembles failure
- 清除页面缓存快捷键-避免重新登陆方式
- 小米电脑重装系统后亮度无法调节的解决办法
- Linux安装与卸载Nginx
- 小猿圈预测2019年Linux云计算发展前景