流程部署
//得到一个默认的流程引擎
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
Deployment deployment = processEngine.getRepositoryService()
.createDeployment()
.addClasspathResource("WeChat.bpmn")
.addClasspathResource("WeChat.png")
.deploy();
WeChat.bpmn 为我们设计好的流程图
流程部署有三种方式,请查看这篇《Activiti 部署的三种方式与部署查询流程查询源码》:http://blog.csdn.net/FTDD_HW/article/details/76551954
启动流程
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
processEngine.getRuntimeService()
.startProcessInstanceByKey(pdkey,variables);
启动时我们可以根据key 来启动,也可以根据ID来启动。还可以带一些参数进行。Variables为一个Map集合.如果我们在流程中定义了变量,在启动前则需要将变量通过Map传递进行。
查看所有流程部署
List<ProcessDefinition> processDefinition = processEngine.getRepositoryService()
.createProcessDefinitionQuery()
.list();
我们需要一个list()来将结果转化成一个List集合,方便我们取值。
查看流程是否结束
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
ProcessInstance pi = processEngine.getRuntimeService()
.createProcessInstanceQuery()
.processInstanceId("130001")
.singleResult();
如果PI 的值为 null 则流程已经结果了
删除流程部署
// processEngine.getRepositoryService()
// .deleteDeployment("1");//用该API只能删除流程定义的内容和部署的内容
processEngine.getRepositoryService()
.deleteDeployment("55001", true);//删除了关于deploymentID为1的所有的数据,包括:流程定义、流程部署、任务等信息