业务场景
我们需要对流程任务进行审批,这个和流程发起是不一样的,因为在流程发起时,只需要用户登录后,指定固定的流程方案和数据就可以发起流程了。
流程任务是需要获取任务ID再做任务审批的。
实现思路
1.准备数据
1.用户登录
2.用户发起流程,产生出待办任务。
2.用户登录
3.根据用户查询出他所有的待办任务。
4.循环他的待办任务对流程进行审批。
实现脚本
1.配置数据源
数据源用来配置查询数据库,这里比较关键的是 连接池变量名称。
2.用户变量
这个主要是配置需要测试接口的ip,端口和上下文。
3.查询需要审批的人员
这个配置的是查出审批的用户出来,把帐号和用户ID放到 userid 和 account 为前缀的变量中,在上下文中 用户id和帐号是使用如下方式存放的
userid_1,account_1
userid_2,account_2
....
4.设置用户计数器
这个计算器的作用是,遍历用户时需要一个计数器,通过该计数器获取用户ID和帐号数据。
5.用户登录
这里帐号使用了参数化,帐号通过 ${__V(account_${idx})} 获取,应为帐号的数据是 使用 account_1,account_2这种方式获取的。
6.查询用户的代办任务
每个登录用户需要查询自己的待办任务,然后循环批量执行。
用户ID 使用 ${__V(userid_${idx})} 方式获取。
这里我们根据当前登录用户ID,查询节点1产生的待办任务。
输入参数配置的是 用户ID变量,使用 prepared select statement 方式查询。
查询的结果使用 taskId 为前缀的 集合进行保存。
在上下文中变量的数据是 :
taskId_1
taskId_2
7.增加一个循环控制器
这个控制器的作用是遍历用户的任务,遍历次数是查询的用户任务数。
8.任务计数器
这个计数器的作用是用户任务的索引。
9.审批任务
使用表达式获取任务ID ${__V(taskId_${taskIdx})}, 审批时尽量简单,只传入 taskId 和审批意见。
10.使用JSON断言
任务审批成功会返回 {"success":true,..}
判断任务是否审批成功。