SAP 中 Trfc 的操作

事务性 Rfc (Trfc) 是 Rfc,作为 (LUW) 的逻辑工作单元的一部分进行调用。 在 SAP 系统上,LUW 包含完成业务或编程任务所需的所有步骤。 TRFC 表示一种调用 RFC 的方法;它不是唯一的 SAP 项目。

可以将用于 mySAP Business Suite 的 Microsoft BizTalk Adapter 同时用作 tRFC 客户端和 tRFC 服务器。

  • 作为 tRFC 客户端,适配器使应用程序能够在 SAP 系统上的 LUW 中调用单个 RFC。 这可确保一次性执行 RFC。 这并不意味着事务行为。

  • 作为 tRFC 服务器,适配器使你能够在 LUW 内接收多个 rfc。 适配器支持事务上下文中的入站 tRFC 调用;这是受支持的提交和回滚行为。

tRFC 操作

TRFC 意味着调用 RFC 的方法;它不是一个单独的 SAP 项目。 因此,sap 系统上的每个 RFC (适配器可以检索元) 数据,而 SAP 适配器也会将其作为 tRFC。 Trfc 在 TRFC metadata category 节点下由 RFC name 作为操作显示。 (在使用 "添加适配器服务引用" 插件或使用 "使用适配器服务" 外接程序时,可以在 " TRFC " 节点下浏览或搜索 trfc。 )

SAP 适配器支持在 Trfc 上执行以下操作:

  • 导入参数

  • 仅支持更改参数的输入端 (参数)

注意

Trfc 以异步方式执行,因此不会为其返回 (导出或更改参数) 的输出值。

GUID 参数由适配器用于 tRFC 操作。 此 GUID 由适配器映射到与 tRFC 关联 (TID) 的 SAP 事务 ID。 你可以使用此 GUID 参数来执行以下操作:

  • 在 tRFC 客户端调用中确认 SAP 系统上的 tRFC。 可以通过调用 RfcConfirmTransId 操作来实现此目的。 这是适配器用于确认 SAP 系统上的 TID 的特殊操作。

  • 从 tRFC 客户端和 tRFC 服务器方案中的适配器获取用于 tRFC 的实际 SAP TID。 为此,请调用 SAP 实用工具方法 ConvertGuidToTid。

    有关这些操作的详细信息,请参阅 特殊操作。 有关适配器用于 Trfc 的消息结构和 SOAP 操作的详细信息,请参阅 TRFC 操作的消息架构

在 SAP 系统中调用事务 Rfc

通常,Trfc 用于在一个 LUW 中执行一个或多个 RFC 调用;然而,由于 SAP RFC SDK 中的限制,SAP 适配器只支持每个 LUW 一个 tRFC。 出于此原因,适配器将为每个 tRFC 创建一个 LUW (SAP TID) 。 对于这类客户端,SAP 将 LUW 定义为一种机制,以保证 RFC 的 "一次性" 执行,并不意味着提交和回滚事务。

以下步骤汇总了使用 SAP 适配器在 RFC 客户端调用中执行的任务。 其中一些步骤由适配器客户端执行,一些步骤由适配器执行。

  1. 适配器客户端发送 tRFC 操作的请求消息。 适配器客户端可以选择在此消息中提供 GUID。

  2. SAP 适配器接收请求消息,并使用 RFC SDK 从 SAP 系统中获取 (TID) 的事务 ID。 如果请求消息包含 GUID,则适配器会将此 GUID 映射到 SAP TID;否则,适配器会创建新的 GUID,并将其映射到 SAP TID

  3. 适配器使用 TID 对 SAP 服务器进行 tRFC 调用。 此 TID 的状态在 SAP 系统上标记为 " 已完成 "。

  4. 适配器将映射到 TID) 的 GUID (返回到响应消息中的适配器客户端。

  5. 适配器客户端将在上一步中返回的 GUID 的适配器上调用 RfcConfirmTransID 操作。

  6. 适配器使用 RfcConfirmTransID 请求消息中的 GUID 来标识 SAP TID,并确认 SAP 系统上的 tRFC 调用。 这会导致 SAP 服务器从其数据库中删除 TID 条目。

注意

tRFC 客户端调用不返回导出或更改的参数。

详细信息:

接收来自 SAP 系统的入站事务 RFC 调用

可以使用适配器作为 tRFC 服务器来接收来自 SAP 的 Trfc。 作为 tRFC 服务器,当适配器收到 tRFC 时,它将在应用程序上调用相应的 tRFC 操作。 适配器在充当 tRFC 服务器时支持以下功能:

  • SAP TID 标识的 LUW () 可包含多个 Trfc (RFC 调用) 。

  • 适配器为每个 SAP TID 创建一个提交的事务。 你的应用程序代码可以在此事务中登记。

  • 支持提交和回滚。

    本部分的其余部分提供了有关将适配器作为 tRFC 服务器使用的一般信息。 有关的详细信息,请阅读以下内容:

  • 使用 BizTalk Server 接收入站 tRFC 调用,请参阅使用 BizTalk Server 从 SAP 接收入站 tRFC 调用

  • 使用 WCF 服务模型接收入站 tRFC 调用,请参阅 使用 Wcf 服务模型在 SAP 中接收入站 TRFC 调用

TID 数据库

当它充当 tRFC 服务器时,适配器将使用 SQL Server 数据库(TID 数据库)来管理从 SAP 系统接收到的事务 id。 例如,它使用 TID 数据库来帮助管理 SAP 系统中的调用,以提交、回滚和确认 TID。 该适配器还存储其创建的 GUID,并将其与 TID 数据库中的每个 SAP TID 关联起来。

先决条件

要使适配器作为 tRFC 服务器执行,你必须确保满足以下条件:

  • 必须在 SAP 系统上声明 RFC。 这是为了使适配器可以从 SAP 系统检索描述 RFC 的元数据。 RFC 实际上是在应用程序中实现的。

  • 适配器必须在 SAP 网关上注册 RFC 目标。 注册基于名为程序 ID 的逻辑名称。 在连接 URI 中提供参数,以指定用于此注册的程序 ID、SAP 网关和 SAP 服务器。

  • 必须在 SQL Server 中创建 TID 数据库。 为此,必须运行安装程序安装的 SQL 脚本。 SQL 脚本通常安装在 < 安装驱动器 > : \Program Files\Microsoft BizTalk Adapter Pack。 有关详细信息,请参阅 安装 BizTalk 适配器包

  • TidDatabaseConnectionString绑定属性必须设置为 TID 数据库的 SQL 数据库连接字符串。 有关 TidDatabaseConnectionString 绑定属性的详细信息,请参阅 了解用于 mySAP Business Suite 的 BizTalk Adapter 绑定属性

注意

设置 TidDatabaseConnectionString 绑定属性可将适配器配置为充当 tRFC 服务器而不是 RFC 服务器。 如果设置了 TidDatabaseConnectionString 绑定属性并在连接 URI 中指定了 RFC 目标,则适配器将作为来自 RFC 目标的传入调用的 tRFC 服务器。 如果未设置此绑定属性,则适配器将充当 RFC 服务器。

适配器如何处理入站 Trfc

以下步骤汇总了使用 SAP 适配器的 RFC 客户端调用所执行的任务。 其中一些步骤由适配器客户端执行,一些步骤由适配器执行。

  1. SAP 系统会调入适配器,enquire 是否已使用了 TID。 适配器将相应的响应返回到 SAP 系统。 如果 TID 是新的,则适配器将创建可提交的事务。 当 SAP 程序执行提交 (提交工作) 时,此事务用于以事务性方式将 TID 保存到 TID 数据库。 它还向处理入站 Trfc 的应用程序代码公开。 此外,适配器还会创建与 SAP TID 关联的 GUID。

  2. SAP 系统会将一个或多个事务 Rfc 发送到适配器。 对于每个 tRFC,适配器会在应用程序上调用相应的 tRFC 操作。 适配器将在步骤1中创建的事务流向每个操作的应用程序。 适配器通过在操作的请求消息中为步骤1中创建的 GUID 传递该操作。

  3. SAP 系统提交 LUW (提交工作) 。 适配器尝试提交与步骤 1) 中创建的 SAP TID (相关联的事务。

    1. 如果在步骤2中的任何调用期间,应用程序) 终止了事务 (,则当适配器尝试提交事务时,将发生错误。 错误将返回到 SAP。 转到步骤 4。

    2. 如果提交成功,则 TID 数据库中现在会有 TID。 转到步骤 5。

  4. 如果步骤3中出现错误,或 SAP 回滚 LUW (RESTART_OF_BACKGROUNDTASK) 而不是提交,则适配器将回滚事务。 在这种情况下,该 TID 永远不会保存到 TID 数据库。

  5. SAP 系统确认 TID。 适配器从 TID 数据库中删除 TID, (假设步骤3已成功完成,并且 tid 数据库中存在 TID。

注意

如果在 tRFC 服务器操作期间尝试连接到 TID 数据库时发生错误,则会返回一个错误代码,指示 sap 适配器未处理来自 SAP 的传入调用,而 SAP 适配器却返回到 SAP。

将 Idoc 作为 tRFC 服务器接收

使用 SAP 适配器作为 RFC 服务器或 tRFC 服务器来接收来自 SAP 系统的 Idoc。 在任一情况下,都必须设置 ReceiveIdocFormat 绑定属性,以指定适配器应将 IDOC 数据发送到你的应用程序的格式。 有关通过适配器接收 Idoc 的详细信息,请参阅 idoc IN SAP 中的操作。 有关 SAP 适配器绑定属性的详细信息,请参阅 了解用于 MySAP Business Suite 的 BizTalk adapter 绑定属性

特殊的 tRFC 操作

SAP 适配器还可以在 SAP 系统上执行某些特殊的 tRFC 操作。 其中一个操作是 RfcConfirmTransID。

  • RfcConfirmTransID. 在 SAP 适配器上调用此操作,确认对 SAP 服务器的 tRFC 调用。 在适配器用于将 Idoc 作为 tRFC 发送到 SAP 服务器的情况下,可能需要 RfcConfirmTransID。 使用 "添加适配器服务引用" 插件并使用适配器服务外接程序时,该操作在 TRFC 节点下可用。

    有关 RfcConfirmTransID 操作的消息结构和 SOAP 操作的详细信息,请参阅 TRFC 操作的消息架构

另请参阅

使用适配器连接到 SAP 系统