当前位置: 首页 > news >正文

Activiti7 调用子流程的配置和处理

一、主流程设置

如图所示,我们创建了一个主流程,在初步审核完成后调用子流程完成子流程的处理,最后到达终极审核处核对完毕后流程结束

人员配置节点不在进行说明,只对调用子流程的处理进行解释说明,配置如下图所示

1、需要将多实例类型设置为:Parallel

2、配置集合(多实例)为:${approvalGroups},此处变量为动态传递的人员参数

3、配置元素变量(多实例)为:currentGroup,此处也为自定义变量,作为参数传递给子流程

4、配置被调用元素:TYZLC,此处配置为子流程的ID

5、配置输入参数,详见下图,定义输入变量${currentGroup}即上述3处设置的变量,定义目标变量给子流程传递的数据:taskApprover

二、子流程设置

本文只对第一节点进行动态标识的说明,后续节点基本类似,在任务派遣处使用${taskApprover}即上述5处的输入参数变量,但是在实际的过程中,我在配置${}参数后,部署后xml中未能插入对应的Assignee配置,所以此处我进行了监听器的处理,在节点创建时监听。

三、添加监听器

在监听器中获取输入的变量信息,然后设置节点人员,达到人员的动态传递,并且此监听也进行了业务键的设置,这点也很重要,因为在测试过程中发现,达到子流程节点未能进行业务键插入,所以需要进行监听处理。

@Service
public class SubProcessTestListener implements TaskListener {private static final long serialVersionUID = 1L;@Autowiredprivate RuntimeService runtimeService;@Autowiredprivate TaskService taskService;@Transactionalpublic void notify(DelegateTask delegateTask){//获取子流程变量DelegateExecution execution =  delegateTask.getExecution();//获取输入的参数变量String approver = (String) delegateTask.getVariable("taskApprover");//通过流程实例获取“业务键”ProcessInstance pi = runtimeService.createProcessInstanceQuery().processInstanceId(execution.getRootProcessInstanceId()).singleResult();//给节点重新设置接收人taskService.setAssignee(delegateTask.getId(),approver);//给子流程设置相应的业务建runtimeService.updateBusinessKey(delegateTask.getProcessInstanceId(), pi.getBusinessKey());}
}

四、人员的动态添加

在对应的节点审核提交的方法中维护对应的变量即可

List<String> list = new ArrayList<>();
list.add("zhangsan");
list.add("lisi");
variables.put("approvalGroups", list);
taskService.complete(taskId, variables, true);

http://www.dtcms.com/a/318409.html

相关文章:

  • 【Day 17】Linux-SSH远程连接
  • TMS320F2837xD的CLA加速器开发手册
  • mobaxterm怎么复制全局内容
  • ABP VNext + SQL Server Temporal Tables:审计与时序数据管理
  • 串口通信 day48
  • 华清远见25072班C语言学习day3
  • EXCEL-业绩、目标、达成、同比、环比一图呈现
  • Etcd,真的需要集群部署吗?
  • 消防通道占用识别误报率↓79%!陌讯动态融合算法实战优化
  • 模 板 方 法 模 式
  • 人大金仓数据库逻辑备份与恢复命令
  • PostgreSQL报错“maximum number of prepared transactions reached”原因及高效解决方案解析
  • 百货零售行业数字化蓝图整体规划方案(165页PPT)满分可编辑PPT
  • 构建语义搜索引擎:Weaviate的实践与探索
  • XXL-JOB快速入门
  • cygwin+php教程(swoole扩展+redis扩展)
  • 【完整源码+数据集+部署教程】爬行动物异常检测系统源码和数据集:改进yolo11-GhostDynamicConv
  • 一个php 连sqlserver 目标计算机积极拒绝,无法连接问题的解决
  • 第三节 YOLOv5数据集构成
  • 集成显卡 vs 独立显卡:如何通过设备管理器识别你的GPU?
  • Docker 常用命令介绍
  • 【docker】完整 Dockerfile 示例和构建运行指南
  • 飞浆 paddleocr 识别图片上文字的角度
  • 学习 Android(十四)NDK基础
  • OpenWebUI通过pipeline对接dify的workflow
  • 滑动窗口相关题目
  • VirtualBox 搭建 Linux 虚拟机全流程:Nginx 学习环境前置配置指南
  • ##Anolis OS 8.10 安装oracle19c
  • 广州汽车配件3d打印模型加工厂家-中科米堆CASAIM
  • 【计组】存储系统