历史版本2 :分页取数-限制取数量且无页数参数 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 应用场景

某企业现在需要将简道云OA系统表单数据全部取出以供业务分析使用。

接口文档中没有页数相关的参数,因此不能使用API取数-按页数取数方案。

但是接口中有 limit 参数限制接口取数量。

1.2 实现思路

limit 参数默认状态下,每次只能取10条数据,如果想要取全部数据,可以使用「循环容器」,获取当前数据表中最大 id 值,然后每次从最大 id 开始取出100条数据,循环多次,直至取完所有的数据。

data_id 为空时,取数停止,可以把该参数为空设置成循环容器的停止条件。具体设置为:当数据库中的最后一条数据为空时,停止循环。

2. 操作步骤编辑

2.1 取出部分数据

为了从数据库中可以获得最大 id 作为参数,使用「数据转换」,将接口中限制的默认10条数据取至数据库中。

使用数据转换,根据接口说明,取出随机的 10 条数据,如下图所示:

运行数据转换节点,如下图所示:

2.2 取出数据表中最大_id并设置为参数

总体的取数方案为从取的最后一条数据的id开始,每次取一百条数据。

因此在 2.1 节取出部分数据后,需要通过「参数赋值」获取到数据表中最大的 id 值作为参数,供给 2.1 节「数据转换」里面的data_id 使用。

由于获取最大 id 值和从接口取数均需要循环执行,因此需要将这些步骤都放进循环容器节点中,然后使用「参数赋值」节点,如下图所示:

将 id 值设置为参数 id1,如下图所示:

2.3 接口取数

在循环容器中使用数据转换节点,设置接口 body 值,从 2.2 节获取的当前数据最大data_id,然后从该 data_id 开始每次取一百条数据循环执行,如下图所示:

body 值为:

{
    "data_id":"${id1}",
    "limit":"100"
}

然后解析返回的数据并设置输出至 tes 表中,如下图所示:

2.4 取出数据表中最后一行_id值并设置为参数

为了设置 2.3 节循环执行的停止条件,因此需要找到每次执行的最后一行 id 值,如果最后一行 id 值为空,则停止执行。

将其设置为参数,如下图所示:

根据 是全量语法获取总条数-1,并设置为参数,如下图所示:

获取最后一行 id 值,并设置其为参数,如下图所示:

SQL 语句:select _id  from te LIMIT ${bb},1

2.5 设置循环容器取出所有数据

设置循环容器执行条件,判断最后一行的id值是否为空,如果为空,则停止循环,最终获取所有的表单数据。

最后设置将为空的数据删除掉,如下图所示: