上一篇笔记介绍了大标签中的内容。这一片笔记主要介绍下开发IFlow界面的内容。并且可以同步开发好自己的第一个IFlow部件。之后可以使用Postman等接口调试工具进行测试。最后再简单介绍一个用于调试和复现异常的IFlow方法。
SAP CPI 开发界面介绍与第一个IFlow
一、介绍
上一篇笔记介绍了大标签中的内容。这一片笔记主要介绍下开发IFlow界面的内容。并且可以同步开发好自己的第一个IFlow部件。之后可以使用Postman等接口调试工具进行测试。最后再简单介绍一个用于调试和复现异常的IFlow方法。
二、创建IFlow
1.创建IFlow
在上一篇笔记中创建的Package中的部件页面创建一个IFlow部件。进入Package中,点击编辑按钮。
在部件的页签中点击添加 —> Integration Flow。
2.填写IFlow信息
3.IFlow开发界面
新建好的IFlow界面如下图所示。包含最基础的内容。
4.界面介绍
(1)上半部分介绍
界面中的左上角黑色粗体是IFlow的名称。名称后面灰色的字体是部署状态,这个是很重要的一个信息。只有成功部署的IFlow部件才可以使用。
右上角的四个按钮分别是编辑、配置、部署和删除。
编辑、部署和删除如同字面意思,不需要过多的介绍。
主要说下配置按钮。通常仅在完成 IFlow 开发后使用。此过程称为 配置外部化参数。比如在开发环境中服务器会有不同的内容,在测试环境中服务器也会有不同的内容。所以需要配置一些外部化的参数进行调整。后面会单独对这个内容进行介绍。
(2)工具栏说明
工具栏中提供开发IFlow部件所需要使用到的所有标准工具。后面会通过实例对工具栏中的内容进行一一介绍。
(3)开发窗口
再往下的大片范围是IFlow的开发界面,这个位置可以理解成是IFlow的处理逻辑。其中右边的 + 和 - 按钮用来控制放大和缩小。后面当IFlow变得异常复杂时,就需要使用到这两个按钮进行查看。
(4)Properties部分
这个部分位于屏幕的最下面。可以理解成用于查看和编辑标准工具以及IFlow自身属性的地方。IFlow的开发主要是通过拖拽标准工具来实现的,但是这些工具还有很多的属性需要填充,就需要使用到这个部分。
5.基础内容介绍
在新建好的IFlow中有五个对象,分别是Sender、Receiver、Integration Process、Start和End。
Sender代表发送方,需要将该发送方与Start对象进行连接。主要是用于配置接口进入/调用时的方式。在IFlow中代表配置适配器。
Receiver代表接收者,和Sender类似,不过是用来配置传出或调用其他接口对象时的适配器配置。
Integration Process可以理解为IFlow的主程序,只能有一个,并且IFlow的所有接口逻辑都在其中按照流程执行。
Start IFlow的开始节点。End代表IFlow的结束节点。当IFlow执行完全流程后最后一个节点的位置。
三、开发IFlow
1.添加调用的适配器
选中Sender,然后点击箭头的按钮,将拖拽出来的箭头指向Start对象。
完成之后等待几秒,会弹出选择适配器的弹框。本次我们选择HTTPS,作为适配器类型。
2.配置调用的适配器
双击刚刚新增的适配器连线,唤出下方的属性界面。在Connection页签的Address属性中维护该IFlow部件URL的后缀部分。
取消勾选CSRF Protected,勾选该选项之后只能使用Get请求方式进行调用。
3.添加内容修正符
添加一些接口逻辑,用于测试调用是否成功。
点击Start对象,然后点击右侧的**+**号按钮。
选择内容修正符。内容修正符可以通过更改消息处理中涉及的内容(即消息标头、消息交换属性或消息正文)来修改传入消息或有效负载。
例如,接收方系统要求将 header 属性与请求有效负载一起发送,但发送方系统未发送此类属性。然后,在这种情况下,我们可以在内容修饰符中提及标题名称,该修饰符将被发送给接收者。
可以添加的类型有properties 和 payload。property 供内部 IFlow 使用,它不会发送到接收器系统。
4.编辑内容修正符
(1)Message Header
(2)Message Body
这个位置就可以用来处理报文了。修改Type为Expression,在Body中写下下面的内容。
1 | ${in.body} |
其中${in.body}代表传入IFlow的报文,而下面的内容则是文本内容。
5.保存并部署
进行完上面的操作后,点击保存和部署按钮。等待一段时间。期间可能会提示部署失败。这个时候请隔一段时间后重新进行部署。
部署成功后可以在部署状态字样后面查看到部署的时间信息。
6.获取端点
在开发界面中的任意空白处双击(例如下图红框圈中的位置),唤出IFlow的属性界面。打开部署状态页签,然后点击 导航至“管理集成内容”。
在新打开的界面中找到刚刚部署的IFlow对象,然后复制他端点中的URL。这个内容有时候进入的太快可能会不显示,建议等待一段时间刷新当前界面重试即可拿到端点。
四、设置连接密钥
1.实例和租用
新建好IFlow部件并不能直接使用,因为连接该IFlow还需要一个连接的密钥。创建该密钥的位置在BTP子账户的实例和租用界面。
打开实例跳转到服务键值处,然后点击创建按钮。
2.创建服务键值
在弹出的框中填入服务键值名称,然后点击创建按钮。
等待一段时间,等待键值创建成功。创建过程中可能会因为网络问题导致创建失败,这个时候只需要删除失败的键值然后重新新建即可。
3.获取密钥信息
等待服务键值创建成功之后,点击查看按钮。
拿到JSON中clientid与clientsecret中的内容。这两个内容就是密钥的用户名和密码。
五、测试IFlow
1.填写URL
本次使用Postman对IFlow进行测试。打开Postman,新建一个请求。将我们刚刚创建的端点放入URL输入框。
在Authorization页签中选择 Basic Auth 。然后在Username中填入clientid的值,Password中填入clientsecret的内容。
2.填写Body
3.测试结果
可以在返回的报文末尾看到通过内容修正符添加的内容。
4.CPI监控消息处理
打开CPI的监控页签,在其中查看监控器消息处理。可以看到刚刚调用的情况。
接口中的Header信息可以在这里看到。后续可以通过编写脚本来做报文和日志的记录。
六、调试IFlow
1.设置监控模式
这里先简单介绍一种用于追踪接口执行异常的方法。打开IFlow的 管理集成内容 。
找到要调试的IFlow,然后修改日志级别为追踪。
设置成功之后会有一个有效期,有效期一般为十分钟。等有效期结束之后就会将日志级别再自动切换回信息的级别。
2.调用IFlow
再次使用Postman调用IFlow,然后回到 监控器消息处理 中查看IFlow被调用的情况。可以看到这个时候的日志级别是设置的追踪。点击追踪字样。
点击之后会在左边看到当前IFlow的各种对象。在每个箭头上面还有一个信封的小图标。每个信封代表一个消息的报文内容。
选中不同的对象,然后点击最上面的消息内容或其他按钮,可以切换查看报文在经过不同对象后的变化。
再切换成End对象查看报文的情况,可以发现经过文本修正符之后报文就变为了最终返回给我们的样式。
七、参考资料
SAP Cloud Platform Integration (CPI) Part 4 – SAP CPI WebIDE Tour