介绍远程功能调用和 BAPI

Objectives

After completing this lesson, you will be able to:
  • 列出 SAP 系统使用的接口技术
  • 介绍远程功能调用的流程流
  • 说明业务对象和 BAPI 的重要性和用法

接口概览

SAP 系统具有不同通信层级的接口。这些接口可分为 SAP 专有接口和开放接口。其范围从高技术连接选项(例如,使用 TCP/IP 协议或 CPI-C)到为业务对象设计的高度专用接口(例如 BAPI 或 ALE 环境中使用的 IDoc 接口)。当您考虑 SAP 专有接口时,所有更高级别的接口(即访问业务对象或流程的接口)都使用相同的技术:远程函数调用 (RFC)。

SAP 系统中使用的接口技术

注意

有关附加接口的信息,请选择 SAP Support Portal 上的快速链接/连接器 (https://support.sap.com/connectors)。

远程函数调用

远程函数调用接口是一种基于 CPI-C 和 TCP/IP 的 SAP 接口协议。它简化了不同 SAP 系统之间的通信流程编程。RFC 使您能够在远程 SAP 系统中或同一 SAP 系统中调用和执行预定义函数。RFC 管理通信流程、参数传输和错误处理。

RFC 描述的是接口,而函数运行所使用的编程语言。您也可以使用 RFC 调用非 SAP 系统中的函数。两个 SAP 系统之间的 RFC 通信过程是,调用 SAP 系统使用调用的 SAP 系统中的 RFC 定义来访问特定功能。

如果要远程启动外部程序,则需要使用 SAP 系统外的 RFC 接口。例如,简单的动态链接库 (DLL)。每个 RFC 接口都是双向的,因此外部程序还可以使用 RFC 访问 SAP 系统中的功能。

注意

函数编制器用于创建所有的函数模块(包括远程启用模块)及其导入和导出参数。可以从 SAP 轻松访问菜单调用函数构建器,方法是导航到 工具ABAP 工作台开发函数编制器 ,或者使用事务代码 SE37

要从 SAP 系统调用 RFC 模块:

  • 两个系统之间必须存在技术连接 - 此连接称为 RFC 目标

  • 并且您需要了解导入和导出参数(在函数构建器中定义),才能执行远程函数调用

RFC 目标

您可以通过 SAP 轻松访问菜单管理您的 RFC 目标,方法是导航到 工具管理管理网络RFC 目标 ,或使用事务 SM59

在""详细远程功能调用""一图中,您可以在左侧看到已创建名为 DEST 的 RFC 目标的调用系统。事务 SM59 中的 RFC 目标不应与 SAP 系统混淆,因为 RFC 目标指向 SAP 系统中的一个特定客户端。RFC 目标也称为逻辑系统之间的连接;最重要的是,在应用程序链接启用 (ALE) 的环境中使用此术语。

在基于 AS ABAP 的 SAP 系统中定义 RFC 目标时,请牢记:

  • 如果 RFC 目标的目标是基于 AS ABAP 的 SAP 系统则始终将其定向到一个特定客户端

  • 可从源 SAP 系统的所有客户端访问 RFC 目标(前提是用户具有所需权限)

这意味着在两个基于 ABAP 的 SAP 系统之间可以有许多 RFC 目标。由于可以为每个 RFC 目标中的目标指定登录用户,因此还可以多次访问目标系统中的客户端,例如,每次使用不同的登录用户。如果您需要两个系统之间的双向 RFC 连接,即调用的系统也可以在调用系统中执行 RFC 模块,则需要在调用的系统中设置等效的第二个 RFC 目标。

远程启用的功能模块(远程函数调用 - RFC)

在 ABAP 中,您可以使用 RFC 调用另一个系统中的函数模块,如下所示:

Code Snippet
123
CALL FUNCTION <Name> DESTINATION <Destination to Target> EXPORTING ... IMPORTING ...

此处,<Name> 指定要在目标系统中执行的功能模块。<Destination to Target> 的名称必须参考其中一个可用的 RFC 目标。EXPORTINGIMPORTING 用于将参数传递到目标函数模块并接收返回的参数。

创建 RFC 目标时,可以为目标系统提供凭据;如果不是,则在运行时调用 RFC 目标时需要输入登录数据。在目标系统中调用的功能模块使用为 RFC 目标输入的用户标识执行。

注意

SAP 系统可以建立相互信任的关系。如果调用(发送)的 SAP 系统已知为受信系统,且在这两个系统中定义了启动 RFC 调用的用户,则不会提供密码(受信任 RFC)。

RFC 已成为 SAP 环境中最重要的 SAP 专有接口。一些遵循特定约定的特殊 RFC 模块称为 BAPI(业务应用程序编程接口)。

BOR 和 BAPI

业务应用程序编程接口 (BAPI) 是一种标准化编程接口,可促进对 SAP 系统中业务流程和数据的内部和外部访问。BAPI 在业务对象仓库中定义为 SAP 业务对象的方法,可采用面向对象的方式显示 SAP 系统中的业务数据。

BAPI 允许在业务级别(而非技术级别)进行集成。这提高了联系的稳定性和与基础通信技术的独立性。

注意

BAPI 的创建和测试方式与启用 RFC 的函数模块完全相同,方法是使用函数编制器、事务 SE37,然后在 BOR 中定义为对象类型的方法。

您可以在 BOR 中显示可用 BAPI 的概览,例如,通过选择业务对象构建器应用程序工具栏中的业务对象资源库按钮(SAP 轻松访问菜单路径工具ABAP 工作台开发业务对象构建器),事务 SWO1,然后选择业务对象资源库BAPI。这将转到 BAPI 浏览器(事务 BAPI)。

还可以使用事务代码 BAPI 直接访问 BAPI 浏览器

BAPI 的可能用途

  • 链接跨系统界限的业务流程(例如,在使用 ALE 时)

  • 供 SAP 在 SAP Business Suite 的框架内整合各种解决方案

  • 将 SAP 系统连接至 Internet

  • 与超出系统边界的 SAP Business Workflow 场景一起使用

  • 连接到第三方软件和旧系统

使用 BAPI

业务示例

您想要使用 BAPI 锁定远程 SAP 系统中的用户。

Log in to track your progress & complete quizzes