跳到主要内容

工作流节点--获取多条数据


节点功能: 通过此节点可以获取多行数据(表中的多行记录/或数组中的多行数据),然后可以对这些记录进行批量修改,或者将这些多行数据批量新增到其他表中,也可以传递给子流程依次处理,支持获取前XXX行数据。

获取多条数据的7种方式

  • 1、查询并批量更新

    从工作表查询多条记录,查询到数据后进行批量更新,最多支持更新1000行。若查询结果超过1000行,按排序只更新前1000行。

    更新后,这些数据还可以被后面的节点使用,后面节点使用的内容是查询时的记录以及这些记录更新后的数据。 如果被后面节点使用,这个节点最多支持100行。

  • 2、查询并批量删除

    从工作表查询多条记录,查询到数据后批量删除,最多支持删除1000行。若查询结果超过1000行,按排序只删除前1000行。

    删除记录时,支持直接彻底删除,不进入回收站。(无法恢复)

  • 3、查询工作表

    从工作表中获取多条记录,获取后,可以被后面的节点使用。

    • 如果被新增节点、更新节点、删除节点、代码块节点使用,最多处理100行数据,超过100行将中止流程。

    • 如果传递给子流程,则可处理10000行。

  • 4、获取关联记录

    从一条记录中获取他所关联的多条记录,此方式最多获取1000条关联记录,如果需要获取超过1000条的关联记录,请使用“查询工作表”的方式。

  • 5、获取批量新增结果

    • 新增记录节点支持批量新增,因此可以再次从批量新增的多条记录中再获取一次多行数据。
  • 6、获取操作明细

    • 可以获取某个审批/填写节点的操作数据。 操作人员、时间、意见、签名等。这个方式获取的不是表记录,而是JSON数组,类似的多行数据。
  • 7、获取数组对象

    • 代码块、发送API请求和封装业务流程等节点可以输出一个对象数组,通过此节点可以接收转化为内部多行数据结构。

    • 封装业务流程的输入参数也可能是对象数组,在PBP中通过此节点可以接收转化为内部多行数据结构。

限制获取的数量

根据排序规则和查询条件,支持仅获取前XX行的记录。

  • 被“新增节点”、“更新节点”、“删除节点” 批量操作使用时,最多处理100条(建议设置最多获取100条);超过100条时,请使用子流程处理。

  • 传给“子流程”处理时,最多处理1万条(建议设置最多获取1万条)

当超过100或1万条时,流程将中止,并提示“批数据源数量超过节点处理上限”, 如下图:

获取结果是否保存

在使用此节点的获取结果时,有两种类型:

  • 类型1、直接获取

    流程到达此节点时,直接计算,保留计算结果,供后续节点使用。后续所有节点使用的获取结果时一样的。

  • 类型2、每次使用时动态获取

    流程到达获取节点时先不执行获取操作,等到执行到后续使用获取结果的节点时重新计算, 不同节点使用的获取结果可能不同。

举例: 如下图的流程配置

  • 如果采用的是类型1,那么流程是正常的,删除后,还可以继续将备份表写入数据。因为获取作废任务数据已经保存了。

  • 如果采用的是类型2,那么删除后,新增节点又重新获取了作废记录,但是已经被删除了,就没有获取到,导致最终不会写入到备份表。

场景举例

《项目》和《任务》是有关联关系的两张表,一个项目可以关联多个任务。当完成项目并将状态标记为“已完成”,批量获取到关联的任务,然后将这些任务也修改为“已完成”。

1、创建工作表事件触发的工作流

  • 工作表选择《项目》表

  • 触发方式选择 “仅更新记录”时触发,指定项目状态为触发字段

  • 筛选条件设置项目状态 =已结束。

    • 这样筛选的效果是,仅仅更新项目状态时,且更新的状态为 已结束,才会触发流程,避免浪费资源。

2、添加“获取多条数据”节点

并选择第二个方式:从记录获取关联记录

3、配置“获取多条数据”节点

  • A:选择节点对象

    • 即从哪条记录中获得它关联的记录,这里我们选择的是触发流程的那条记录。
  • B:选择关联类型的字段

    • 选择一个关联表字段,这个关联必须是多条类型的。因为一个表可能关联多个他表字段,所以要选择一个关联字段,我们选择 “任务”这个关联字段
  • C:筛选条件

    • 对所关联的记录进行筛选,只获取需要的记录。例如,项目中关联了3条,但是呢,有的记录已经完成了,那就不需要再获取到了,直接排除即可。
  • D:排序规则

    • 设定一个排序规则,按此规则排序后返回记录列表。
  • E:限制数量

    • 可以设定最多获取N行数据,N可以是手动写入的固定值,也可以选择一个数值字段。例如查询时,满足条件的记录有200条,但是我们只需删除60条,就可以设定最多获取60条。如果不设定数量,获取批量数据节点最多只能获取到100行,如果传给子流程用,最多获取1万行。

    • 如果被新增记录、更新记录、删除记录、代码块等4个节点使用时,建议设定最多获取100条,避免报错。

    • 如果需要传给子流程,建议设置最多1万条,避免报错。

    • 多条传给封装业务流程

      具体限制点此查看

保存节点设置

4、批量更新数据

更新的对象: 选择第2个节点获得的多条记录

更新字段: 选择状态=已完成。

4、发布流程。

5、测试。


文档问题反馈

文档中是否有错别字、内容过期、难以理解等问题? 点此给我们反馈吧