BADIs 概览

BADIs是Business Add-Ins的缩写,BADIs是基于ABAP面向对象的SAP增强的新技术,它可以插入到SAP系统中,以实现用户个性化的需求,而此类需求由于过于特殊,以至于SAP标准系统无法实现。

BADIs应该被当作为广义的函数模块,这单个函数模块捆绑了程序,菜单,屏幕增强。
每一个BADIs包括:

  • 至少一个BADIs的定义
  • 一个BADIs接口
  • 一个BADIs接口的实施类

BADIs特性:

  • 使用面向对象的方法
  • 包括两部分:定义和实施,定义既可以由SAP提供也可以用户自己创造
  • 不再假定双层系统架构(SAP /  客户)
  • 允许多层次的程序开发 ( SAP, partners, customers, and as country versions, industry solutions, and the like)
  • 可以拥有多层表达 - 例如一个BADI的执行可以基于多个标准
  • 版本升级不会影响标准程序调用增强也不会影响接口的可用性
  • 无 SSCR (SAP Software Change Registration) 要求

定义BADI:

T-CODE: SE18(定义函数模块)

下载

Definition-Attributes:

  • 当一个BADI被创建时, Adapter Class名称自动添加'CL_EX_'在名字抬头
  • Multiple use:当这个选项被选择时,同一个BADI可以多次被实施 
  • Filter-Dependent : BADIs可以根据特定的Filter值进行实施 (例如, 特定国家版本: 不同的国家可以用一个BADI进行不同的实施). 当定义一个这类BADIs时,Filter值的类型必须输入(例如:一个国家 or 某个部门). 这个BADI接口中的所有方法在创建时,都会产生一个输入参数'FLT_VAL'作为Filter值。在这个方法执行时,该方法会根据Filter值来选择激活的实施 

Definition-Interface:

  • 当一个接口被创建时,会自动添加'IF_EX_'在接口名称的抬头,双击接口,可以直接进入类编辑器,进行参数,方法和例外的编辑

Definition-Interface-Methods:

  • 在类编辑器里面具体实现接口的方法
  • 实例方法先于类的所有属性,并且可以调用类的所有事件
  • 静态方法只能先于静态属性,调用静态事件
  • 创建参数按钮查看方法的Import/Export参数    

Definition-Interface-Methods-Parameter:

  • 方法的Import/Export参数在'Parameters'中定义
  • 类型指明了参数的类型(Importing, Exporting, Changing or Returning)
  • 非必输参数,选择Optional field
  • 可以指定type, default value and description of the parameter          

Definition-Interface-Methods-Exceptions:

  • 此部分可以指明异常处理
  • 对于异常类,选择 'Exception Classes'
原文地址:https://www.cnblogs.com/SolisOculus/p/2957587.html