在一个业务场景中,销售订单中不允许有重复的产品选择(比如下图中红框中的产品,只允许存在一条),因此,在提交订单之前,希望通过“操作前事件”工作流对提交的订单子表格数据进行检查。请问,在工作流中如何检查这个产品是否重复?是否必须自定义变量,并遍历“提交的值对象”进行统计比较?这样好像有点麻烦,有更简单的办法吗?
请予以指点,谢谢
流程中应该可以取到子表单的数据,这时候可以将子表单的“产品 / ID”变量看做一个 ID 数组,如 [1,2,1,3]
,然后有三个方法:
- 使用两层循环节点遍历判断是否有重复,有的话阻止提交,没有的话继续循环后的处理。
- 如果觉得节点较多比较复杂,也可以用 JS 节点直接通过代码逻辑检查重复。
- 还可以用计算节点 formulajs 引擎中的
COUNTUNIQUE
函数来进行长度计算,相等则没有重复。
1 Like
用1对1 (belongTo) 的UI表 + 多对一(belongTo)的数据表结构,并使用操作前事件,转义子表格插入动作.或用自定义操作事件重写插入过程;整个实现方式有点绕.可以实现下拉时已选过的不再出现在下拉列表中的效果
1 Like
谢谢,方法3看起来比较容易。
没懂 。但不明觉厉