工作流节点 — 获取单条数据


节点功能

  • 1、通过此节点获取到1条记录,将此记录放在主流程中,然后才可以更新记录的内容或删除这条记录,或者供后续节点使用这条记录的内容。

  • 2、获取的1条数据可以随机获取1条,也可以按序获取到第一条。

获取数据的3种方式

  • 1. 从某个工作表中获取1行记录

    • 直接从某个工作表中,根据筛选条件定位到一条记录。
  • 2. 从多条数据节点中获取一行数据

    • 流程中如果有“获取多条数据”节点,那么可以通过此节点再从多条数据中获取其中1行数据。
  • 3. 通过关联关系获取1行记录

    • 例如从【关联表】、【子表】中获取一行记录

以下是操作示例:

方式1:从工作表中获取

场景举例

当【线索管理】中增加一条新线索,通过手机号从【联系人】表中查询是否已经有此客户的记录。

  • 如果查询到有记录,则将该条记录中的“客户状态”字段 更改为“潜在客户” 。

  • 如果没有查询到记录,则向【联系人】表中自动新增一条记录。

1、选择获取单条数据节点

image.png

由于是直接从《联系人》表中查找,因此选择从工作表获取的方式

image.png

2、配置节点

image.png

A、选择从哪张表中查找数据

B、设置查找的条件

  • 单个条件的条件值可以是手动输入的固定值,也可以从前面的节点对象中选择动态值。

  • 支持条件组合,不同条件之间的关系统一为“且”,或者统一为“或”。

C、设置排序规则

如果符合条件的记录有多条,那么会根据设置的排序规则,获取第一条记录。

D、不排序,随机获取

勾选后则忽略排序规则,随机获取符合条件的1条数据。

E、未获取到数据时的执行方式

当工作表中没有记录,或没有符合条件的记录时,需要选择流程接下来怎么走。有3条路:

  • 1)继续执行

    如果从表中找不到记录,继续执行后面的节点,如果有用到此节点对象或字段的内容,则会跳过或返回空。跳过还是返回空点此查看详情介绍

  • 2)在工作表中新增记录后继续执行

    如果从表中找不到记录,则可以直接向表(图中是联系人表)中新增一行记录,后续节点使用此节点内容时也是使用的新建记录的内容。

  • 3)中止流程,或继续执行查找结果分支

    如果此节点后面紧跟按查找结果分支,则执行无数据的分支流程。如果后面紧跟的是其他节点则中止流程。

示例中我们使用了新增,向【联系人】表中添加一条新纪录,并返回这条记录对象。

3、更新获取到的记录

获取到记录后,通过【更新记录】节点,更改用户状态的值。

示例中,更新对象选择的查找节点中定位到的表记录;要修改的字段选择【客户状态】,字段的值设为“潜在客户”

image.png

4、与分支节点的结合

有时,如果获取不到数据,且并不需要直接新增记录,而需要进行其他流程操作。

则可以在节点后面添加 分支节点 —— 选择查找结果分支。根据不同的结果设置不同的分支流程操作。

image.png

5、与定时触发流程的结合使用

定时触发的流程的触发与否,和工作表数据无关系,流程触发后,流程中并没有工作表的数据,如果需要修改某个表中某条记录,则需要先通过【获取单条记录】节点或【获取多条数据】节点,先在流程中定位获取到需要的记录,然后再去更新、删除它,或者使用它的记录值。

方式2:从多条数据节点获取

获取多条数据节点可以从工作表中获取的多行记录,也可以从Webhook节点或代码块节点中获取的数组(多行数据), 因此此方式获取到的也可能是一行表记录,也可能是一行数据。

场景举例

会签的审批人有多个,想要获取最晚处理的审批信息。先通过【获取多条数据】节点获取到审批节点的所有审批人的信息,再通过【获取单条数据】节点按照处理时间排序,最终获取到最晚的处理信息。

使用方法

如下图:审批节点通过的分支下,先通过获取多条数据(从人工节点获取)节点获取多个审批人的审批信息,然后再通过获取单条数据节点,从上个多条数据节点中获取1条数据。

[!TIP] 查找数据时的筛选、排序、随机获取以及为获取到数据时的执行方式和方式1(从工作表中获取)相同,不再赘述。

方式3:从关联字段获取

场景举例

如下图:新创建一个出库明细记录,并关联了要出库的是哪一个商品记录。当出库记录提交后,需要更新商品记录的库存,在出库明细记录中并没有商品的库存信息,这时就需要获取到关联的商品记录,然后才能更新这条记录中库存量的值。

image.png

1、添加“获取单条数据”节点

添加获取单条数据节点,并选择从关联字段获取的方式。

image.png

2、设置节点

image.png

A:选择通过哪条记录获取:即触发流程的那条出库明细

B:选择“关联字段”,根据记录中的哪个关联表字段来获取,我们选择的是“商品”。表示:从触发流程的出库记录中,根据关联的商品字段,获取到要出库的商品记录。

C:如果关联了多条,可以通过筛选进一步缩小待查询的记录的范围。

D: 如果有多条关联记录都符合条件,可以根据排序规则排序后,获取排在第一行的那条记录。

E:如果没有关联的记录,则获取结果是空,然后有两条路可以走。

  • 1)继续执行
    继续执行后续的节点,如果使用到此节点则跳过执行或数据为空。 具体请参考:
  • 2)中止流程,或继续执行查找结果分支
    如果此节点后面紧跟查找结果分支,则继续执行无数据的分支流程。如果紧跟的是其他节点,则中止流程。

3、使用或处理获取到的记录内容

此节点仅仅表示在流程中获取定位到一条记录,但是并没有进行任何实际的"操作", 可以通过更新节点修改此记录的值,或运算节点使用此记录的值,或删除节点删除此记录。

通过"更新记录"节点,修改商品的库存

将现有的库存直接减去出库的数量,就是新的库存量。 image.png

[!TIP] 一个订单中,可能关联了多个订单明细,此节点只获取到1条订单明细的记录。 如果需要获取到所有的关联记录,请使用获取多条数据节点。

未获取到数据时,后续节点如何处理

当“获取单条数据”节点没有获取到记录或数据时,而后续的节点需要使用到这个节点,那怎么处理呢。

我们先把“获取单条数据”记作节点A, 后续使用它的节点记作B。 基本上是两个原则:

1、如果把节点A当作一个对象处理时(更新、删除),由于节点A没有任何记录,节点B无法操作,则节点B直接跳过。

2、当节点B使用节点A的某个字段的值时,则返回空,节点B继续执行。

详情见表格

results matching ""

    No results matching ""