tRFC 操作的消息架构

transactiostructnal Remote Function Calls (tRFC) 用于在 LUW) (逻辑工作单元中执行 RFC 调用。 对于入站 tRFC 调用,SAP 适配器为每个 LUW 支持多个 tRFC。 对于出站 (客户端) tRFC 调用,适配器只能支持 LUW 中的单个 tRFC;因此,它为每个客户端 tRFC 调用在 SAP 上创建一个 LUW。 有关 SAP 适配器如何支持 tRFC 操作的详细信息,请参阅 SAP 中 tRFC 上的操作。 本部分介绍 tRFC 操作的消息架构和操作。

tRFC 操作的消息结构

每个 tRFC 操作都包含一个请求消息和一个回复 (响应) 消息。 SAP 适配器将 GUID 与标识 SAP 系统上 LUW 的 SAP 系统事务 ID (TID) 相关联。 此 GUID 可以同时存在于事务性RfcOperationIdentifier> 元素的 <tRFC 请求和响应消息中。

  • 对于出站 tRFC 调用,可以在 tRFC 请求消息中将 GUID 传递给适配器。 如果未提供 GUID,适配器将生成一个 GUID。 适配器始终返回 tRFC 响应消息中的 GUID。 在 RfcConfirmTransID 操作中传递此 GUID 以确认 SAP 系统上的 TID。

  • 对于入站 tRFC 调用,适配器传递它已生成并映射到 tRFC 请求消息中的 SAP TID 的 GUID。 可以选择在响应消息中返回此 GUID。

重要

在某些情况下,例如,若要排查 SAP 系统上的问题,可能需要标识 SAP 系统上 tRFC 的 SAP TID 的实际值。 可以通过调用 ConvertGuidToTid 方法获取与 GUID 关联的 SAP TID 的值。 有关 ConvertGuidToTid 的详细信息,请参阅 特殊操作

下表显示了用于 tRFC 操作和 RfcConfirmTransID 操作的消息架构。 RfcConfirmTransID 操作由适配器显示,以便可以在客户端 tRFC 调用中确认 SAP TID。

操作 XML 结构 说明
tRFC

([RFC_NAME])
<[RFC_NAME] xmlns="[VERSION]/Trfc/"> <IN1_PARAM_NAME>v1</IN1_PARAM_NAME> <IN2_PARAM_NAME>v2</IN2_PARAM_NAME> … <INOUT1_PARAM_NAME>v3</INOUT1_PARAM_NAME> <INOUT2_PARAM_NAME>v4</INOUT2_PARAM_NAME> … <TABLE1_PARAM_NAME xmlns="[VERSION]/Types/Trfc/"> <STRUCT1_PARAM_NAME> <[FIELD1_NAME]>value1</[FIELD1_NAME]> <[FIELD2_NAME]>value2</[FIELD2_NAME]> … </STRUCT1_PARAM_NAME> … </TABLE1_PARAM_NAME> … <TransactionalRfcOperationIdentifier>GUID </TransactionalRfcOperationIdentifier> </[RFC_NAME]> 在 SAP 系统上调用 tRFC。

- 支持导入、更改和表参数。

- 导入和更改参数可以是 SAP 结构类型、SAP 表类型或 SAP 简单数据类型。

- tRFC 客户端调用未在输出端返回值。 SAP 仅使用输入端值异步执行它们。

<TransactionalRfcOperationIdentifier> 元素:

- 对于出站 tRFC 调用,可以选择指定一个 GUID,该 GUID 应由此元素中的适配器映射到 SAP TID。 如果未指定 GUID,SAP 适配器将生成 GUID 并将其映射到 tRFC 的 SAP TID。

- 对于入站 tRFC 调用,适配器传递映射到此元素中的 SAP TID 的 GUID。
tRFC 响应

([RFC_NAME]响应)
<[RFC_NAME]Response xmlns="[VERSION]/Trfc/"> <TransactionalRfcOperationIdentifier>GUID </TransactionalRfcOperationIdentifier> </[RFC_NAME]Response> 指示 RFC 已发送到 SAP 系统。

- tRFC 客户端调用未在输出端返回值。 SAP 仅使用输入端值异步执行它们。

<TransactionalRfcOperationIdentifier> 元素:

- 对于出站 tRFC 调用,适配器发送与此元素中 tRFC 的 SAP TID 关联的 GUID。

- 对于入站 tRFC 调用,可以选择性地返回适配器在请求消息中发送的 GUID。
RfcConfirmTransID

(RfcConfirmTransID)
<RfcConfirmTransID xmlns="[VERSION]/Trfc/"> <TransactionalRfcOperationIdentifier>GUID </TransactionalRfcOperationIdentifier> </RfcConfirmTransID> RfcConfirmTransID 操作确认在 SAP 系统上的出站 tRFC 操作中使用的 TID。

<TransactionalRfcOperationIdentifier> 元素包含映射到与出站 tRFC 调用关联的 TID 的 GUID。 应将此设置为适配器在 tRFC 响应消息中返回的 GUID 的值。

有关 RfcConfirmTransID 操作的详细信息,请参阅 特殊操作
RfcConfirmTransIDResponse

(RfcConfirmTransIDResponse)
<RfcConfirmTransIDResponse xmlns="[VERSION]/Trfc/"> </RfcConfirmTransIDResponse> 指示 SAP 适配器已确认 SAP 系统上的 TID。

[VERSION] = 消息版本字符串;例如 。 http://Microsoft.LobServices.Sap/2007/03

[RFC_NAME] = RFC 的名称;例如,RFC_CUSTOMER_GET。

[IN_PARAM_NAME] = RFC Import 参数的名称。

[INOUT_PARAM_NAME] = RFC Changing 参数的名称。

[TABLE_PARAM_NAME] = RFC 表参数的名称。

[STRUCT_PARAM_NAME] = RFC 结构参数的名称。

GUID = 标识与 tRFC 关联的 SAP TID 的 GUID。

tRFC 操作的消息操作

下表显示了用于 tRFC 操作的消息操作。

操作 消息操作 示例
[RFC_NAME] [VERSION]/Trfc/[RFC_NAME] http://Microsoft.LobServices.Sap/2007/03/Trfc/RFC_CUSTOMER_GET
[RFC_NAME]响应 [VERSION]/Trfc/[RFC_NAME]/response http://Microsoft.LobServices.Sap/2007/03/Trfc/RFC_CUSTOMER_GET/response
RfcConfirmTransID [VERSION]/Trfc/RfcConfirmTransID http://Microsoft.LobServices.Sap/2007/03/Trfc/RfcConfirmTransID
RfcConfirmTransID 响应 [VERSION/Trfc/RfcConfirmTransID/response http://Microsoft.LobServices.Sap/2007/03/Trfc/RfcConfirmTransID/response

[VERSION] = 消息版本字符串;例如 。 http://Microsoft.LobServices.Sap/2007/03

[RFC_NAME] = 要调用的 RFC 的名称;例如,RFC_CUSTOMER_GET。

另请参阅

适用于 mySAP Business Suite 的 BizTalk 适配器的消息和消息架构