Enterprise Resource Planning Blogs by SAP
Get insights and updates about cloud ERP and RISE with SAP, SAP S/4HANA and SAP S/4HANA Cloud, and more enterprise management capabilities with SAP blog posts.
cancel
Showing results for 
Search instead for 
Did you mean: 
Hongbo_Wang
Advisor
Advisor

作者希望通过这篇博文跟大家分享,如何将MES系统和S/4HANA Cloud 系统通过中间件CPI进行集成。本文包括以下几个部分:


1. 集成需求介绍


2. 新集成方案


3. S/4HANA Cloud 配置


4. CPI开发


5. 测试


SAP CPI(Cloud Platform Integration)SAP推出的基于SAP云平台(SAP Cloud Platform)的最新一代云端集成解决方案,可以更好地做到Cloud和On-premise应用,SAP和非SAP应用的数据、流程的集成。




1.集成需求介绍


1.1 核心诉求:


客户已经在使用SAP PI + SAP Cloud Connector + S/4HANA Cloud BAPI的方式来集成MES和S/4HANA Cloud系统。为了将来可以持续使用S/4HANA Cloud的新功能,避免系统更新后的新功能不被BAPI支持,客户希望切换到使用ODATA接口的集成方式。


1.2 当前方案:


目前客户MES系统会异步调用PI SOAP接口,来请求更新Production Order的日期字段。PI会同步调用S/4HANA Cloud相关的BAPI接口。如果调用成功,PI会将成功消息返送给MES系统。如果调用失败,PI会每隔5分钟,再次调用BAPI接口,持续3次。在持续调用不成功的情况下,PI会发送电邮给相关IT管理员,进行错误反馈。




2.新集成方案


2.1方案概览:


Scope item: 3W4


接口:API_PRODUCTION_ORDER_2_SRV


通信安排: SAP_COM_0522



(图1, 系统集成接口概览)


2.2 安全性概览:


接口的安全认证是通过User + Password的Basic Authentication方式来进行。相关的权限用户见图1。MES系统作为Sender System时,需要携带相关的Certification才能成功调用CPI,详细信息参照下图。





3.S/4HANA Cloud 配置


3.1创建通信系统


如果仅是外部系统要调用S/4HANA CloudHost Name可以是Localhost。当S/4HANA Cloud需要主动向外部发送数据时,Host Name则需要配置外部系统地址。



3.2创建通信用户


本此案例中,Inbound User至关重要。CPI在调用S/4HANA Cloud接口时,需要使用它来进行权限认证。



3.3创建通信安排


通信安排是将通信系统和通信案例进行绑定的一个对象。





4. CPI开发


4.1 异步处理机制:


下图中,第一部分展示了如何利用Datastore将从MES系统接受到的消息进行临时存储。 第二部分展示如何利用定时器将临时存储的消息进行读取和拆分。相关详细信息,可参照:


Datastore: https://help.sap.com/viewer/368c481cd6954bdfa5d0435479fd4eaf/Cloud/en-US/cd48445baf3946409211148a83e...


Timer: https://help.sap.com/viewer/368c481cd6954bdfa5d0435479fd4eaf/Cloud/en-US/ae14ad7916c04ecbaba3d26e240...


下图中,Sender是指MES系统,其适配器类型为SOAP Adapter。如何使用SOAP Adapter, 可参照: https://help.sap.com/viewer/368c481cd6954bdfa5d0435479fd4eaf/Cloud/en-US/b84796844ede46d582058f42b47...



4.2 消息映射:


我们需要将消息处理成ODATA API所需要的内容和格式。我们可以在iFlow中加入Message Mapping组件来完成这项任务。如何使用Message Mapping,可参照:


https://help.sap.com/viewer/368c481cd6954bdfa5d0435479fd4eaf/Cloud/en-US/459ccdf98a7542d897c1e802d0b...




4.3 调用S/4HANA Cloud OData API:


使用OData APIProduction OrderDate字段进行更新。对于更新数据类型的API,我们需要在调用之前,先通过调用GET方法来获取x-csrf-tokene-tagx-csrf-token是用来保证数据更新的安全性,e-tag是用来保证数据更新的一致性。


在这里特别强调,调用GET方法时,请不要尝试去获取任何业务数据。可以通过在API地址后加入/$metadata的方式,来读取OData API的主数据。这样可以减少GET方法对网络资的源消耗。如何调用OData API, 可参照https://help.sap.com/viewer/368c481cd6954bdfa5d0435479fd4eaf/Cloud/en-US/dc39fdd4a44d4b9a9eabb56f494...



4.4异常处理


创建异常处理流来捕获和处理异常消息。对于发送失败的消息,我们会将其临时存储起来。然后再利用定时器,每隔5分钟,进行重新处理。



4.5返回消息给MES系统


OData API返回的消息将会通过Receiver适配器发送给MES系统。对于3次处理失败的消息,相关IT技术人员会收到接口错误邮件。





5. 测试


可以用SOAPUI来模拟MES系统通过SOAP API发送消息给CPI



临时存储消息队列



临时存储重发消息队列





结论:


在本篇博文中,我们详细地介绍了如何将一个MESS/4HANA Cloud系统的集成需求,通过CPI中间件进行落地。如果有更多的集成需求需要讨论,可以请联系:


Vincent Zhu, Vincent.zhu@sap.com


Hongbo Wang, hongbo.wang01@sap.com


1 Comment