反馈已提交

网络繁忙

分页取数-限制取数量且无页数参数

  • 文档创建者:Roxy
  • 历史版本:7
  • 最近更新:Marlon.Zhao 于 2024-05-20
  • 1. 概述

    1.1 应用场景

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

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

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

    1.2 实现思路

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

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

    1.3 任务展示

    FineDataLink 中的数据处理过程,详情参见:https://demo.finedatalink.com/ 「API取数-限制取数量」。

    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值是否为空,如果为空,则停止循环,最终获取所有的表单数据。

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

    SQL 语句:delete from tes where _id is null

    附件列表


    主题: 数据开发-定时任务
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭



    AI

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持