学习目标
-
学会使用代码块生成数组+子流程执行多次,生成多条数据。
-
掌握流程参数赋值的用法,学会把主流程某条记录的唯一标识(如记录 ID)传给子流程的流程参数,从而在子流程中精准获取这条记录。
-
学会使用封装业务流程(PBP),基于数值字段执行多次,生成多条数据。
场景案例
MEGA 公司需要统一管理活动设备的全生命周期,每台设备从采购开始就要在系统中留下记录。每次采购设备时,都会在「设备采购记录」表单中新增一条采购记录,用来记录本次采购的设备型号、数量等信息。
同时,他们希望实现:
-
针对每一条设备采购记录,能有一个“设备录档”的按钮。点击这个按钮后,能自动根据本次采购的数量,在设备档案中生成相应条数的新设备档案。
-
这些新档案的设备编码必须与现有设备编码规则一致,并实现自动递增。例如:无线扩音器的设备类型编号为Speaker,现有的 2 台无线扩音器编号分别为Speaker-1、Speaker-2,新采购了3台无线扩音器后,希望能够一键生成3条设备档案,编号分别为Speaker-3、Speaker-4、Speaker-5。
操作指南
需求分析:
如果需求是要生成多条记录,那么可以采购以下方式:
-
【用新增记录节点-基于多条记录逐条新增记录】(以下简称批量新增节点)来实现;每次新增多条,执行一次。
-
【用新增记录-新增一条记录】(以下简称单条新增节点)+【子流程】或【封装业务流程PBP】来实现,每次新增一条,执行多次。
但是还有一个额外的需求:每条设备档案新增时,设备编码字段需要与现有设备编码规则一致,并实现自动递增。
这意味着,每条设备记录新增时,工作流要分别判断现有设备数量,并按照规则生成新的编码填入。因此,不适合直接使用批量新增节点,而适用第 2 种方式,使用单条新增节点,用子流程或PBP执行多次,每次执行时分别生成设备编码。
下面分别介绍使用子流程和封装业务流程(PBP)实现的思路。
数组+子流程生成多条数据
代码块生成数组
子流程的数据源必须是多条数据对象,多条记录、数组对象都可以。设备购买记录只有 1 条记录,所以我们可以选择用构造数组对象的方式来实现。通过代码块节点,可以根据设备的购买数量,生成一个对应长度的数组。
我们可以通过AI生成代码:
// 接收输入对象的成员
const number = input.number;
// 生成对应的数组
const resultArray = Array.from({ length: number }, (_, index) => index + 1);
// 输出结果到输出对象
output = { result: resultArray };
从数组对象获取多条数据
-
使用获取多条数据-获取数组对象,获取代码块生成的数组。
数组对象进入子流程
-
添加子流程节点,选择代码块数组对象作为子流程的数据源
-
执行方式选择逐条执行,防止设备编码序号递增时并发计算,出现重复序号。
流程参数赋值
子流程增加流程参数,将主流程的设备购买记录的记录ID或其他唯一值字段传入,目的是为了在子流程中能够根据这个唯一值字段找到对应的设备购买记录。
子流程中获取设备购买记录和设备类型
-
为了获取购买记录上设备类型等信息,增加获取单条记录节点,依据传入的流程参数【ID】查询到主流程中对应的设备购买记录。而购买记录关联了设备类型,通过【获取单条数据-获取关联记录】,就可以获取到对应的设备类型记录。
汇总设备类型总条数并计算当前序号
-
汇总设备档案表中设备类型与该采购单中设备类型相同的记录条数,在条数的基础上+1 作为下一条记录的编号,以实现设备编码序号的递增。
新增设备档案,填入对应编码+序号
-
新增设备档案记录,利用通过输入参数获取到的设备购买记录表中的信息配置相应的字段。
2. 回到主流程,将设备购买记录的「是否录档」字段更新为 已录档。
PBP基于数值字段生成多条数据
除了使用子流程实现这个需求之外,我们也可以用封装业务流程 PBP(Packaged Business Process)来完成。
从能力上看,PBP 和子流程很相似,都是把一段可复用的流程逻辑抽出来,供其他流程多次调用;区别主要在于:
在本场景中,我们就可以基于设备购买数量,来确定封装业务流程PBP的执行次数。
添加封装业务流程节点
-
进入设备录档按钮的工作流配置页面,增加封装业务流程节点,新建封装业务流程PBP。
-
设置PBP的输入参数,命名为采购ID,用于接收设备购买记录表中的记录ID
-
选择刚刚创建的PBP作为业务流程,执行方式选择多次,执行次数根据设备购买记录中的购买数量。多条业务流程的执行方式选择逐条执行,因为编号要实现顺序递增,避免并发生成重复的序号。将购买记录的记录ID填入PBP输入参数。
-
在封装业务流程中,为了获取购买记录上设备类型等信息,增加获取单条记录节点,根据记录ID查询主流程中对应的设备购买记录。由于购买记录单关联了设备类型,通过【获取单条数据-获取关联记录】,就可以获取到对应的设备类型记录。
汇总设备类型总条数并计算当前序号
-
汇总设备档案表中设备类型与该采购单中设备类型相同的记录条数,在条数的基础上+1 作为下一条记录的编号。
新增设备档案,填入对应编号
-
新增设备档案记录,利用通过输入参数获取到的设备购买记录表中的信息配置相应的字段
2. 回到主流程,将设备购买记录的「是否录档」字段更新为 已录档。
实现效果
选择第一条采购单,点击设备录当按钮,设备档案表中无线扩音器新增了3条记录,编号从 3 开始。
动手练习
现在,请点击页面上方“打开教学应用”按钮,进入本课程专属的实操应用,开始动手操作吧!