EasySAP百科  > 所属分类  >  ABAP   
[2] 评论[1] 编辑

BAPI

T-CODE: BAPIT-CODE: BAPI

SAP BAPI(业务应用程序编程接口)是SAP产品中业务对象模型的标准接口

BAPI 是客户代码和第三方应用程序与 SAP 产品交互的主要方法。BAPI 封装了 SAP 业务对象模型的内部层,以确保在访问或更改业务对象时正确执行所有业务逻辑、验证和授权检查。

BAPI 的工作原理

BAPI 作为调用 SAP 内部代码的功能模块来实现。根据使用的 BAPI 集,它们可以调用使用业务对象处理框架 (BOPF) 定义的业务对象模型或使用程序、表和功能模块定义的遗留模型。

BAPI 公开了一个正式且稳定的接口,客户和第三方代码的开发人员可以使用该接口以 SAP 保证在未来工作的方式访问 SAP 业务对象并与之交互。在 SAP 系统中也可以访问底层表和非 BAPI 功能模块、程序和类,但它并不能保证代码将来会起作用,或者被访问的对象甚至会存在。

如果内部功能模块的签名发生变化,则使用非 BAPI 接口可能会导致升级过程中出现问题或需要小补丁,从而使依赖它的代码无效。

SAP BAPI 使用

如果 BAPI 已经发布,则应该只供第三方或客户开发人员使用,这意味着 SAP 已将它们指定为随时可用并保证在未来保持稳定。发布状态可以通过查看功能模块 BAPI 的属性部分中的发布日期来检查。如果该字段为空,则表示 SAP 尚未发布 BAPI,不应使用该 BAPI。

要使用高级业务应用程序编程 ( ABAP ) 语言中的 SAP BAPI ,开发人员使用 ABAP 的 CALL FUNCTION 来调用功能模块(请参见屏幕截图 1)。或者,大多数 BAPI 都支持远程,这意味着它们可以通过远程函数调用 (RFC)、Web 服务或 SAP 的Java连接器调用


ABAP 调用函数

伊森·朱维特

用于更改地址的 ABAP CALL FUNCTION 的屏幕截图

SAP BAPI 功能

在基于 ABAP 平台的每个 SAP 产品中,都有 BAPI 支持大多数业务流程的完全自动化。每个 SAP 产品的文档都提供了有关可用 BAPI 的一些信息。在 SE37 和 SE80 SAP 事务代码或Eclipse 的ABAP 中搜索以 BAPI 开头的功能模块也很有用

每个 BAPI 功能模块都应具有多种语言的大量文档,可通过 SE37 中的功能模块文档选项访问。彻底阅读本文档很重要,因为 BAPI 的结构和行为千差万别,如果不满足其要求,它们有时会以意想不到的方式工作或失败并显示神秘的错误消息。

用于更改地址的 SAP BAPI 代码

伊森·朱维特

用于更改地址的 BAPI 代码

许多 BAPI 具有模仿底层业务对象结构的复杂结构。屏幕截图 2 中显示的用于修改业务伙伴地址的 BAPI —— 屏幕截图 1 中显示的相同 CALL FUNCTION —— 包括多个导入结构,以及大量表参数,这些参数可以向 BAPI 传递附加信息和从 BAPI 传递附加信息。

屏幕截图 2 中的两个重要参数是 ADDRESSDATA 和 ADDRESSDATA_X。这种类型的配对是 BAPI 的典型特征,其中第二个 _X 结构是一组标志,准确指示应更新哪些字段。

实践中的 BAPI

因为 BAPI 是作为功能模块实现的,所以它们不适合类、方法和接口的 ABAP面向对象编程(OOP) 范式。尽管如此,它们通常以面向对象的方式实现,因为它们是 SAP 业务对象的接口。

在ABAP中,这些功能模块可以从程序、功能模块或类中调用。通常最好将 BAPI 调用包装在数据访问对象 (DAO) 中,这些对象是封装对 BAPI 调用的类。这样做可以使用 DAO 的模拟版本进行单元测试,从而允许将开发人员代码的测试与 BAPI 调用本身的测试分开。


附件列表


2

词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。

如果您认为本词条还有待完善,请 编辑

上一篇 HDwiki6.0    下一篇 BAPI_ACC_DOCUMENT_REV_POST

标签

同义词

暂无同义词