ProcessDefinition与ProcessInstance是一对多关系
ProcessDefinition:行动计划
ProcessInstance:具体行动
ProcessDefinition对多ProcessInstance
一个计划多个行动
//操作实例需要注入RunTime
@Autowired
private RuntimeService runtimeService;
//操作部署信息注入
@Autowired
private RepositoryService repositoryService;
代码部分:
当我们需要操作流程实例时需要初始化
@Autowired
private RuntimeService runtimeService;
//初始化流程实例
@Test
public void initProcessInstance (){
//通过实例Key初始化实例
//key 流程开始的参数
//businessKey 信息业务名称
//工作中
//1获取页面表单填报内容,请假时间,请假事由, String 参数
//2: 参数 写入业务表 ,返回业务表主键ID==businessKey
//目的: 业务数据与流程数据关联
//businessKey用处:反查业务内容是什么
String key = "Process_1";
String businessKey = "测试";
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(key,businessKey);
System.out.println("流程实例ID为"+processInstance.getProcessInstanceId());
}
//获取流程实例列表
@Test
public void getProcessInstances (){
List<ProcessInstance> list = runtimeService.createProcessInstanceQuery().list();
//流程定义的ID为 流程定义的key+版本号+UUID
for (ProcessInstance processInstance : list) {
//isSuspended 查看流程是否被挂起
System.out.println(processInstance.isSuspended());
//查看流程定义ID
System.out.println(processInstance.getProcessInstanceId());
}
}
//挂起实例
@Test
public void activtiProcessInstance (){
//传入流程实例id
//执行挂起
runtimeService.suspendProcessInstanceById("9f4f9fc3-2e8f-11ed-a457-708bcd0c3dc6");
}
//激活实例
@Test
public void startActivtiProcessInstance (){
//传入流程实例ID
//激活后会取消挂起状态
runtimeService.activateProcessInstanceById("9f4f9fc3-2e8f-11ed-a457-708bcd0c3dc6");
}
//删除流程实例
@Test
public void delProcessInstance (){
//key 删除流程id
//delText 删除理由
//Activti多次删除会抛异常
String key = "9f4f9fc3-2e8f-11ed-a457-708bcd0c3dc6";
String delText = "测试";
runtimeService.deleteProcessInstance(key,delText);
}