项目:itcast0711 > cn.itcast.f_sequenceFlow
一. 画流程图
- 点击空白处, 修改流程图 key 和 name
- 修改任务节点id, name和办理人
- 设置连线属性和条件(点击连线, 打开Properties窗即可)
二. 部署流程定义(从inputStream)
/**部署流程定义(从inputStream)*/
@Test
public void deploymentProcessDefinition_inputStream(){
// 资源在同包目录下
InputStream inputStreamBpmn = this.getClass().getResourceAsStream("sequenceFlow.bpmn");
InputStream inputStreamPng = this.getClass().getResourceAsStream("sequenceFlow.png");
Deployment deployment = processEngine.getRepositoryService()//与流程定义和部署对象相关的Service
.createDeployment()//创建一个部署对象
.name("连线")//添加部署的名称
.addInputStream("sequenceFlow.bpmn", inputStreamBpmn)
.addInputStream("sequenceFlow.png", inputStreamPng)
.deploy();//完成部署
System.out.println("部署ID:"+deployment.getId());
System.out.println("部署名称:"+deployment.getName());
}
注: eclipse中这种将资源(bpmn,png)放置在与java类相同包路径下 加载资源的方式 可能会出现问题, 需要配置Java Build Path
方法: (Eclipse) 右键项目Properties > Java Build Path
三. 完成任务时, 设置流程变量控制流程走向
/**完成任务时, 设置流程变量控制流程走向*/
@Test
public void completeMyPersonalTask(){
//任务ID
String taskId = "3103";
//完成任务的同时,设置流程变量,使用流程变量用来指定完成任务后的下一个连线,对应sequenceFlow.bpmn文件中条件${message=='重要'}
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("message", "重要");
processEngine.getTaskService()//与正在执行的任务管理相关的Service
.complete(taskId,variables);
System.out.println("完成任务:任务ID:"+taskId);
}