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。