工作流挂起和激活
package com.activiti01;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngineConfiguration;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.repository.ProcessDefinition;
import org.junit.Test;
import java.util.List;
/**
*/
public class ActivitiAllProcessSuspendActivateTest {
/**
* 挂起/激活流程
*/
@Test
public void test() {
//获取ProcessEngineConfiguration对象
ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml");
//获取ProcessEngine对象
ProcessEngine processEngine = configuration.buildProcessEngine();
//获取RepositoryService对象
RepositoryService repositoryService = processEngine.getRepositoryService();
//获取指定key的流程定义
List<ProcessDefinition> processDefinitionList = repositoryService.createProcessDefinitionQuery().processDefinitionKey("myEvection").list();
for (ProcessDefinition processDefinition : processDefinitionList) {
//如果该流程定义是暂停的
boolean suspended = processDefinition.isSuspended();
if (suspended) {
//如果该流程定义是暂停的,则激活该流程定义下的所有流程实例
//第一个参数,表示流程定义的id
//第二个参数,表示是否级联激活该流程定义的流程实例
//第三个参数,表示激活这个流程定义的时间,如果不填写,从此刻开始
repositoryService.activateProcessDefinitionById(processDefinition.getId(), true, null);
System.out.println("流程定义" + processDefinition.getId() + "激活");
} else {
//如果该流程定义是激活的,则挂起该流程定义
repositoryService.suspendProcessDefinitionById(processDefinition.getId(), true, null);
System.out.println("流程定义" + processDefinition.getId() + "挂起");
}
}
}
}