通过 API 请求数据,返回的结果是分页的,如何实现一次性写入全部数据?现在只能写入第一页的数据
分页循环获取就好了呀
。。。源 2024-10-10 11:24:38请问新版的明道云有更好的实现从数据接口分页读取数据并保存到数据表的方法吗
有了呀,工作流循环节点
只能分页,SaaS 版本最大页容量为 1000,其他的冷工已经说得很详细了
冷石然(Team) 2023-11-23 01:33:13目前只能自己算出页数,然后分页去获取。
不用代码块的方法:
- 请求一次接口,拿到总记录数 data_total 和 分页大小 data_pageSize,然后用运算节点计算出总页数:ROUNDUP(total/pageSize),再创建一个应用级别的全局变量,初始值为 1(同时在这个请求节点之前,需要把这个全局变量重置为 1)。
- 把分页获取数据的过程写成一个 PBP,然后在主流程中调用这个 PBP,执行方式选择「执行多次」,执行次数选择之前计算出来的总页数,多条执行方式选择「逐条执行」,然后在分页参数里传入全局变量作为当前页码。在 PBP 里的所有节点最后,把全局变量的值 +1。
用代码块的方法:
如果会代码块,可以不用全局变量,也不用逐条执行,稍微快一点。在代码块里算出总页数后,直接做一个循环输出一个记录分页的对象数组比如: [{"pageIndex":1}, {"pageIndex":2}, {"pageIndex":3}....],通过获取多条数据对象获取代码块输出的这个对象数组,然后添加一个子流程去循环这个多条数据对象。这样你就可以在每个子流程里拿到一个 pageSize,用这个 pageSize 去请求接口即可。
请问新版的明道云有更好的实现从数据接口分页读取数据并保存到数据表的方法吗
得看下接口参数
有个参数第一次不用,再去请求会传的
冷石然(Team) 2023-11-23 01:33:13目前只能自己算出页数,然后分页去获取。
不用代码块的方法:
- 请求一次接口,拿到总记录数 data_total 和 分页大小 data_pageSize,然后用运算节点计算出总页数:ROUNDUP(total/pageSize),再创建一个应用级别的全局变量,初始值为 1(同时在这个请求节点之前,需要把这个全局变量重置为 1)。
- 把分页获取数据的过程写成一个 PBP,然后在主流程中调用这个 PBP,执行方式选择「执行多次」,执行次数选择之前计算出来的总页数,多条执行方式选择「逐条执行」,然后在分页参数里传入全局变量作为当前页码。在 PBP 里的所有节点最后,把全局变量的值 +1。
用代码块的方法:
如果会代码块,可以不用全局变量,也不用逐条执行,稍微快一点。在代码块里算出总页数后,直接做一个循环输出一个记录分页的对象数组比如: [{"pageIndex":1}, {"pageIndex":2}, {"pageIndex":3}....],通过获取多条数据对象获取代码块输出的这个对象数组,然后添加一个子流程去循环这个多条数据对象。这样你就可以在每个子流程里拿到一个 pageSize,用这个 pageSize 去请求接口即可。
感谢,代码块的方法,有没有示例代码可以参考下?我试一试能不能修改一下直接用 👀️
冷石然(Team) 2023-11-23 01:33:13目前只能自己算出页数,然后分页去获取。
不用代码块的方法:
- 请求一次接口,拿到总记录数 data_total 和 分页大小 data_pageSize,然后用运算节点计算出总页数:ROUNDUP(total/pageSize),再创建一个应用级别的全局变量,初始值为 1(同时在这个请求节点之前,需要把这个全局变量重置为 1)。
- 把分页获取数据的过程写成一个 PBP,然后在主流程中调用这个 PBP,执行方式选择「执行多次」,执行次数选择之前计算出来的总页数,多条执行方式选择「逐条执行」,然后在分页参数里传入全局变量作为当前页码。在 PBP 里的所有节点最后,把全局变量的值 +1。
用代码块的方法:
如果会代码块,可以不用全局变量,也不用逐条执行,稍微快一点。在代码块里算出总页数后,直接做一个循环输出一个记录分页的对象数组比如: [{"pageIndex":1}, {"pageIndex":2}, {"pageIndex":3}....],通过获取多条数据对象获取代码块输出的这个对象数组,然后添加一个子流程去循环这个多条数据对象。这样你就可以在每个子流程里拿到一个 pageSize,用这个 pageSize 去请求接口即可。
这个数组是不是就是 python 里的列表
目前只能自己算出页数,然后分页去获取。
不用代码块的方法:
- 请求一次接口,拿到总记录数 data_total 和 分页大小 data_pageSize,然后用运算节点计算出总页数:ROUNDUP(total/pageSize),再创建一个应用级别的全局变量,初始值为 1(同时在这个请求节点之前,需要把这个全局变量重置为 1)。
- 把分页获取数据的过程写成一个 PBP,然后在主流程中调用这个 PBP,执行方式选择「执行多次」,执行次数选择之前计算出来的总页数,多条执行方式选择「逐条执行」,然后在分页参数里传入全局变量作为当前页码。在 PBP 里的所有节点最后,把全局变量的值 +1。
用代码块的方法:
如果会代码块,可以不用全局变量,也不用逐条执行,稍微快一点。在代码块里算出总页数后,直接做一个循环输出一个记录分页的对象数组比如: [{"pageIndex":1}, {"pageIndex":2}, {"pageIndex":3}....],通过获取多条数据对象获取代码块输出的这个对象数组,然后添加一个子流程去循环这个多条数据对象。这样你就可以在每个子流程里拿到一个 pageSize,用这个 pageSize 去请求接口即可。
- 积分
107 - 注册排名
82