SAP ABAP 第三代输出接口 BAdIs(BusinessAdd-Ins)

在某些情况下,需要在软件应用程序中预定义特殊功能,以增强各种应用程序的功能。有许多 Microsoft Excel 加载项用于改进 MS Excel 的功能。类似地,SAP 通过提供称为 BAdIs(BusinessAdd-Ins) 的业务插件来简化一些预定义的功能。

BADI 是一种增强技术,可帮助 SAP 程序员、用户或特定行业向 SAP 系统中的现有程序添加一些额外代码。我们可以使用标准或定制逻辑来改进 SAP 系统。必须首先定义并实施 BADI,以增强 SAP 应用程序。定义 BADI 时,会创建一个接口。BADI 由该接口实现,该接口又由一个或多个适配器类实现。

BADI 技术在两个方面不同于其他增强技术:

  • 增强技术只能实现一次。
  • 这种增强技术可以由许多客户同时使用。

您还可以创建过滤器 BAdIs,这意味着 BAdIs 是在过滤数据的基础上定义的,这是增强技术所无法实现的。SAP 7.0 版重新定义了 BAdIs 的概念,其目标如下:

  • 通过在 ABAP 语言中添加两个新元素来增强 SAP 系统中的标准应用程序,即 GET BADICALL BADI
  • 为增强 SAP 系统中的标准应用程序提供更灵活的功能,如上下文和过滤器。

创建 BADI 时,它包含一个界面和其他附加组件,例如菜单增强和屏幕增强的功能代码。BADI 创建可以让客户在标准 SAP 应用程序中包含他们自己的增强功能。增强、接口和生成的类位于适当的应用程序开发命名空间中。

因此,BADI 可以被视为一种增强技术,使用 ABAP 对象在 SAP 组件中创建 预定义点(predefined points)。然后,这些预定义点由各个行业解决方案、国家/地区变体、合作伙伴和客户实施,以满足其特定需求。实际上,SAP 在 4.6A 版中引入了 BADI 增强技术,该技术在 7.0 版中再次实现。