tRFC 操作的消息架构

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

tRFC 操作的消息结构

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

  • 对于出站 tRFC 调用,可以将 GUID 传递到 tRFC 请求消息中的适配器。 如果未提供 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。

Operation 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 TABLE TYPES 或 SAP 简单数据类型。

- tRFC 客户端调用没有在输出端返回的值。 SAP 以异步方式使用仅输入端值执行它们。

<TransactionalRfcOperationIdentifier> 元素:

- 对于出站 tRFC 调用,可以选择指定应由此元素中的适配器映射到 SAP TID 的 GUID。 如果未指定 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 更改参数的名称。

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

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

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

tRFC 操作的消息操作

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

Operation 消息操作 示例
[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 适配器的消息和消息架构