最近笔者因为我的项目须要,又得学习一个新工具:SAP Cloud Platform Integration,简称 CPI,以前又叫做HCI - HANA Cloud Platform Integration Service.

笔者想通过本文,把应用这个工具的第一手领会,分享给已经用过SAP CRM中间件,但尚未有机会接触到CPI的敌人们。

之所以本文题目里把SAP CRM中间件和SAP CPI关联在一起,是因为二者同狭义上说,表演的都是系统集成里中间件的角色。

SAP ERP和CRM通过qRFC进行业务数据同步,而中间件可能提供队列机制,错误处理,重试,传输监控等性能。

而SAP CPI顾名思义,则是云时代下SAP举荐的SAP产品同第三方云产品进行集成的云端中间件解决方案。

SAP CPI(Cloud Platform Integration)是一种通过云端集成不同零碎的解决方案。它是 SAP Cloud Platform Integration Suite 的一部分。 CPI 可能连贯零碎、服务、人员、数据、人工智能、物联网。

只管云利用在很长一段时间内被业界宽泛探讨,但在企业管理软件畛域,不少公司依然更违心应用本地解决方案,或者至多是混合解决方案(Hybrid Solutions)。 近些年来 SAP 在私有云和公有云解决方案上做出了微小的投资,公布 S/4 HANA 的云版本以及后续流动则充分证明了 SAP 向云端转型的信心。

而 SAP CPI 则是 SAP 本地解决方案,SAP 云端解决方案和第三方零碎之间互联的重要工具和伎俩之一,旨在实现对于数据的协定、构造、类型和格局的转换。其用于建模 IFlow 的技术是 Java、JavaScript 或 Groovy Script.

作为学习笔记,Jerry这里把我学习SAP CPI时做的一个Hello World级别的练习步骤记录下来。

这个练习的场景是,假如有一个部署在第三方云平台上的OData服务,提供了产品主数据查问的性能。咱们须要在SAP零碎里生产这个OData服务。SAP开发人员不心愿间接去生产第三方云平台上的OData服务,而是冀望SAP CPI能裸露一个更加容易拜访的API endpoint进去,例如通过postman传一个Product ID给CPI,CPI拿到这个ID后,由CPI向第三方云平台发动OData申请,拿到申请响应后,CPI把后果返回给位于SAP产品的生产端。

用于这个场景的OData服务地址:https://espmrefapps.hana.onde...$metadata

SAP CPI是一个SaaS利用,在SAP云平台控制台的Subscriptions面板里订阅和拜访。点击Go to Applications进入主操作页面。

咱们为了实现这个集成场景须要在CPI里开发一个集成流 - integration flow(下文简写为iFlow), 用于定义当其收到消费者传入的product ID后,应该进行何种解决。
和ABAP里的程序须要存储在一个开发包里一样,iFlow也须要存储在一个包里,称为Content package.

进入CPI后在此处创立一个Content package:


而后点击上图的Artifacts进入iFlow创立界面:

取名Jerry first integration flow, 再点击就能进入iFlow的图形化编辑界面了。

一个新的iFlow创立之后的默认界面如下:

点击上图最右边的Sender图标,将其拖拽到上图两头integration process矩形框内的Start图标内,这个动作会帮忙咱们创立一个inbound adapter,类型咱们抉择HTTPS,意思是这个iFlow冀望其被生产的形式是HTTPS.

在Adapter的Address里保护一个url片段/CloudIntegrationTrials, 等到最初该iFlow正式部署后,生成的endpoint就是以该片段结尾,届时咱们能够在postman等工具里应用该endpoint生产这个iFlow.

思考到当初风行的Restful API实现都冀望其消费者以JSON格局传输申请内容,咱们也沿用这个最佳实际,因而首先拖拽一个JSON to XML Converter到iFlow integration process建模区域的矩形框里,将JSON 格局的用户输出转换成XML格局:

而后再应用Content Modifier,将XML格局里的product ID的值提取进去。

下图展现了Content Modifier通过XPath将XML格局的输出里的productIdentifier这个字段的值提取进去。

有了product ID,能够进行OData调用了。从iFlow建模的工具箱里拖拽一个External Call进去:

类型抉择成OData V2:

指定后面提过的OData服务的url:

抉择该OData服务的Products节点作为生产的对象:

将OData Product节点的ProductId字段绑定到前一步骤通过Content Modifier解析进去的蕴含了用户输出的productIdentifier字段。

就像小朋友们搭积木一样,咱们把iFlow工具箱里提供的元素,通过拖拽的形式组合成了一个图形化的流程。点击Deploy进行部署:

部署胜利之后,抄下这个生成的endpoint:

在Postman里向这个endpoint发送一个GET申请:

部署在SAP Cloud Platform上的CPI iFlow接管到了申请后,就会依照咱们保护好的逻辑,解析出Product ID,调用OData服务,将该ID对应的Product明细数据作为后果返回给生产端。

和SAP CRM中间件有各种通过事务码比方SMW01拜访的监控利用一样,SAP CPI也有相似的监控程序:


心愿这个最简略的例子能让还没有接触过SAP CPI的敌人对其作用有个最直观的理解,感激浏览。

总结

本文首先将 SAP Cloud Platform Integration 同 SAP On-Premises 解决方案下的 CRM 中间件进行了比照,接着论述了 SAP CPI 在 SAP 向云端转型过程中表演的重要角色,最初通过一个具体的 iFlow 开发例子,力求给没有应用过 CPI 的开发者一个最直观的印象。