如何自动更新指定的一行数据?
将标题展开来说,就是:A表的记录满足条件时(或新增记录时),更新某张表(A表或其它表)中相关满足指定条件记录(可建立关联),这其中有很多种类似的需求场景,归纳起来可以时:“ 哪张表满足什么条件 ”时,更新“ 哪张表 ”的“ 哪一行 ”更新“ 什么值 ”
本方案中,有四个可根据情况调整的变量:
- 哪张表满足什么条件 :决定了触发条件
- 哪张表 :决定了执行更新操作时的请求地址中的表格ID
- 哪一行 :决定了如何搜索出这一行
- 什么值 :决定了更新动作的请求体
比如,我们希望实现有数据录入【客户信息表】时,查询本表中的[客户姓名]是否有重复项,如果有就标记一下有重复项,如果没有就标记无重复项。 这个场景中四个变量就分别是:
- 哪张表满足什么条件 :当有一张表录入一行数据时
- 哪张表 :本表
- 哪一行 :搜索到本
- 什么值 :决定了更新动作的请求体
视频
本表查询场景方案:
场景需求
当在【客户信息表】中新增一行记录时,希望能够自动判断是否已经有刚刚新增的客户名称存在,并在[是否有重复]列展示对应的情况。
分析思路
我们把场景换一种接近于实际程序执行逻辑的语言:当【客户信息表】中的“客户姓名”不为空时,我们查询一下本表中的“客户名称”字段中,等于刚刚新增的客户名称的记录的数量,如果查询出的数量大于1,那么证明已有重复项,如果不大于1,那么证明没有重复项。
- 为什么触发条件时“客户姓名”不为空,而不是新增一行呢?因为条件时新增一行容易误触,同时,这个条件也能够覆盖到修改“客户姓名”的场景
- 为什么是数量大于1呢?因为我们刚刚新增记录时,就会有一条记录啦
步骤1:HiFlow新建流程
注册HiFlow,进入控制台后,点击左上角的“创建新的流程”按钮。
步骤2:配置触发条件
- 第一次在HiFlow中使用维格表应用,需先配置维格表账号。
- 选择“维格表”应用
- 触发条件选择为:新增或修改内容满足指定条件
- 选择【客户信息表】所在的空间站的账号。如果第一次使用维格表应用,则在配置账号步骤中通过API Token添加账户
- 配置参数时,选择【客户信息表】,条件设置为,当客户名称不为空
- 点击“测试并预览”按钮,测试数据没问题后点击“保存”按钮
步骤3:查询数据
- 在执行操作处,选择添加维格表应用
- 操作选择“查询数据”
- 配置参数时,分别选择【客户信息表】;不筛选视图;条件设置为,当“客户名称”等于第一步中所产生的变量——客户名称
- 点击“测试并预览”按钮,测试数据没问题后点击“保存”按钮
步骤4:设置判断分支
新增执行条件应用
执行条件设置为:第二步中产生的“总数”变量,大于,1
也就是说我们查询到与输入的客户名称一直的维格记录行数大于1,就是满足执行条件
配置满足条件的分支
- 选择维格表应用,操作选择更新数据
- 配置参数中选择【客户信息表】
- 更新内容所在行的记录ID选择第一步中产生的记录ID
- 在字段匹配中的“是否有重复”处填写“已有重复”
- 新增“执行终止”节点,然后将终止的状态设置为成功
步骤5:执行更新
- 在不满足的分支下,新增维格表应用,选择更新数据操作
- 配置参数中,选择【客户信息表】
- 更新内容所在行的记录ID选择第一步中产生的记录ID
- 在字段匹配中的“是否有重复”处填写“无重复”
步骤6:发布流程并测试
整体流程配置如下,此时如果每个步骤中右上角都有一个绿色的勾,就可以点击右上角的“发布流程”按钮;
流程发布后,在触发事件的所在表中,也就是【客户信息表】就会出现一个同名的维格机器人。
此时就完成了整个流程的配置,可尝试数据不同的客户名称,来测试流程。
其它场景拓展
实际业务中,还有很多场景需要根据录入数据查询,再根据查询结果的不同,或用判断或用循环去执行不同的操作,此时都可以借助Hiflow之类的链接工具来实现
此类工具相对于维格机器人来说主要有以下提升:
- 可以在每一个步骤中引用前置步骤中所产生的数据
- 可以插入循环、判断、定时等应用
因此就可以实现一些相对复杂的场景。