关于jbpm5的人工任务实现这里提供一个思路
流程图如下:
有一个流程变量会记录会签人员列表,在分支节点会判断会签人员列表是否为空,为空就会签结束,不然就走到会签节点为剩余的会签人员创建任务
而每个会签人员处理完任务后,就会从流程变量中的会签人员列表中将该人员移除,这个是思路。
而每个会签人员处理完任务后,就会从流程变量中的会签人员列表中将该人员移除,这个是思路。
在流程中创建流程变量的方式
这个变量会在发起流程的时候初始化,或在任务处理的时候更新
而在分支节点的判断逻辑是
<!--StartFragment -->
最后是测试代码
private void test_05_多任务审批(StatefulKnowledgeSession session) { org.jbpm.task.service.TaskService internalTaskService = knowledgeSessionTemplate.getInternalTaskService(); TaskServiceSession taskServiceSession = internalTaskService.createSession(); taskServiceSession.addUser(new User("Administrator")); taskServiceSession.addUser(new User("zhangsan")); taskServiceSession.addUser(new User("lisi")); taskServiceSession.addUser(new User("wangwu")); taskServiceSession.dispose(); Map<String, Object> variableMap = new HashMap<String, Object>(); variableMap.put("actors", "zhangsan,lisi,wangwu"); ProcessInstance pi = session.startProcess("defaultPackage.New_Process", variableMap); WorkflowProcessInstance wfpi = (WorkflowProcessInstance)pi; String actors = (String)wfpi.getVariable("actors"); TaskService taskService = knowledgeSessionTemplate.getTaskService(); printTasks(taskService); long taskid = taskService.getTasksAssignedAsPotentialOwner("zhangsan", "en-UK").get(0).getId(); actors = handleTask(session, taskService, actors, "zhangsan", taskid, pi.getId()); printTasks(taskService); taskid = taskService.getTasksAssignedAsPotentialOwner("wangwu", "en-UK").get(0).getId(); actors = handleTask(session, taskService, actors, "wangwu", taskid, pi.getId()); printTasks(taskService); taskid = taskService.getTasksAssignedAsPotentialOwner("lisi", "en-UK").get(0).getId(); actors = handleTask(session, taskService, actors, "lisi", taskid, pi.getId()); printTasks(taskService); } private void printTasks(TaskService taskService) { List<TaskSummary> tasks1 = taskService.getTasksAssignedAsPotentialOwner("zhangsan", "en-UK"); List<TaskSummary> tasks2 = taskService.getTasksAssignedAsPotentialOwner("lisi", "en-UK"); List<TaskSummary> tasks3 = taskService.getTasksAssignedAsPotentialOwner("wangwu", "en-UK"); System.err.println("张三 :" + tasks1); System.err.println("李四 :" + tasks2); System.err.println("王五 :" + tasks3); } private String handleTask(StatefulKnowledgeSession session, TaskService taskService, String actors, String actor, long taskid, long piid) { String newActors = resetActors(actors, actor); ((WorkflowProcessInstance)session.getProcessInstance(piid)).setVariable("actors", newActors); // taskService.claim(taskid, actor); taskService.start(taskid, actor); taskService.complete(taskid, actor, null); ProcessInstance pi = session.getProcessInstance(piid); if(pi != null) { return ((WorkflowProcessInstance)pi).getVariable("actors").toString(); } return ""; } private String resetActors(String actors, String actor) { String[] actorArr = actors.split(","); StringBuffer sb = new StringBuffer(); for (String a : actorArr) { if (!a.equals(actor)) { sb.append(a).append(","); } } int i = sb.lastIndexOf(","); if(i!=-1){ sb.deleteCharAt(i); } return sb.toString(); }
测试结果
相关推荐
基于java及JBPM5.4流程引擎技术开发.鉴于JBPM5.4版本较新,而目前网上基本上没有对应的简单实例,更不要说负责案例及项目设计。 本课程是在国内没有任何中文文档的情况下,完全靠翻译国外的英文文档并结合项目应用...
这些是JBPM5.4 的一些例子。 jbpm5.4 资料实在少的可怜 希望可以帮助到大家学习
整合struts2.3,spring3.1,hibernate4.1,jbpm5.4,mysql5.1.22部署到jboss7.1上的所有jar包
最近初学JBPM,费了很大的劲,因为网上的资料要么是代码,要么是文档,看了两天没有头绪,后来静了下来,仔细看代码和文档(通过代码学习文档,通过文档学习代码),再加上前两天知识的积蓄,终于对JBPM5.4,以及Spring+...
jbpm5.4_Final_Api.CHM
JBPM5.4例子,已经能够运行。使用MYSQL数据库。
jbpm教程 第二部分、(安装和配置JBPM5.4及Eclipse流程插件安装)
jBPM is a flexible Business Process Management (BPM) Suite. It's light-weight, fully open-source (distributed under Apache license) and written in Java. It allows you to model, execute and monitor ...
完整项目案例 包含完整架包 和数据库表结构 以及完整数据 在eclipse和myeclipse都可以完美运行 下载后遇到问题 可以给我留言解决
CSDN首发jBPM5.4 API文档,带索引
基于java及JBPM5.4流程引擎技术开发.鉴于JBPM5.4版本较新,而目前网上基本上没有对应的简单实例,更不要说负责案例及项目设计。 本课程是在国内没有任何中文文档的情况下,完全靠翻译国外的英文文档并结合项目应用...
基于java及JBPM5.4流程引擎技术开发.鉴于JBPM5.4版本较新,而目前网上基本上没有对应的简单实例,更不要说负责案例及项目设计。 本课程是在国内没有任何中文文档的情况下,完全靠翻译国外的英文文档并结合项目应用...
jbpm5.4 spring mvc 集成开发 Jetty maven JTA 事务等配置!
安装和配置JBPM5.4及Eclipse流程插件安装
第四部分、SSH2结合JBPM5.4
本套JBPM5.4工作流是在国内没有任何中文文档的情况下,完全靠翻译国外的英文文档并结合项目应用进行开发的,是一套绝对的经典课程。
JBPM教程 第四部分、SSH2结合JBPM5.4
安装和配置JBPM5.4及Eclipse流程插件安装。这个课程本来是收费的,我买了以后免费提供给网友们学习。
jbpm5.4信用卡发放流程源代码 演示: 信用卡发放流程测试 请输入您的月收入: 6000 您的收入是:6000元,恭喜,您符合信用卡发放条件!