<?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:xsd="http://www.w3.org/2001/XMLSchema" xmlns:flowable="http://flowable.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.flowable.org/processdef"><process id="多实例动态测试" name="多实例动态测试" isExecutable="true"><documentation>多实例动态测试</documentation><startEvent id="startEvent1"></startEvent><userTask id="sid-69B389BF-845E-45FA-A44A-8A44A1F12286" name="多实例" flowable:candidateUsers="${assigneeList}"><multiInstanceLoopCharacteristics isSequential="false"><completionCondition>${nrOfCompletedInstances/nrOfInstances &gt;= 0.25}</completionCondition></multiInstanceLoopCharacteristics></userTask><sequenceFlow id="sid-B19A4BBB-F31D-493E-AFF7-B3FC0B3B6F6F" sourceRef="startEvent1" targetRef="sid-69B389BF-845E-45FA-A44A-8A44A1F12286"></sequenceFlow><userTask id="sid-23E2155A-0DC7-47D4-A7D5-AF7BE11F5414" name="多实例完成" flowable:assignee="${assignee}"><extensionElements><flowable:taskListener event="create" class="com.flowable.conf.TaskListener"></flowable:taskListener><modeler:initiator-can-complete xmlns:modeler="http://flowable.org/modeler"><![CDATA[false]]></modeler:initiator-can-complete></extensionElements></userTask><sequenceFlow id="sid-653E21AF-A7C4-4939-8EF5-7C18478686B4" sourceRef="sid-69B389BF-845E-45FA-A44A-8A44A1F12286" targetRef="sid-23E2155A-0DC7-47D4-A7D5-AF7BE11F5414"></sequenceFlow><endEvent id="sid-203FE8C0-11FD-4264-A2D1-1AD3B7194832"></endEvent><sequenceFlow id="sid-A4710C6E-E9FB-4004-A588-6C21A712591E" sourceRef="sid-23E2155A-0DC7-47D4-A7D5-AF7BE11F5414" targetRef="sid-203FE8C0-11FD-4264-A2D1-1AD3B7194832"></sequenceFlow></process><bpmndi:BPMNDiagram id="BPMNDiagram_多实例动态测试"><bpmndi:BPMNPlane bpmnElement="多实例动态测试" id="BPMNPlane_多实例动态测试"><bpmndi:BPMNShape bpmnElement="startEvent1" id="BPMNShape_startEvent1"><omgdc:Bounds height="30.0" width="30.0" x="100.0" y="163.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="sid-69B389BF-845E-45FA-A44A-8A44A1F12286" id="BPMNShape_sid-69B389BF-845E-45FA-A44A-8A44A1F12286"><omgdc:Bounds height="80.0" width="100.0" x="165.0" y="135.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="sid-23E2155A-0DC7-47D4-A7D5-AF7BE11F5414" id="BPMNShape_sid-23E2155A-0DC7-47D4-A7D5-AF7BE11F5414"><omgdc:Bounds height="80.0" width="100.0" x="315.0" y="135.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="sid-203FE8C0-11FD-4264-A2D1-1AD3B7194832" id="BPMNShape_sid-203FE8C0-11FD-4264-A2D1-1AD3B7194832"><omgdc:Bounds height="28.0" width="28.0" x="465.0" y="164.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNEdge bpmnElement="sid-653E21AF-A7C4-4939-8EF5-7C18478686B4" id="BPMNEdge_sid-653E21AF-A7C4-4939-8EF5-7C18478686B4"><omgdi:waypoint x="264.9499999999581" y="175.0"></omgdi:waypoint><omgdi:waypoint x="315.0" y="175.0"></omgdi:waypoint></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="sid-B19A4BBB-F31D-493E-AFF7-B3FC0B3B6F6F" id="BPMNEdge_sid-B19A4BBB-F31D-493E-AFF7-B3FC0B3B6F6F"><omgdi:waypoint x="129.94340692927761" y="177.55019845363262"></omgdi:waypoint><omgdi:waypoint x="164.99999999999906" y="176.4985"></omgdi:waypoint></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="sid-A4710C6E-E9FB-4004-A588-6C21A712591E" id="BPMNEdge_sid-A4710C6E-E9FB-4004-A588-6C21A712591E"><omgdi:waypoint x="414.95000000000005" y="175.0"></omgdi:waypoint><omgdi:waypoint x="440.0" y="175.0"></omgdi:waypoint><omgdi:waypoint x="440.0" y="178.0"></omgdi:waypoint><omgdi:waypoint x="465.0" y="178.0"></omgdi:waypoint></bpmndi:BPMNEdge></bpmndi:BPMNPlane></bpmndi:BPMNDiagram>
</definitions>
/*** 启动流程** @param users       用户组* @param processName 流程key* @return 流程id*/
@PostMapping("startGroup")
@ResponseBody
public String start_process_group(@RequestParam(value = "users", required = false) String[] users, @RequestParam(value = "processName", required = false) String processName) {List<String> assigneeList = Arrays.asList("group1", "group2", "group3", "group4", "group5");String s = flowableUtil.startProcess(assigneeList, processName);return s;
}
/*** 启动流程** @param assigneeList 候选组* @param processName  流程key*/
public String startProcess(List<String> assigneeList, String processName) {//启动流程Map<String, Object> map = CollectionUtil.singletonMap("assigneeList", assigneeList);map.put("num", assigneeList.size());ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processName, map);saveFLowModel(processInstance.getId(), processName);return "提交成功.流程Id为:" + processInstance.getId();
}

多实例需要给用户组签收任务

/*** 签收任务*/
public void claim(String taskId, String userId) {taskService.claim(taskId, userId);
}
查看用户未签收的任务/*** 待签收任务查询*/
public List<Task> getNotClaim(String userId) {return taskService.createTaskQuery().taskCandidateUser(userId).list();
}

查看 ACT_RU_IDENTITYLINK 表

nr_of_instances 实例总数
nr_of_completed_instances 当前还没有完成的实例 nr是number单词缩写
loop_counter 已经循环的次数
nr_of_active_instances 已经完成的实例个数
${nrofcompletedinstances/nrofinstances >= 0.25} //条件表达式 总共4个人大于0.25,也就是一个人通过流程便通过

flowable 动态多实例相关推荐

  1. 【IOC 控制反转】Android 事件依赖注入 ( 事件依赖注入具体的操作细节 | 创建 事件监听器 对应的 动态代理 | 动态代理的数据准备 | 创建调用处理程序 | 创建动态代理实例对象 )

    文章目录 前言 一.创建 事件监听器 对应的 动态代理 二.动态代理 数据准备 三.动态代理 调用处理程序 四.动态代理 实例对象创建 前言 Android 依赖注入的核心就是通过反射获取 类 / 方 ...

  2. linux mysql 静态库_Linux静态库与动态库实例详解

    Linux静态库与动态库实例详解 1. Linux 下静态链接库编译与使用 首先编写如下代码: // main.c #include "test.h" int main(){ te ...

  3. excel vba真正的动态数组实例-按需定义数组大小

    excel vba真正的动态数组实例 一.动态数组的定义 动态数组的定义,一开始不需要给数组标明上界和下界.直接定义即可,如下面的代码: Dim MyStr() As String 这样,就定义了一个 ...

  4. Activiti 用户任务并行动态多实例(多用户执行流程)

    在很多情况下,我们需要多用户共同执行余下流程,比如开会流程: 领导发起开会,选择开会人员(多个) 每个开会人员接收到通知后需要签到(一名用户签到不会影响到另一位用户的签到) 签到完成后则流程结束 如果 ...

  5. oracle实例注册监听,Oracle 19C 监听无法动态注册实例

    Oracle 19C 监听无法动态注册实例 环境: DB:Oracle 19.3.0.0.0 OS:Red Hat Enterprise Linux Server release 7.5 (Maipo ...

  6. Html动态时钟实例

    Html动态时钟实例         时间已经成为我们每天必不可少的一个元素,我们是否想过用html来实现一款动态的实时时钟呢?今天我就与大家分享一下html动态时钟的实现过程,项目用Hbuilder ...

  7. flowable 实现多实例-会签-动态配置人员 参考demo

    会签 即多人执行当前任务 设置判断数 通过 例如:设置了是半数通过即可通过当前节点 如果当前是4人那就是2人即通过 如果是6人那就是三人即通过 如果是5人 即三人通过 看各位的判断值是如何书写 这个值 ...

  8. flowable学习笔记(四):动态多实例

    1.定义流程模板 [测试用户任务多实例]任务节点配置了以下属性: 集合(多实例):userList.这个创建流程实例时入参需要加上这个参数. 元素变量(多实例):user.工作流创建多实例时会将集合( ...

  9. (转)AS3函数动态添加实例属性

    var shot:Function=function():void{         shot['times']++;         trace("shot():times:"+ ...

最新文章

  1. show-busy-java-threads查找CPU占用高
  2. 如何加速云原生数据应用?这个开源项目备受关注
  3. SAP ABAP开发实用快捷键
  4. 动态卷积超进化!通道融合替换注意力,减少75%参数量且性能显著提升|ICLR 2021
  5. idea 添加静态注释和live Templates
  6. 死磕java并发cas_死磕Java——CAS
  7. 注释代码c语言,C/C++ 源文件删除注释代码
  8. s:TextInput优化
  9. 程序员大部分时间都在“熟悉系统”
  10. gitee添加成员_成员权限管理,到底能有多精细?
  11. iOS gmssl 编译
  12. 最小二乘法与极大似然估计
  13. 求长方形和正方形的面积
  14. 【洛谷P2184】贪婪大陆【线段树】
  15. RISC-V架构能否引领物联网时代?
  16. ConcurrentLinkedQueue使用和方法介绍
  17. 2015520吴思其 基于《Arm试验箱的国密算法应用》课程设计个人报告
  18. 约束条件之主键与外键
  19. 如何理解maxcompute常见报错信息?
  20. 我的2018年【年末总结】--2019年初计划

热门文章

  1. 强行更改linux服务器时间,加强Linux服务器安全的20项建议
  2. 论文翻译——FingerSound:Recognizing unistroke thumb gestures using a ring
  3. Jmater参数说明
  4. linux下gcc编译使用opencv的源文件时报错的处理:undefined reference to symbol '_ZNSsD1Ev@@GLIBCXX_3.4'
  5. 多分支集成发布各种坑怎么填?
  6. 全网首发|阿里资深技术专家数仓调优经验分享(上)
  7. 让大数据分析更简单,4步教你玩转MongoDB BI Connector
  8. SLS机器学习最佳实战:批量时序异常检测
  9. 重磅公开!阿里语音识别模型端核心技术,让你“听”见未来
  10. 目标检测技术演化:从R-CNN到Faster R-CNN