package com.activiti.study.sequenceFlow;
import java.io.InputStream;
import java.util.HashMap;
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.junit.Test;
public class SequenceFlowTest {
/**
*加载默认的流程引擎: 加载 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("SequenceFlowProcess.bpmn");
InputStream inputStreamPng = this.getClass().getResourceAsStream("SequenceFlowProcess.png");
Deployment deployment = processEngine.getRepositoryService()
.createDeployment()
.name("SequenceFlowProcess") //设定流程名称
.addInputStream("SequenceFlowProcess.bpmn", inputStreamBpmn)
.addInputStream("SequenceFlowProcess.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 = "SequenceFlowProcess";
ProcessInstance pi = processEngine.getRuntimeService().startProcessInstanceByKey(processDefinationKey);
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 testCompleteTask_Unimportant(){
String taskId = "2204";
Map<String,Object> map = new HashMap<String,Object>();
map.put("message", "important");
processEngine.getTaskService().complete(taskId, map);
System.out.println("Done.");
}
/**
* 完成任务
*/
@Test
public void testCompleteTask_Important(){
String taskId = "2303";
processEngine.getTaskService().complete(taskId);
System.out.println("Done.");
}
}
部署流程图:
bpmn: