1.自动任务的创建
可以通过设置自动执行工作流
2.流程定义的部署
/**
* 流程定义的部署
*/
@Test
public void activitiDeployment() {
//创建ProcessEngine对象
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//得到RepositoryService,用于加载流程图,部署流程图
RepositoryService repositoryService = processEngine.getRepositoryService();
//部署
Deployment deployment = repositoryService.createDeployment().addClasspathResource("auto.bpmn").name("auto").deploy();
//输出部署信息
System.out.println(deployment.getName());
System.out.println(deployment.getId());
} 3.执行流程实例
/**
* 执行流程实例
*/
@Test
public void startProcessInstance() {
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//传入值对应bpmn中的id
ProcessInstance processInstance = processEngine.getRuntimeService().startProcessInstanceByKey("auto",);
automaticExecution(processEngine,processInstance.getId());
}
/**
* 自动执行,这个方法适用于只有ReceiveTask的工作流
*/
public void automaticExecution(ProcessEngine processEngine, String processInstanceId) {
ProcessInstance result = processEngine.getRuntimeService().createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
//判断流程是否结束
if (result == null) {
System.out.println("执行完毕");
return;
}
List<String> activityIds = processEngine.getRuntimeService().getActiveActivityIds(processInstanceId);
System.out.println(activityIds);
activityIds.forEach(activityId -> {
Execution e = processEngine.getRuntimeService().createExecutionQuery().processInstanceId(processInstanceId).activityId(activityId).singleResult();
//重点在trigger方法,往下执行
processEngine.getRuntimeService().trigger(e.getId());
});
automaticExecution(processEngine, processInstanceId);
}
版权声明:本文为qq_40823910原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。