如下图:
已知:主表 A 和子表 b 是 1 对 N 关联;主表 A 中有一个针对子表 b 的汇总控件【完成数】,同时还有一个基于汇总控件的计算【完成率】。
目标:当完成率为 0 时,状态为未开始;完成率大于 0 小于 1 时,状态为进行中;完成率等于 1 时,状态为已完成。
要求:如何不通过工作流实现;或者如何减少工作流的使用来实现(通过子表数据的更新去触发的话会浪费很多工作流(具体场景的时候可能是 3 级子表,而且子表的数量很大),主表的汇总控件和计算值又无法作为触发条件)
请
登录后发表观点
工作流写成全量更新,如 jackie 说的。
触发机制是监控子表的更新,如 wanc 说的。
完成率是公式,公式和汇总控件均无法设置为触发字段
你可以监控子表的更新呀,你看的示例
录制_2023_10_17_16_50_46_788.mp4

可以只监控三个状态。当满足指定条件,触发更新指定状态。
如:
- 工作流的触发条件设定为 完成率=1 时,更新状态为“已完成”;
- 工作流的触发条件设定为 完成率发生更新,完成率 >0,<1,状态不等于“进行中”,更新状态为“进行中”
- 工作流的触发条件设定为 完成率=0 时,状态不等于“未开始”,更新状态为“未开始”
这样只会在指定情况下触发工作流,不会频率的触发工作流的,一般情况下,我们把初始状态设定为“未开始”,这样整个流程中,一条数据只会触发 2 次工作流
完成率是公式,公式和汇总控件均无法设置为触发字段
可以只监控三个状态。当满足指定条件,触发更新指定状态。
如:
- 工作流的触发条件设定为 完成率=1 时,更新状态为“已完成”;
- 工作流的触发条件设定为 完成率发生更新,完成率 >0,<1,状态不等于“进行中”,更新状态为“进行中”
- 工作流的触发条件设定为 完成率=0 时,状态不等于“未开始”,更新状态为“未开始”
这样只会在指定情况下触发工作流,不会频率的触发工作流的,一般情况下,我们把初始状态设定为“未开始”,这样整个流程中,一条数据只会触发 2 次工作流
如果实时性要求不高的话,可以用定时任务(比如 4 小时/8 小时/24 小时更新一次)定时批量获取主表,走子流程,判断完成率=1 则更新主表状态;
子表加筛选条件减少触发
那有什么好的办法能减少这个工作流的调用呢,如果是子表数据变动触发,针对多级关联的表或者是子表数据量非常庞大的表实用性就很差了
按钮
这个更新,没法减少工作流的,不然就不是自动的

单选没有前端操作函数,选项只能取值,不能赋值,只能跑工作流
多选,检查类似
那有什么好的办法能减少这个工作流的调用呢,如果是子表数据变动触发,针对多级关联的表或者是子表数据量非常庞大的表实用性就很差了
单选没有前端操作函数,选项只能取值,不能赋值,只能跑工作流
多选,检查类似