通过一个具体的例子,讲解 SAP Cloud Platform Integration(CPI) 的使用方法

简介: 通过一个具体的例子,讲解 SAP Cloud Platform Integration(CPI) 的使用方法

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

image.png

笔者想通过本文,把使用这个工具的第一手体会,分享给曾经用过SAP CRM中间件,但尚未有机会接触到CPI的朋友们。


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


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

image.png

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

image.png

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产品的消费端。

image.png

用于这个场景的OData服务地址:https://espmrefapps.hana.ondemand.com/espm-cloud-web/espm.svc/$metadata

image.png

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

image.png

我们为了实现这个集成场景需要在CPI里开发一个集成流 - integration flow(下文简写为iFlow), 用于定义当其收到消费者传入的product ID后,应该进行何种处理。

和ABAP里的程序需要存储在一个开发包里一样,iFlow也需要存储在一个包里,称为Content package.


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

image.png

image.png

然后点击上图的Artifacts进入iFlow创建界面:

image.png

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

image.png

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

image.png

点击上图最左边的Sender图标,将其拖拽到上图中间integration process矩形框内的Start图标内,这个动作会帮助我们创建一个inbound adapter,类型我们选择HTTPS,意思是这个iFlow期望其被消费的方式是HTTPS.

image.png

在Adapter的Address里维护一个url片段/CloudIntegrationTrials, 等到最后该iFlow正式部署后,生成的endpoint就是以该片段结尾,届时我们可以在postman等工具里使用该endpoint消费这个iFlow.

image.png

考虑到现在流行的Restful API实现都期望其消费者以JSON格式传输请求内容,我们也沿用这个最佳实践,因此首先拖拽一个JSON to XML Converter到iFlow integration process建模区域的矩形框里,将JSON 格式的用户输入转换成XML格式:

image.png

然后再使用Content Modifier,将XML格式里的product ID的值提取出来。

image.png

下图展示了Content Modifier通过XPath将XML格式的输入里的productIdentifier这个字段的值提取出来。

image.png

有了product ID,可以进行OData调用了。从iFlow建模的工具箱里拖拽一个External Call出来:

74.png

类型选择成OData V2:

image.png

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

image.png

选择该OData服务的Products节点作为消费的对象:

image.png

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

image.png

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

image.png

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

image.png

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

image.png

部署在SAP Cloud Platform上的CPI iFlow接收到了请求后,就会按照我们维护好的逻辑,解析出Product ID,调用OData服务,将该ID对应的Product明细数据作为结果返回给消费端。

image.png

和SAP CRM中间件有各种通过事务码比如SMW01访问的监控应用一样,SAP CPI也有类似的监控程序:

1.png

image.png

希望这个最简单的例子能让还没有接触过SAP CPI的朋友对其作用有个最直观的了解,感谢阅读。


总结

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




image.png


image.png


image.png

目录
相关文章
|
2月前
|
UED 开发者
@sap 命名空间下 ux-specification 开发包的内容和使用场景介绍
@sap 命名空间下 ux-specification 开发包的内容和使用场景介绍
|
10月前
|
XML JSON 监控
通过一个具体的例子,讲解 SAP Cloud Platform Integration(CPI) 的使用方法
通过一个具体的例子,讲解 SAP Cloud Platform Integration(CPI) 的使用方法
|
9月前
|
IDE 开发工具 云计算
SAP Business Application Studio 里创建一个基于 CAP 模型的最简单的 OData 服务试读版
SAP Business Application Studio 里创建一个基于 CAP 模型的最简单的 OData 服务试读版
|
10月前
如何在 ABAP Development Tool 创建新的 ABAP Cloud 项目
如何在 ABAP Development Tool 创建新的 ABAP Cloud 项目
|
10月前
|
JavaScript IDE 前端开发
SAP 电商云启用 Enterprise Product Development Visualization Integration 的配置步骤
SAP 电商云启用 Enterprise Product Development Visualization Integration 的配置步骤
|
IDE Java API
REST Assured API Automation Testing Ⅰ - Getting Started
REST Assured API Automation Testing Ⅰ - Getting Started
REST Assured API Automation Testing Ⅰ - Getting Started
SAP Cloud Platform上Fiori launchpad tile的读取原理
下图是Fiori on HANA HCP的architecture: 我们的Fiori UI不再是存在netweaver的BSP application里,而是存在HCP的cloud repository里了。 Fiori Launchpad及相关配置,按照wiki的介绍,现在tile configuration的内容最终是存放在HANA native的table里,通过XSE暴露的service给client端调用。
SAP Cloud Platform上Fiori launchpad tile的读取原理
|
存储
一个典型的使用 SAP Cloud Application Programming 模型开发的 Fiori 应用
一个典型的使用 SAP Cloud Application Programming 模型开发的 Fiori 应用
一个典型的使用 SAP Cloud Application Programming 模型开发的 Fiori 应用
SAP Cloud Platform mobile service的使用过程
SAP Cloud Platform mobile service的使用过程
82 0
SAP Cloud Platform mobile service的使用过程
|
IDE 开发工具
C4C Cloud Application Studio做ABSL开发的一些性能方面的最佳实践
C4C Cloud Application Studio做ABSL开发的一些性能方面的最佳实践
C4C Cloud Application Studio做ABSL开发的一些性能方面的最佳实践