当前位置: 首页 > Web前端 > HTML

什么是SAPBAPI

时间:2023-04-02 23:22:39 HTML

SAPBAPI,全称是业务应用程序编程接口(BusinessApplicationProgrammingInterface),是SAP产品中业务对象模型的标准接口。BAPI是客户代码和第三方应用程序与SAP产品交互的主要方法。BAPI封装了SAP业务对象模型的内部层,以确保在访问或更改业务对象时正确执行所有业务逻辑、验证和授权检查。BAPI的工作原理BAPI是作为调用SAP内部代码的功能模块实现的。根据所使用的BAPI集,他们可以调用使用业务对象处理框架(BOPF)定义的业务对象模型或使用程序、表和功能模块定义的遗留模型。BAPI公开了一个正式且稳定的接口,第三方代码的客户和开发人员可以使用该接口以SAP保证在未来工作的方式访问SAP业务对象并与之交互。也可以访问SAP系统中的底层表和非BAPI功能模块、程序和类,但不保证以后代码能正常工作,甚至不保证被访问的对象存在。这种非BAPI接口的使用可能会在升级过程中引起问题,或者如果内部功能模块的签名发生变化,则需要小补丁,从而使依赖它的代码无效。BAPI的使用BAPI仅应由第三方或客户开发人员在发布时使用,这意味着它们已被SAP指定为可用并保证将来稳定。您可以通过查看功能模块BAPI的属性部分中的发布日期来检查发布状态。如果该字段为空,则BAPI尚未由SAP发布,不应使用。要在高级业务应用程序编程(ABAP)语言中使用SAPBAPI,开发人员使用ABAP的CALLFUNCTION来调用功能模块(见下图1)。或者,大多数BAPI是远程的,这意味着它们可以通过远程函数调用(RFC)、Web服务或SAP的Java连接器调用。在每个基于ABAP平台的SAP产品中,都有BAPI可以实现大多数业务流程的完全自动化。每个SAP产品的文档都提供了有关可用BAPI的一些信息。在SE37和SE80SAP事务代码或Eclipse的ABAP中搜索以BAPI开头的功能模块也很有用。每个BAPI功能模块都应具有多种语言的大量文档,可通过SE37中的功能模块文档选项访问。仔细阅读本文档很重要,因为BAPI的结构和行为差异很大,如果不满足它们的要求,它们有时会以开发人员不期望的方式运行。许多BAPI具有模仿底层业务对象结构的复杂结构。本文屏幕截图2中显示的用于修改业务合作伙伴地址的BAPI(与本文屏幕截图1中显示的CALLFUNCTION相同)包括几个导入结构以及一些将附加信息传入和传出的表参数BAPI。本文截图2中的两个重要参数是ADDRESSDATA和ADDRESSDATA_X。这种类型的配对是典型的BAPI,其中第二个_X结构是一组标志,准确指示应更新哪些字段。因为BAPI是作为功能模块实现的,所以它们自然不适合类、方法和接口的ABAP面向对象编程(OOP)范例。然而,它们通常以面向对象的方式实现,因为它们是SAP业务对象的接口。在ABAP中,这些功能模块可以从程序、功能模块或类中调用。通常最好将BAPI调用包装在数据访问对象(DAO)中,DAO是封装BAPI调用的类。这样做可以使用模拟版本的DAO进行单元测试,允许将开发人员代码的测试与BAPI调用本身的测试分开。