目录

  • 前言
  • 一、流程xml
  • 二、测试流程
    • 1.部署流程
    • 2.启动流程
    • 3.获取任务
  • 总结

前言

本文主要演示候选组和和候选人同时使用的场景。


一、流程xml

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:bioc="http://bpmn.io/schema/bpmn/biocolor/1.0" xmlns:flowable="http://flowable.org/bpmn" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.flowable.org/processdef"><process id="group_assignee_test" name="候选组候选人同时使用测试"><startEvent id="startNode1" name="开始"><outgoing>Flow_14bgmff</outgoing></startEvent><endEvent id="Event_1x74o82"><incoming>Flow_10icilg</incoming></endEvent><userTask id="Activity_0xiexcw" name="测试审批" flowable:candidateGroups="${group1}" flowable:candidateUsers="${user1}"><incoming>Flow_14bgmff</incoming><outgoing>Flow_10icilg</outgoing></userTask><sequenceFlow id="Flow_14bgmff" sourceRef="startNode1" targetRef="Activity_0xiexcw" /><sequenceFlow id="Flow_10icilg" sourceRef="Activity_0xiexcw" targetRef="Event_1x74o82" /></process><bpmndi:BPMNDiagram id="BPMNDiagram_flow"><bpmndi:BPMNPlane id="BPMNPlane_flow" bpmnElement="group_assignee_test"><bpmndi:BPMNEdge id="Flow_10icilg_di" bpmnElement="Flow_10icilg"><di:waypoint x="720" y="215" /><di:waypoint x="1012" y="215" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="Flow_14bgmff_di" bpmnElement="Flow_14bgmff"><di:waypoint x="270" y="215" /><di:waypoint x="620" y="215" /></bpmndi:BPMNEdge><bpmndi:BPMNShape id="BPMNShape_startNode1" bpmnElement="startNode1" bioc:stroke=""><omgdc:Bounds x="240" y="200" width="30" height="30" /><bpmndi:BPMNLabel><omgdc:Bounds x="242" y="237" width="23" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNShape><bpmndi:BPMNShape id="Event_1x74o82_di" bpmnElement="Event_1x74o82"><omgdc:Bounds x="1012" y="197" width="36" height="36" /></bpmndi:BPMNShape><bpmndi:BPMNShape id="Activity_1lkyh98_di" bpmnElement="Activity_0xiexcw"><omgdc:Bounds x="620" y="175" width="100" height="80" /></bpmndi:BPMNShape></bpmndi:BPMNPlane></bpmndi:BPMNDiagram>
</definitions>

里面只有一个审批节点,定义了审批人和审批组两个变量,分别是 ${group1} 和 ${user1},流程的key是 group_assignee_test

<userTask id="Activity_0xiexcw" name="测试审批" flowable:candidateGroups="${group1}" flowable:candidateUsers="${user1}">

二、测试流程

1.部署流程

@Testpublic void createDeploymentTest() {Deployment deployment = repositoryService.createDeployment().addClasspathResource("候选组候选人同时使用测试.bpmn20.xml").deploy();System.out.println(deployment.getId());}

2.启动流程

给变量 group1 赋值 “开发组,测试组”,
给变量 user1 赋值 “张三,李四”,
然后启动 group_assignee_test 流程

 @Testpublic void startProcessDefinition() {Map<String, Object> variables = new HashMap<String, Object>();variables.put("group1", "开发组,测试组");variables.put("user1", "张三,李四");ProcessInstance processInstance =runtimeService.startProcessInstanceByKey("group_assignee_test", variables);System.out.println(processInstance.getName());}

3.获取任务

(1)通过候选人 “张三” 获取任务

 @Testpublic void getTaskByCandidateUser() {List<Task> tasks = taskService.createTaskQuery().active().includeProcessVariables().taskCandidateUser("张三").includeIdentityLinks().list();System.out.println("You have " + tasks.size() + " tasks:");for (int i = 0; i < tasks.size(); i++) {System.out.println((i + 1) + ") " + tasks.get(i).getName());}}

结果能查询出任务

You have 1 tasks:
1) 测试审批

(2)通过候选组 “开发组” 获取任务

 @Testpublic void getTaskByCandidateGroup() {List<Task> tasks = taskService.createTaskQuery().active().includeProcessVariables().taskCandidateGroupIn(List.of("开发组")).includeIdentityLinks().list();System.out.println("You have " + tasks.size() + " tasks:");for (int i = 0; i < tasks.size(); i++) {System.out.println((i + 1) + ") " + tasks.get(i).getName());}}

结果,同样能够查询出该任务

You have 1 tasks:
1) 测试审批

总结

通过测试,说明工作流是支持候选人和候选组同时使用的,在一些特殊业务场景就能够使用上。

flowable 候选人候选组同时使用相关推荐

  1. activiti工作流动态绑定审批人、候选人与候选组

    引言 activiti原生的编辑器不能实现A8一样的可视化设置UserTask节点的受理人,但是业务需求是想要让用户可以动态的设置每个流程图的受理人,所以开发了节点设置审批人的功能,其中后台有职位表, ...

  2. 4.1 任务办理人,任务候选人,任务候选组

    1.定义描述 1.1 任务办理人:assignee 办理人只能指定一个人,不能使用逗号分隔. 默认执行签收操作taskService.claim(taskId, currentUserId); 在AC ...

  3. 学习记录553@flowable候选人机制

    流程 <?xml version="1.0" encoding="UTF-8"?> <definitions xmlns="http ...

  4. activiti5.22代理人、候选人改造--前端

    本文借鉴断翅绝尘Activiti流程编辑器针对自定义用户角色表优化改造一文 针对自定义的用户.角色表,对Activiti的在线流程设计器进行优化改造,使之能直接在图形界面上完成对节点办理人.候选人.候 ...

  5. flowable理论(三)工作流框架的主要功能探讨

    一.流程建模与管理功能 1.web化的流程建模:BPMN2.0规范的支持,即节点(开始事件/结束事件节点,用户任务节点,服务节点,定时任务节点,会签节点等),路由(普通路由/并行网关/排他网关),子流 ...

  6. activiti任务TASK

    一.概要 设计TASK的表主要是:ACT_RU_TASK,ACT_HI_TASKINST(见参考-activiti表): 任务主要有:人工任务(usertask),服务任务(servicetask)等 ...

  7. 《Activiti/Flowable  深入BPM工作流》-组任务的办理流程是什么?

        <Activiti/Flowable  深入BPM工作流>-组任务的办理流程是什么? 一. 问题          组任务的办理流程是什么? 二. 详情 第一步:查询组任务 指定候 ...

  8. 【flowable】九、flowable候选人和候选人组

    flowable候选人和候选人组 之前在流程定义中的任务节点设置的负责人assignee都是固定的负责人,在流程定义设计时将参与者与文件固定设置了,如需变更任务负责人需要修改流程定义,系统可扩展性差. ...

  9. activiti自定义代理人、候选人、候选组选择

    介绍 AdminEAP框架中集成了Activiti工作流组件,使用了activiti-explorer中的在线流程设计器,其中在选择代理人(审批人)中,原生的操作是输入数据,没有和系统自动关联.同时, ...

最新文章

  1. Web Serveice服务代理类生成及编译
  2. Java 面试题基础概念收集(高级)
  3. Android实用代码(不定期更新)
  4. 【2018/10/11完成】 ubuntu切换国内镜像源,加速apt-get下载速度
  5. Notepad++ 删除空白行的方法(转)
  6. Batch request processing in backend
  7. linux 下安装JDK
  8. __attribute__ 详解
  9. 不懂就问,Spring 是如何判定原型循环依赖和构造方法循环依赖的?
  10. mysql shell无法启动服务_[shell脚本] mysql服务启动脚本
  11. PHP作用域和文件夹操作
  12. selenium官网下载地址以及相关介绍
  13. 如何构建稳健的品期carry组合
  14. 排列组合 C语言函数,排列组合(C递归版)
  15. 怎么把PDF文件转换成Word?三招教你轻松搞定
  16. 求两个数的最大公约数,Euclid算法证明,以及C语言代码实现
  17. JetBrains下载历史版本(IDEA、PyCharm、WebStorm、PhpStorm等)
  18. 一个微型的操作系统内核 MiniOS
  19. 去中心化的前端构建工具 — Vite
  20. 人脸情感特征提取(详细)

热门文章

  1. linux tbb 安装_Linux环境下配置Google Test、TBB、OpenMP和OpenCV
  2. Android---模拟器
  3. JAVA计算机毕业设计薪酬福利管理信息系统计算机(附源码、数据库)
  4. 备案接口 php,PHP网站备案查询API接口代码
  5. coreldraw2022新版本新功能介绍cdr2022
  6. 为什么要将模拟地和数字地分开,如何分开?
  7. 小程序如何做好冷启动?
  8. Arduino笔记-电位器的使用(模拟输入)
  9. CentOS7 服务器挖矿病毒 删除又重新生成处理
  10. 创建GitHub仓库并与本地Git绑定