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相关推荐

  1. SAP BADI应用

    SAP BADI应用 1.定义BADI          1) T-Code:  SE18     Business Add-In Define. 2) 输入要创建的BADI的名字,点击"C ...

  2. 【整理】BADI的查找和使用

    BADI的查找和使用 一.BADI简介 BADI是SAP主要的增强的方式之一,目前BADI有两种:CLassic BADI 和 New BADI.两种BADI的基本原理差不多,但是具体的实现方式不同, ...

  3. 【ABAP增强】基于BADI的增强

    BADI的全称是Business Add-in,它的主要技术是基于ABAP的对象来实现增强.SAP中BADI的维护事务代码是SE18和SE19,SE18主要是创建及维护BADI对象,而SE19用于维护 ...

  4. [三代] 获取BADI对象的两种方法

    1.直接调用方法 cl_exithandler=>get_instance(老方法) CLASS: cl_exithandler DEFINITION LOAD.DATA: l_badi_ins ...

  5. BADI中Filter Dependent和Multiple Use

    一.Filter Dependent 1.Overview 如果实施一个特定功能的增强时,有时想想基于一些参数有不同的版本(e.g. 根据国家或者公司代码), 这时相同的一个BADI就需要生成多个不同 ...

  6. 一个BADI中实施多个Implementation

    业务场景:例如我们需要对国家的税率做一个增强,以完成某种业务运算,但是每个国家的税率又是不同的,所以可以新建一个BADI用于增强国家税率计算,对BADI进行多次实施,分别用于不同国家的税率计算. 1. ...

  7. User Exits,Customer Exits,BADI and BTE基本概念

    Basic Concepts: 1. User Exits:是系统中预留的一些空的Form/Subroutine,获得Access key后可以在Form中写入自己的逻辑. 2. Customer E ...

  8. 采购订单检查/保存BADI使用

    BADI:ME_PROCESS_PO_CUST 需求: 2.1 根据采购申请是否经过修改或采购申请的类型,确定订单为一级审批还是二级审批.一级 审批订单汇总号为80,二级审批订单汇总号为90.系统默认 ...

  9. me21n增强BADI:ME_PROCESS_PO_CUST之process_account

    当实施ME_PROCESS_PO_CUST这个badi来增强ME21N的时候,用了到方法process_account,既对ME21N的行项目的科目分配做增强.主要用到如下类: IF_PURCHASE ...

最新文章

  1. java布道师_初探第10代Java帝国:11位Java专家道出了他们最喜欢的功能
  2. 好程序员Web前端分享无法忽视的JavaScript技巧
  3. C学习杂记(二)笔试题:不使用任何中间变量如何将a、b的值进行交换
  4. 如何查看一个组件的 classid是多少_如何快速查看胎压?胎压多少才正常?带您全面了解爱车的轮胎...
  5. 滴滴,一个连接者的责任边界
  6. Linux中的nc测试端口是否开放
  7. Django 系列博客(二)
  8. conda python源配置
  9. 正态逆威沙特分布NIW
  10. 工作两年简历写成这样,谁要你呀!
  11. 怎样快速熟悉公司产品
  12. android 调用onclick事件,在Android上使用onClick()事件时出错
  13. with admin option和with grant option的区别与用法
  14. 接口文档编辑工具+接口文档编写
  15. Android给文件改后缀名
  16. IPC Send timeout/node eviction etc with high packet reassembles failure
  17. 清除页面缓存快捷键-避免重新登陆方式
  18. 小米电脑重装系统后亮度无法调节的解决办法
  19. Linux安装与卸载Nginx
  20. 小猿圈预测2019年Linux云计算发展前景

热门文章

  1. 使能 HTTPS ----- 安全的访问 Tomcat, SpringBoot
  2. 140个绝对绝对值得收藏的电脑技巧
  3. 配置路由器接口使用PPP协议封装
  4. jquery 照片墙抽奖_使用jQuery滑动面板照片墙画廊
  5. [bx]和loop指令编程
  6. matlab中画圆圈,如何在Matlab中绘制圆圈?
  7. CAD文件如何转成PDF格式?告诉你如何转换
  8. iOS15绕过激活工具TiggerRamDisk3.4,支持最新iOS15.5绕过
  9. python 获取巨量星图数据
  10. 网易运营微专业 目录