工作流引擎Activiti学习---使用流程变量进行个人任务分配
2017-05-24 22:51
579 查看
package com.activiti.study.personalTask; import java.io.InputStream; import java.util.HashMap; import java.util.List; import java.util.Map; import org.activiti.engine.ProcessEngine; import org.activiti.engine.ProcessEngines; import org.activiti.engine.repository.Deployment; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; import org.junit.Test; public class PersonalTask2 { /** *加载默认的流程引擎: 加载 activiti.cfg.xml 文件 */ ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); /** * 部署流程定义 */ @Test public void testDeployProcessDefination_inputStream(){ /** -- 从classPath根目录下加载指定名称的文件 this.getClass().getClassLoader().getResourceAsStream("/diagrams/ProcessVariables.bpmn"); -- 从当前包下加载指定名称的文件 this.getClass().getResourceAsStream("diagrams/ProcessVariables.bpmn"); -- 从classPath根目录下加载指定名称的文件 this.getClass().getResourceAsStream("/diagrams/ProcessVariables.bpmn"); */ InputStream inputStreamBpmn = this.getClass().getResourceAsStream("task2.bpmn"); InputStream inputStreamPng = this.getClass().getResourceAsStream("task2.png"); Deployment deployment = processEngine.getRepositoryService() .createDeployment() .name("个人任务分配") //设定流程名称 .addInputStream("task2.bpmn", inputStreamBpmn) .addInputStream("task2.png", inputStreamPng) .deploy(); System.out.println("Id: " + deployment.getId()); System.out.println("Name: " + deployment.getName()); System.out.println("Category: " + deployment.getCategory()); } /** * 启动流程 */ @Test public void testStartProcessDefination(){ String processDefinationKey = "personalTask2"; Map<String,Object> variables = new HashMap<String,Object>(); variables.put("userId", "Lily"); ProcessInstance pi = processEngine.getRuntimeService().startProcessInstanceByKey(processDefinationKey,variables); System.out.println("Key--->>>" + pi.getBusinessKey()); System.out.println("ActivityId--->>>" + pi.getActivityId()); System.out.println("DefinitionId--->>>" + pi.getProcessDefinitionId()); System.out.println("ProcessInstanceId--->>>" + pi.getProcessInstanceId()); } /** * 查询个人任务 */ @Test public void findPersonalTask(){ /**获取任务id*/ String assignee = "Lily"; List<Task> tasks = processEngine.getTaskService() .createTaskQuery() .taskAssignee(assignee) .list(); for(Task task: tasks){ System.out.println("\n------------------\nId: " + task.getId()+ "\nAssignee: " + task.getAssignee() + "\nProcessInstanceId: " + task.getProcessInstanceId()); } } /** * 完成任务 */ @Test public void testCompleteTask(){ String taskId = "2405"; processEngine.getTaskService().complete(taskId); System.out.println(taskId + " has Done."); } }
<?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:activiti="http://activiti.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.activiti.org/test"> <process id="personalTask2" name="Personal Task2" isExecutable="true"> <startEvent id="startevent1" name="Start"></startEvent> <userTask id="usertask2" name="User Task2" activiti:assignee="#{userId}"></userTask> <sequenceFlow id="flow1" sourceRef="startevent1" targetRef="usertask2"></sequenceFlow> <endEvent id="endevent1" name="End"></endEvent> <sequenceFlow id="flow2" sourceRef="usertask2" targetRef="endevent1"></sequenceFlow> </process> <bpmndi:BPMNDiagram id="BPMNDiagram_personalTask2"> <bpmndi:BPMNPlane bpmnElement="personalTask2" id="BPMNPlane_personalTask2"> <bpmndi:BPMNShape bpmnElement="startevent1" id="BPMNShape_startevent1"> <omgdc:Bounds height="35.0" width="35.0" x="310.0" y="80.0"></omgdc:Bounds> </bpmndi:BPMNShape> <bpmndi:BPMNShape bpmnElement="usertask2" id="BPMNShape_usertask2"> <omgdc:Bounds height="55.0" width="105.0" x="390.0" y="70.0"></omgdc:Bounds> </bpmndi:BPMNShape> <bpmndi:BPMNShape bpmnElement="endevent1" id="BPMNShape_endevent1"> <omgdc:Bounds height="35.0" width="35.0" x="540.0" y="80.0"></omgdc:Bounds> </bpmndi:BPMNShape> <bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1"> <omgdi:waypoint x="345.0" y="97.0"></omgdi:waypoint> <omgdi:waypoint x="390.0" y="97.0"></omgdi:waypoint> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2"> <omgdi:waypoint x="495.0" y="97.0"></omgdi:waypoint> <omgdi:waypoint x="540.0" y="97.0"></omgdi:waypoint> </bpmndi:BPMNEdge> </bpmndi:BPMNPlane> </bpmndi:BPMNDiagram> </definitions>
相关文章推荐
- 工作流引擎Activiti学习---使用流程变量进行个人任务分配
- activiti学习--13:组任务分配方式2--使用流程变量
- 工作流引擎Activiti学习---使用类个人任务分配
- activiti学习--12 个人任务及三种分配方式:直接设置代理人+流程变量设置代理人+实现类的方式设置代理人+将任务代理人设置为别人
- activiti学习--13:组任务分配方式1直接方式+查询正在执行的任务办理人表+查询历史任务的办理人表+拾取任务+将个人任务回退到组任务+向组任务中添加/删除成员
- activiti学习--13:组任务分配方式3--使用类
- 工作流引擎Activiti学习第四天(六)--- 流程变量第一节
- 工作流引擎Activiti学习第四天(七)--- 设置获取与流程变量
- Activiti 学习笔记12:分配个人任务
- activiti学习--05流程实例:部署流程定义+部署流程定义+查询当前人的个人任务+完成我的任务
- Activiti 学习笔记12:分配个人任务
- activiti学习-02环境准备+安装流程设计器+对流程设计器的使用+对流程设计器的使用+核心API的认识
- 用类名做方法的返回值类型 在学习Java的初始阶段,很多同学使用基本数据类型定义变量和引用类型定义变量以及使用类名做方法的返回值类型常常不知所以。今天我以自己的解读方式和个人的理解作一个简单的解释,和
- 工作流学习——Activiti流程实例、任务管理四步曲
- activiti自定义流程之Spring整合activiti-modeler实例(八):完成个人任务
- Activiti学习笔记七 流程变量
- Activiti工作流框架学习(二)——使用Activiti提供的API完成流程操作
- Activiti进阶(十)——分配个人任务的三种方式
- Activiti 学习笔记13:分配组任务
- Activiti工作流学习(二)流程实例、执行对象、任务