Product Information
S/4HANA CLOUD使用CPI集成场景介绍
作者希望通过这篇博文跟大家分享,如何将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 Cloud,Host Name可以是Localhost。当S/4HANA Cloud需要主动向外部发送数据时,Host Name则需要配置外部系统地址。
3.2创建通信用户
本此案例中,Inbound User至关重要。CPI在调用S/4HANA Cloud接口时,需要使用它来进行权限认证。
3.3创建通信安排
通信安排是将通信系统和通信案例进行绑定的一个对象。
4. CPI开发
4.1 异步处理机制:
下图中,第一部分展示了如何利用Datastore将从MES系统接受到的消息进行临时存储。 第二部分展示如何利用定时器将临时存储的消息进行读取和拆分。相关详细信息,可参照:
下图中,Sender是指MES系统,其适配器类型为SOAP Adapter。如何使用SOAP Adapter, 可参照: https://help.sap.com/viewer/368c481cd6954bdfa5d0435479fd4eaf/Cloud/en-US/b84796844ede46d582058f42b47fe2f8.html?q=soap%20adapter
4.2 消息映射:
我们需要将消息处理成ODATA API所需要的内容和格式。我们可以在iFlow中加入Message Mapping组件来完成这项任务。如何使用Message Mapping,可参照:
4.3 调用S/4HANA Cloud OData API:
使用OData API对Production Order的Date字段进行更新。对于更新数据类型的API,我们需要在调用之前,先通过调用GET方法来获取x-csrf-token和e-tag。x-csrf-token是用来保证数据更新的安全性,e-tag是用来保证数据更新的一致性。
在这里特别强调,调用GET方法时,请不要尝试去获取任何业务数据。可以通过在API地址后加入/$metadata的方式,来读取OData API的主数据。这样可以减少GET方法对网络资的源消耗。如何调用OData API, 可参照:https://help.sap.com/viewer/368c481cd6954bdfa5d0435479fd4eaf/Cloud/en-US/dc39fdd4a44d4b9a9eabb56f49434250.html?q=request%20and%20reply
4.4异常处理
创建异常处理流来捕获和处理异常消息。对于发送失败的消息,我们会将其临时存储起来。然后再利用定时器,每隔5分钟,进行重新处理。
4.5返回消息给MES系统
OData API返回的消息将会通过Receiver适配器发送给MES系统。对于3次处理失败的消息,相关IT技术人员会收到接口错误邮件。
5. 测试
可以用SOAPUI来模拟MES系统通过SOAP API发送消息给CPI。
临时存储消息队列
临时存储重发消息队列
结论:
在本篇博文中,我们详细地介绍了如何将一个MES与S/4HANA Cloud系统的集成需求,通过CPI中间件进行落地。如果有更多的集成需求需要讨论,可以请联系:
Vincent Zhu, Vincent.zhu@sap.com
Hongbo Wang, hongbo.wang01@sap.com
hongbo 你好,请问在SAP开箱即用的方案中有没有真对MES和OA系统的标准集成流呢?貌似国内用的比较多,但是我找不到标准的。
谢谢!