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

199 阅读3分钟

[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.ashostSCC 上的虚拟主机
jco.client.客户端SAP ERP 的客户。EX : 190
jco.client.lang语言。例如:EN
jco.client.sysnrSAP 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 适配器接收器。感谢您的阅读,如有任何疑问,请在下方留言。