开发者社区> python技术君> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介: 通过一个具体的例子,讲解 SAP Cloud Platform Integration(CPI) 的使用方法
+关注继续查看
福利推荐:阿里云、腾讯云、华为云等大品牌云产品全线2折优惠活动来袭,4核8G云服务器899元/3年,新老用户共享优惠,点击这里立即抢购>>>

最近笔者由于项目需要,又得学习一个新工具: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 的开发者一个最直观的印象。






版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
如何在 ABAP Development Tool 创建新的 ABAP Cloud 项目
如何在 ABAP Development Tool 创建新的 ABAP Cloud 项目
0 0
SAP Commerce Cloud 的 build 过程
SAP Commerce Cloud 的 build 过程
0 0
在SAP CAL(Cloud Application Library)上搭建ABAP HANA系统
在SAP CAL(Cloud Application Library)上搭建ABAP HANA系统
0 0
在SAP Cloud Platform ABAP编程环境里调用第三方API的ABAP示例代码
在SAP Cloud Platform ABAP编程环境里调用第三方API的ABAP示例代码
0 0
一步步在SAP Cloud Platform上创建HANA实例并使用
一步步在SAP Cloud Platform上创建HANA实例并使用
0 0
使用SAP Cloud Platform fullstack WebIDE创建SAP UI5应用并部署
使用SAP Cloud Platform fullstack WebIDE创建SAP UI5应用并部署
0 0
如何在SAP Cloud Platform ABAP编程环境里创建一个employee
用ABAP Development Tool登录SAP Cloud Platform ABAP编程环境后,对ABAP项目点击右键,选择属性,从而找到该环境的web访问的url: https://325df18f-0b6b-4d85-a127-ee6ad7437a7c.abap.eu10.hana.ondemand.com 登录web界面,实际上是一个Fiori UI,点击tile Maintain employee: 新建一个employee: 维护email地址: 给其维护业务角色: 本文来自云栖社区合作伙伴“汪子熙”,了解相关信息可以关注微信公众号"汪子熙"。
253 0
SAP Kyma(Extension Factory on SAP Cloud Platform)的架构简介
SAP kyma主要分三大块组成: (1) Application connector simplify and securely connect external systems to Kyma and to register the events and APIs of the exter...
347 0
Marketing Cloud demo环境和API使用方法说明
version 1.0作者:Wang Jerry更多问题请联系我 demo 系统url:https:/jerry.hybris.com/sap/bc/ui5_ui5/ui2/ushell/shells/abap/FioriLaunchpad.html 用户名/密码:Jerry1/Diablo1登录成功之后,可以在菜单"快速启动"->"Manage Contacts"里找到Marketing Cloud contact管理应用。
353 0
Cloud Toolkit 之 Command 编写指南
开发笔记12 | Cloud Toolkit 插件 Command 编写指南
22280 0
文章
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
Practical Tips-for-Defending-Web-Applications-in-the-Age-of-DevOps
立即下载
《Visual Edge Computing Service视图计算产品发布介绍》PDF
立即下载
PurePath to Cloud Visibility Across the Cloud Platform
立即下载


http://www.vxiaotou.com