1. 概述
1.1 应用场景
从 SAP ODATA 取数至数据库时,由于每次的 URL 均不同,需要执行一次后从返回值获取下一次的 API 接口 URL。
1.2 实现思路
1)使用「参数输出」,将初始的 API 设置为参数。
2)使用 API 输入获取接口数据,XML解析将数据解析为二维表并输出至数据库中。
3)由于每次的 URL 均不同,需要执行一次后从返回值获取下一次的 API 接口 URL,因此需要再使用 API 输入和 XML 解析,以获取下一次 URL,同时将其作为参数输出。
4)由于需要循环取数,调用每次获取的 API 进行取数,直到下一次 API 为空则停止,因此需要使用循环容器。

2. 操作步骤
2.1 将 API 设置为参数
使用「数据转换」,用「Spark SQL」将 API 设置为参数,如下图所示:
select 'https://my500809.c4c.saphybriscloud.cn/sap/c4c/odata/v1/c4codata/OpportunityCollection' as url

使用参数输出,将 API URL 设置为参数,如下图所示:

2.2 使用 API 取数并解析数据
使用数据转换,进入编辑界面后,使用 API输入,获取接口未解析数据,如下图所示:

解析 XML 数据,可以先解析父节点的数据,如下图所示:

然后再次使用 XML 解析,解析出子节点 content 下的数据,如下图所示:

点击数据预览即可看到解析好的二维数据,如下图所示:

使用 DB表输出即可将数据写入指定的数据表,如下图所示:

2.3 获取下一个 API 并设置为参数
使用「数据转换」,在 API输入中使用 2.1 节的参数,并设置认证类型,如下图所示:

使用 XML 解析,解析下一个 API 的URL 。在返回值中可以看到下一个 API ,如下图所示:

使用 XML 解析,设置解析节点并输入路径,截取到 URL,语句写法详情参见:解析 XML 数据
解析语句为:default:feed/default:link[@rel='next']/@href

点击数据预览即可看到获取的 API ,如下图所示:

使用参数输出将这个 URL 设置为参数,以便作为循环取数的 API,如下图所示:

2.4 设置循环容器
使用循环容器,将两个数据转换拖入其中,并设置循环方式为条件循环,设置执行条件为参数非空,如下图所示:

2.5 运行任务
运行任务后即可在数据库中看到取出的接口数据。
