抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

事实上有关于CPI IFlow的调试并不是一件容易的事情。首先你没法像程序调试那样自由。只能通过一个对象一个对象的调试来查看到底是哪一个对象出现了问题。然后再对这个对象进行调整。本片笔记将介绍一个插件用于帮助我们调试IFlow。

SAP CPI 调试插件 CPI Helper

一、介绍

事实上有关于CPI IFlow的调试并不是一件容易的事情。首先你没法像程序调试那样自由。只能通过一个对象一个对象的调试来查看到底是哪一个对象出现了问题。然后再对这个对象进行调整。本片笔记将介绍一个插件用于帮助我们调试IFlow。

二、CPI Helper Extension

1.插件介绍

CPI Helper Extension 是一个开源的Chrome 浏览器插件,它通过一些很酷的新功能扩展了 Cloud Platform 集成,这些功能在集成流的开发过程中为您提供帮助。通常,我们将在 manage integration content(管理集成内容)窗口中启用跟踪,并且通常会在 10 分钟后更改为 INFO 日志级别。

为了避免启用跟踪级别以及在不同屏幕中查看有效负载、属性和标头信息的这种来回移动,我们可以使用 CPI Helper 扩展来解决所有这些问题。相信如果在上一篇笔记中尝试过追踪的调试后,你会发现每次切换对象时,页面都需要重新加载。这十分的浪费时间。

2.安装插件

插件的地址 https://chrome.google.com/webstore/detail/sap-cpi-helper/epoggeaemnkacpinjfgccbjakglngkpb?hl=en-US

因为我已经安装过这个插件,所以这里的按钮显示的是Remove

1.插件界面

安装成功之后你就可以在你的浏览器扩展中看到这个插件了。

2.扩展中的插件

3.IFlow开发界面

安装好插件之后,在IFlow的界面中刷新之后就可以看到界面发生了明显的变化。

3.应用插件后的开发界面

我们在插件中使用的主要是两个功能按钮,Trace 和 Messages。

我们可以在开发编辑器中执行类似于追踪同样的调试方式。不需要再像之前一样,通过管理集成内容的方式进行追踪调试。

三、开发新的IFlow

1.新建IFlow

新建一个名称为 IF_CPI_Helper_Extension 的IFlow部件。

4.新建IFlow_开发界面

2.添加发送方适配器

从Sender对象中拖拽出一个箭头指向Start对象。等待适配器类型弹框,选择HTTPS类型的适配器。

5.新建IFlow_添加适配器

3.设置适配器后缀

双击发送方适配器,设置URL的后缀。

6.新建IFlow_设置适配器属性

4.添加内容修正符

(1)添加

添加内容修正符并设置Header与Body。

7.新建IFlow_添加内容修正符 8.新建IFlow_添加内容修正符

(2)设置Header

9.新建IFlow_添加内容修正符_Header

(3)设置Body

10.新建IFlow_添加内容修正符_Body

5.添加路由器

(1)添加

这个工具其实和代码中的IF ELSE语句类似。只不过这个工具必须有一个默认的分支。当所有的分支都不满足时,就会执行默认分支。

11.新建IFlow_添加路由器

和上面的操作类似,可以点击 + 号,然后一直往下翻,找到路由器添加进来。

12.新建IFlow_添加路由器_方式1

也可以考虑通过最上面的工具栏选择路由器,然后嵌入到流程中。

13.新建IFlow_添加路由器_方式2

(2)设置判断条件1

假设我们传递的XML报文中,在Customers层级下面的Customer属性的Number 等于1时。执行当前分支。

14.新建IFlow_添加路由器_设置判断条件1

参考XML报文如下所示。

1
2
3
4
5
6
7
8
9
10
11
12
13
<Customers>
<Customer>
<Number>1</Number>
<FirstName>Fred</FirstName>
<LastName>Landis</LastName>
<Address>
<Street>Oakstreet</Street>
<City>Boston</City>
<ZIP>23320</ZIP>
<State>MA</State>
</Address>
</Customer>
</Customers>

(3)设置默认路由

在路由上点击 + 号按钮。选择结束消息

15.新建IFlow_添加路由器_添加默认路由 16.新建IFlow_添加路由器_添加结束信息

拖拽结束消息到合适位置。然后双击路由分支2的箭头,打开Processing页签,勾选Default Route

18.新建IFlow_添加路由器_勾选默认路由

6.添加XML到JSON转换器

在Route 1后面添加XML到JSON转换器。用来区分执行两个不同路由的结果。

(1)添加转换器

选中Route 1的线然后点击 + 号。

19.新建IFlow_添加转换器_步骤1

选择XML到JSON转换器对象。

20.新建IFlow_添加转换器_步骤2

(2)设置转换器属性

21.新建IFlow_添加转换器_设置属性
  • Use Namespace Mapping:用于设置字段名映射。
  • Suppress JSON Root Element:用于显示或隐藏JSON的根元素。从SAP端传出的XML一般都会有根节点,但是接收方系统不一定要根节点的名称,此时就可以通过该选项修改报文的结构。
  • Streaming:用于设置报文中哪些层级是数组结构。十分实用的功能,将XML层级中的名称填充进去,转换出来的JSON报文中就会以JSON数组的形式展示。

7.部署IFlow

点击部署按钮,部署IFlow部件。

22.新建IFlow_部署IFlow

8.查看端点(URL)

点击上图中 导航至“管理集成内容”。此时IFlow的部署还没有完全完成,所以端点页签中显示为 不存在配置的端点

23.新建IFlow_获取端点

此时等待一段时间,刷新界面。可以看到端点已经被刷新出来了。

24.新建IFlow_获取端点

四、使用插件测试

1.报文

使用下面的XML报文进行测试。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<Customers>
<Customer>
<Number>1</Number>
<FirstName>Fred</FirstName>
<LastName>Landis</LastName>
<Address>
<Street>Oakstreet</Street>
<City>Boston</City>
<ZIP>23320</ZIP>
<State>MA</State>
</Address>
</Customer>
<Customer>
<Number>2</Number>
<FirstName>Michelle</FirstName>
<LastName>Butler</LastName>
<Address>
<Street>First Avenue</Street>
<City>San-Francisco</City>
<ZIP>44324</ZIP>
<State>CA</State>
</Address>
</Customer>
</Customers>

2.开启CPI中的调试

转到CPI的调试界面,点击Trace按钮。激活的Trace按钮会变为红色。

25.测试插件_开启追踪

3.调用IFlow

在Postman中调用IFlow接口。可以看到返回的内容是JSON格式的报文。

26.测试插件_调用IFlow

4.调试IFlow

调用成功后可以在Message的弹窗中看到选图红框圈中的Message信息。点击最后一个箭头指向的按钮,就可以在当前页面中查看Message流的流向了。

27.测试插件_调试IFlow

双击界面中的绿色对象,可以查看报文执行到这个位置时的各类信息。

5.查看执行信息

(1)HTTPS适配器

28.测试插件_HTTPS

(2)文本修饰符

29.测试插件_文本修饰符

(3)路由

30.测试插件_路由

(4)XML到JSON

31.测试插件_转换器

(5)End节点

在Body界面,点击Beautify按钮可以格式化报文内容。

32.测试插件_End

五、参考资料

SAP Cloud Platform Integration (CPI) Part 6 – SAP CPI Helper Chrome Extension for Easy Debugging

评论