[SAP CPI] – SCENARIO FOR RFC RECEIVER ADAPTER WITH CLOUD CONNECTOR

[SAP CPI] – 带有云连接器的 RFC 接收器适配器场景


大家好,本文将讨论如何使用 RFC 适配器接收器、SAP Cloud Connector 和 SAP CPI 将 XML 消息从第三方系统发送到 SAP 后端。此场景适用于通过 RFC 连接与 SAP 后端系统集成的情况。为了更清晰地理解,请参考此图。

A. SAP 云连接配置

步骤 1:添加虚拟到内部系统的映射

  • 点击云到本地
  • 单击“添加”

步骤 2:为该映射添加资源。在 SAP 后端选择函数名称

  • 选择虚拟主机
  • 单击“添加资源”(如下)
  • 输入功能名称(功能模块或 SAP 上的 Webservice Define)
  • 如果有多个函数名,我们可以添加多次

如果在集成流程中,我们选中选项​发送确认交易​,我们必须添加以下 2 个函数名称:

BAPI_TRANSACTION_COMMIT

BAPI_TRANSACTION_ROLLBACK

一切看起来都像完成后一样

B. SAP CPI 配置

步骤 1:添加新目的地

  • 转至 SAP BTP
  • 点击左侧菜单上的“目的地”。在“连接”下
  • 点击按钮“新目的地”

  • (1):名称。此名称将用作集成流的 RFC 接收器适配器中的连接名称

  • (2):类型:RFC
  • (3):本地部署
  • (4)(5):SAP ERP 的用户/密码。此用户必须拥有相应的角色

步骤 2:添加目的地属性

现在,我们必须添加在步骤 1 中创建的目标的一些属性。添加以下属性

jco.client.ashost SCC 上的虚拟主机
jco.client.客户端 SAP ERP 的客户。EX : 190
jco.client.lang 语言。例如:EN
jco.client.sysnr SAP ERP.EX 的系统编号:00

步骤 3:CPI 集成流程设计

C. 问题

问题 1​:如果主体发送请求功能模块的无效结构 XML,我们将收到此消息。

当遇到这个问题时,我们必须检查功能模块的结构 XML 并修复它。

D. 测试用例

为了测试目的,我们使用标准功能模块:SXIDEMO_AIRL_FLIGHT_CHECKAVAIL

该功能模块的结构 XML 为

<?xml version="1.0" encoding="UTF-8"?> <ns0:SXIDEMO_AIRL_FLIGHT_CHECKAVAIL xmlns:ns0="urn:sap-com:document:sap:rfc:functions"> <FLIGHT_KEY> <AIRLINEID/> <CONNECTID/> <FLIGHTDATE/> </FLIGHT_KEY> </ns0:SXIDEMO_AIRL_FLIGHT_CHECKAVAIL>

案例 1:SAP Cloud Connector 中没有此功能模块的资源

<?xml version="1.0" encoding="UTF-8" standalone="no"?> <rfc:SXIDEMO_AIRL_FLIGHT_CHECKAVAIL.Exception xmlns:rfc="urn:sap-com:document:sap:rfc:functions"> <Name>Partner signaled an error for conversation ID [69507688] : Access denied for SXIDEMO_AIRL_FLIGHT_CHECKAVAIL on sap-ecd-app:sapgw00. Expose the function module in your Cloud Connector in case it was a valid request.</Name> <Text>Partner signaled an error for conversation ID [69507688] : Access denied for SXIDEMO_AIRL_FLIGHT_CHECKAVAIL on sap-ecd-app:sapgw00. Expose the function module in your Cloud Connector in case it was a valid request.</Text> <Message> <ID/> <Number/> </Message> <Attributes></Attributes> </rfc:SXIDEMO_AIRL_FLIGHT_CHECKAVAIL.Exception>

情况 2:无效日期

com.sap.it.rt.adapter.http.api.exception.HttpResponseException: An internal server error occured: <?xml version="1.0" encoding="UTF-8" standalone="no"?> <rfc:SXIDEMO_AIRL_FLIGHT_CHECKAVAIL.Exception xmlns:rfc="urn:sap-com:document:sap:rfc:functions"> <Name>FLIGHT_NOT_FOUND</Name> <Text>FLIGHT_NOT_FOUND</Text> <Message> <ID>BC_IBF</ID> <Number>055</Number> </Message> <Attributes> <V1> 0000 20220202</V1> </Attributes> </rfc:SXIDEMO_AIRL_FLIGHT_CHECKAVAIL.Exception>.

案例 3:Body 请求中的 XML 结构无效

com.sap.it.rt.adapter.http.api.exception.HttpResponseException: An internal server error occured: <?xml version="1.0" encoding="UTF-8" standalone="no"?><rfc:SXIDEMO_AIRL_FLIGHT_CHECKAVAILs.Exception xmlns:rfc="urn:sap-com:document:sap:rfc:functions"><Exceptions> <E1>Error Getting Function</E1> </Exceptions></rfc:SXIDEMO_AIRL_FLIGHT_CHECKAVAILs.Exception>. The MPL ID for the failed message is : AGI7Xs4vl3zVENgi_6XYmcdoSr6E

案例 4:OK

<?xml version="1.0" encoding="UTF-8"?> <ns0:SXIDEMO_AIRL_FLIGHT_CHECKAVAIL xmlns:ns0="urn:sap-com:document:sap:rfc:functions"> <FLIGHT_KEY> <AIRLINEID>LH</AIRLINEID> <CONNECTID>9981</CONNECTID> <FLIGHTDATE>20021221</FLIGHTDATE> </FLIGHT_KEY> </ns0:SXIDEMO_AIRL_FLIGHT_CHECKAVAIL>
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <rfc:SXIDEMO_AIRL_FLIGHT_CHECKAVAIL.Response xmlns:rfc="urn:sap-com:document:sap:rfc:functions"> <FLIGHT_AVAILABILITY> <ECONOMAX>320</ECONOMAX> <ECONOFREE>308</ECONOFREE> <BUSINMAX>20</BUSINMAX> <BUSINFREE>19</BUSINFREE> <FIRSTMAX>0</FIRSTMAX> <FIRSTFREE>0</FIRSTFREE> </FLIGHT_AVAILABILITY> </rfc:SXIDEMO_AIRL_FLIGHT_CHECKAVAIL.Response>

概括

本文将探讨 SAP CPI 中的 RFC 适配器接收器。感谢您的阅读,如有任何疑问,请在下方留言。

  • SAP
    11 引用 • 8 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...