共计 2534 个字符,预计需要花费 7 分钟才能阅读完成。
最近笔者因为我的项目须要,又得学习一个新工具: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 的开发者一个最直观的印象。