Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
ArthurYang
Product and Topic Expert
Product and Topic Expert

本文档内容是基于我个人对CPI的理解产生的,目的是帮助您了解如何通过学习内容包来开发CPI的集成流,阅读时间约为20分钟。


 


在阅读本文档前,最好先完成CPI+OpenConnector练习(约需1.5小时):Link


本文档面向的人群是拥有1年及以上代码开发经验的开发者。


 


主要内容包括:


1.基本概念


2.如何下载预定义包到自己的环境内


3.以学习内容包举例,讲解集成流的运行方式


 

如果您对BTP感兴趣,BTP个人精选内容目录 | SAP Blogs 可能有更多你需要的内容


 

1.基本概念:


集成套件包含两块核心功能:CPI和API Management,

CPI用于创建可被外部/定时触发的集成流来连接不同系统,

API Management用于在现有接口(无论是集成流暴露出的接口还是其他系统的接口)外包裹一层,来为接口提供额外的安全,峰值检测和调用记录等功能

本文主要关注在CPI部分,下图列举了集成套件中CPI功能的一些入口

 


 

Discover用于搜索,下载预定义集成流到自己的Tenant内

Design用于创建,修改,开发集成流

Monitor用于监控集成流执行状态

 

2.如何下载预定义包到自己的环境内


集成套件内含500+预定义内容包,使用内容包可以加快集成流的开发速度(当然你也可以自己从头开发集成流),还可以用内容包作为学习的模板教材

这里以学习内容包为例,展示一下如何将预定义包导入自己的环境:

(此处的Discover,发现部分即为预定义内容包商店,可以免费下载各种包,本文以学习内容包为例,但其实大多数内容包都是针对生产系统的)


 

进入该内容包后,可以初步查看其内容和相关文档,但是我们这里直接点击右上角的Copy来获取该内容包


 

3.以学习内容包举例,讲解集成流的运行方式


获取完内容包后,进入Discover-Integration内查找先前导入的内容包


 

点击进入这个学习内容包,在artifacts中找到Modeling Basics - Consume Public HTTP Service With Query Parameters这个集成流(集成包包含的组件Artifact即为具体实现集成功能的集成流,一般集成包与场景对应,然后不同集成流组成了完整场景,例如ERP和CRM这个场景就可以用一个集成包来完成,其中又应该包括新建客户,商机,销售订单等集成流)


 

进入该集成流后,我们来看一下它是怎么运作的


 

集成流代表了一条消息的流转过程,一般一条消息主要由消息头和消息体组成

流程从Start处开始,这里由于流程需要以HTTPS的方式触发,所以Start处的消息就可能已经有了内容(如果流程由定时器触发,由于定时器一般不携带信息,所以Start处的消息头和消息体可能就都是没有内容的)

而该条集成流的标准触发方式可以在内容包的Document内找到,这里下载对应的Postman Collection

 


 

导入自己的Postman环境后,找到对应的Request,可以看到这个HTTPS请求主要只携带了一个Category参数,其值为”Software”


 

以该请求触发集成流后,Start处消息的消息头会包含一个名为Category的参数,其值为Software,然后该消息流转至Request Reply时,Request Reply就会利用该消息的消息头内Category参数来构成新的HTTP请求

 

 


 

这里我们尝试部署一下该集成流,提示部署成功后,点击集成流页面空白处-下方Deployment Status- Navigate to Manage Integration Content即可跳转至监控器,查看刚刚部署好的集成流(如果Endpoint URL处显示为空白,可以稍微等待一下,需要一点时间来自动生成Endpoint)

 


 


 

复制该URL,来到Postman,可以看到刚导入的Collection需要Host这个变量才能执行,我们这里暂时忽略变量,直接将iflow endpoint作为目标URL,再在该请求的Authorization内附上CPI service instance内service key的cliendid和clientsecret,(如何调用iflow请参考此练习: Link)即可发出请求

 


可以看到postman收到的回复内容就会是集成流中Request Reply发出的HTTP请求的回复内容,这里再直接用postman去访问iflow所访问的服务地址,可以看到返回值是一样的


本文利用一个学习内容包,简单的讲解了集成流的运转原理,CPI还包含了大量低代码组件来帮助我们对消息进行更深层次的操作,而大部分操作原理都在学习内容包中有所涵盖,希望可以对您有所帮助

 

关于本文内容有任何问题或见解,欢迎在评论区留下你的想法,如果时间紧迫,也可以直接联系到我 arthuryang1996@foxmail.com,感谢你的时间