自打云表格上线了 工作流 这一功能后伙伴们就表现出了空前的热情
对于工作流的搭建
个个摩拳擦掌,跃跃欲试
不过在搭建过程中,难免会遇到各种各样的小问题
于是,“工作流好难” “怎么还有错误”
这样的声音不绝于耳
为了让伙伴们能够熟练的使用工作流
我整理了一些常见问题
也算是一个小教程
供大家参考学习
一、工作流概述
(1)工作流搭建的大体流程:
--》触发条件(选项,可多选)
--》触发条件(使用函数编写)
--》选择操作(单选),不过可添加多个操作
--》选择目标表格、修改数据和具体操作
(2)工作流数量
免费版,每个工作区最多可搭建3个工作流,每个工作流可添加5个操作,大家可灵活使用哦
(3)概念问题
当前表格:就是触发工作流的表格,也就是写工作流的那个表格
当前数据:就是触发工作流的那条数据,例如前面的 触发条件(选项)中,我们选了修改,那么在当前表格中如果我们修改了一条数据,就会触发工作
流,而这条数据就是当前数据。
目标表格:就是我们要执行操作的表格,我们选择操作后就会出现这个选项
(当然目标表格也可以选择当前表格)
*选择当前表格时,会出现 修改当前数据 和 修改指定条件下的数据
当前数据 就是 触发工作流的那条数据
*指定条件下的数据, 会出现条件输入框 ,在这里可以输入条件找到修改的数据
目标数据: 就是要修改的那条数据
数据ID:代指这条数据
注意:其实这几个概念还是很容易理解的,不过伙伴们在使用的时候总是很容易弄混的
在这里要说明一下,表格和数据是不同的概念
千万不要使用{当前表格.字段1}>{目标表格.字段1}这种语句
两个表格中的字段要怎么比较呢?
二、执行顺序问题
工作流与工作流 之间 是没有顺序的,并发执行
操作与操作 之间 是有顺序的,从上往下执行
一个操作对多个字段赋值 是没有顺序的
注:在一个操作里对多个字段进行赋值这里,我要强调一下,它是没有顺序的
举个例子,在我前面的写的一个帖子里,有教大家使用工作流通过出生日期计算年龄
在这个栗子里,我们其实是对一条数据的两个字段进行修改
第一个字段:计算出生日期
第二个字段:通过刚刚计算的出生日期,和当前日期相减,计算年龄
很显然,这两个字段的修改是有顺序的
所以不能放在一个操作里面
所以自然要增加一个操作
不过有一点要注意,在第二个操作里
我们自然是想调用上一个操作的计算结果
不过如果我们还是使用当前数据的话,取出的还是第一步操作前的数据
在这里分享给大家一个小技巧:
这个栗子里的目标表和当前表是同一表格
我们可以在第二个操作里选择 修改指定条件下的数据
{目标表格.数据ID}={当前数据.数据ID}
这样我们就可以把上一个操作修改后的数据,取出来了
后面我们只要使用目标数据代替当前数据就可以了!
三、工作流中的条件问题
这是问的最多的一个问题,很多伙伴们都不知道条件到底要怎么写
其实能够写条件的地方主要就两个
第一个、触发条件那里
第二个、修改指定条件数据那里
有一点千万要注意,这两个地方都不要写IF了,因为他们本身就已经代表IF了
其实这两个条件还是有很大区别的,顾名思义
一个是触发的条件,就是当前数据如果满足什么条件,才会进行后面的操作
另一个是修改指定条件,就是目标表中满足哪些条件的数据要进行修改
我们找到这些满足条件的数据后,就可以进行各种操作了,例如修改,或锁定
但是,如果我们直接进行赋值操作的话,就会把这些数据全部赋成同一个值
这个时候,我们心心念念的IF语句就可以使用了
IF语句
IF(条件,表达式1,表达式2)
如果满足条件,就执行表达式1,否则执行表达式2
其实整个IF语句就是一个表达式,所以IF语句是可以嵌套使用的
意思就是表达式1或2,也可以是一个IF语句
四、函数的使用问题
函数的使用问题可以参考:https://www.huoban.com/discovery/manual/ifttt/function.html
注意,使用函数时,一定要注意返回类型哦,不同的类型千万别画等号!
我们还新增了两个函数:
FIELDS()和 DISTENCE()
FIELDS和ITEMS,类似,返回的都是数组
不过ITEMS返回的是多条数据
而FIELDS返回的是多条数据的字段
DISTENCE就是一个要配合位置字段使用的函数,可以返回两点间的距离
五、关联问题的使用总结
我们要明确一件事情,A表关联B表
在A表中添加数据时,会出现B表中数据的选项
我们看似选择的是,某个字段的值
其实我们看见的只是一个标题(可通过自定义标题展示设置)
选择的这个动作,真正关联上的是B表中的某条数据
所以,千万不要给某个关联字段,赋值为某条数据的某个字段了
正确的写法为;关联字段=某条数据的数据ID
如果A表关联B表,C表也关联B表,我们想让A表和C表关联B表中的同一条数据
这个时候可以直接画等号,因为这两个字段里面放的都是数据ID
六、工作流小技巧
(1)手动执行的运用
我们写工作流时,总是会遇到这样的问题
例如我们录完数据之后,才写工作流,工作流的触发条件是创建
这个时候我们就可以手动执行工作流,把表格中数据全部触发
不过手动执行,1个人1个小时只能执行一次哦
(2)增加一个修改字段帮助触发
由于手动执行时间是有限制的
所以,我们可以在触发条件中新增一个修改
再在表格中新增一个字段,用于批量修改
触发整个表格
(3)就是上面提到的
执行顺序问题
分享给大家两个我写的工作流,开阔一下大家的思路:
(1)学员管理
每个学员选择一个课程
多个学员可以选择一个课程
现在要自动统计某一课程的学员名单(就是把所有选择同一课程的学员名字,连接起来,放在一个字段里)
解决方案:加一个缓存字段,每次新加一条数据,就把名字放在这个缓存字段里
然后学员名单就等于 学员名单和缓存字段连接
(2)优先级问题
某个多选选项字段有A、B、C、D、E 五个选项
还有一个选项字段也有五个选项记录结果
优先级:A>B>C>D>E
现在要实现,单选项记录多选项中优先级最高的那个
例如,多选:BDE
单选:B
这个需求只要写5个操作就可以实现
思路是:
第一个条件:A在多选项里
第二个条件:B在选项里,A不在
。。。以此类推
如果大家有更好的解决办法记得留言哦!
我的教程就到这里结束了
其实想想,工作流并没有大家想像的那么难
只要把逻辑理清,一步一步操作就可以了
但是在写的时候,千万别总是用“差不多”,“类似”的函数或语句
因为这真的是一件严谨的事情,工作流也是有脾气的
大家有什么和工作流有关的建议和问题,都可以在下面留言哦
当然,如果大家写出来什么特别棒的工作流
也可以分享出来,供大家交流学习
|