/**
* 部署 流程定义(inputSteam)
*/
@Test
public void depolymentProcessDefinition_inputStream(){
InputStream bpmn=this.getClass().getResourceAsStream("sequenceFlow.bpmn");
InputStream png=this.getClass().getResourceAsStream("sequenceFlow.png");
Deployment deployment=processEngine.getRepositoryService()
.createDeployment()
.name("部署连线")
.addInputStream("sequenceFlow.bpmn", bpmn)
.addInputStream("sequenceFlow.png", png)
.deploy();
System.out.println("部署ID:"+deployment.getId()); //部署ID:1701
System.out.println("部署名称:"+deployment.getName()); //部署名称:部署连线
}
/**
* 启动流程实例 ProcessInstance
*/
@Test
public void startProcessInstance(){
// 流程实例key
String processKey="sequenceFlow";
ProcessInstance pInstance=processEngine.getRuntimeService()
.startProcessInstanceByKey(processKey);
System.out.println("流程实例ID:"+pInstance.getId());//流程实例ID 1801
System.out.println("流程定义ID:"+pInstance.getProcessDefinitionId());//流程定义ID sequenceFlow:2:1704
}
/**
* 查询当前人的个人任务 Task
*/
@Test
public void findMyPersonalTask(){
//
String assignee="赵四";
List<Task> list=processEngine.getTaskService()
.createTaskQuery()
.taskAssignee(assignee)
/**查询条件(where部分)*/
.list();
// .taskCandidateUser(candidateUser)//组任务的办理人查询
// .processDefinitionId(processDefinitionId)//使用流程定义ID查询
// .processInstanceId(processInstanceId)//使用流程实例ID查询
// .executionId(executionId)//使用执行对象ID查询
if(list!=null && list.size()>0){
for (Task task : list) {
System.out.println("任务ID:"+task.getId()); //1801
System.out.println("任务名称:"+task.getName());
System.out.println("任务的创建时间:"+task.getCreateTime());
System.out.println("任务的办理人:"+task.getAssignee());
System.out.println("流程实例ID:"+task.getProcessInstanceId()); //1801
System.out.println("执行对象ID:"+task.getExecutionId());
System.out.println("流程定义ID:"+task.getProcessDefinitionId());
System.out.println("-----------------Task------------------------");
}
}
}
/**
* 完成我的任务
*/
@Test
public void completeMyTask(){
// 任务id
String taskId="2104";
//完成任务的同时,设置流程变量,使用流程变量用来指定完成任务后,下一个连线,对应sequenceFlow.bpmn文件中${message=='不重要'}
Map<String, Object> variables=new HashMap<String, Object>();
variables.put("message", "重要");
processEngine.getTaskService().complete(taskId, variables); //与正在执行的任务管理相关的Service
System.out.println("完成任务:任务ID:"+taskId);
}