package com.imooc.activitiweb;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.runtime.ProcessInstance;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
@SpringBootTest
public class Part3_ProcessInstance {
@Autowired
private RuntimeService runtimeService;
//初始化流程实例
@Test
public void initProcessInstance(){
//1、获取页面表单填报的内容,请假时间,请假事由,String fromData
//2、fromData 写入业务表,返回业务表主键ID==businessKey
//3、把业务数据与Activiti7流程数据关联
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myProcess_Part1","bKey002");
System.out.println("流程实例ID:"+processInstance.getProcessDefinitionId());
}
//获取流程实例列表
@Test
public void getProcessInstances(){
List<ProcessInstance> list = runtimeService.createProcessInstanceQuery().list();
for(ProcessInstance pi : list){
System.out.println("--------流程实例------");
System.out.println("ProcessInstanceId:"+pi.getProcessInstanceId());
System.out.println("ProcessDefinitionId:"+pi.getProcessDefinitionId());
System.out.println("isEnded"+pi.isEnded());
System.out.println("isSuspended:"+pi.isSuspended());
}
}
//暂停与激活流程实例
@Test
public void activitieProcessInstance(){
// runtimeService.suspendProcessInstanceById("73f0fb9a-ce5b-11ea-bf67-dcfb4875e032");
//System.out.println("挂起流程实例");
runtimeService.activateProcessInstanceById("73f0fb9a-ce5b-11ea-bf67-dcfb4875e032");
System.out.println("激活流程实例");
}
//删除流程实例
@Test
public void delProcessInstance(){
runtimeService.deleteProcessInstance("73f0fb9a-ce5b-11ea-bf67-dcfb4875e032","删着玩");
System.out.println("删除流程实例");
}
}
1.初始化实例
部署完流程后 需要初始化实例
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myProcess_Part1","bKey002");
第一个参数是ACT_RE_PROCDEF流程定义表的KEY,第二个参数是对应自己业务表的主键id
初始化流程实例后,会在ACT_RU_IDENTITYLINK运行时参与人员与节点关系表与ACT_RU_EXECUTION运行时流程执行实例表生成数据。
在ACT_RU_IDENTITYLINK运行时参与人员与节点关系表中生成相应的类型与参与人的id与流程实例id等信息。
在ACT_RU_EXECUTION运行时流程执行实例表中生成业务主键id等信息。
2.获取流程实例列表
流程实例------
ProcessInstanceId:02cd9b83-1445-11eb-a86b-04d9f5f5f42b 流程实例id
ProcessDefinitionId:myProcess_Part1:2:8f783608-143e-11eb-be5b-04d9f5f5f42b 流程定义id :bpm key+uuid
isEndedfalse 是否结束
isSuspended:false 是否挂起
3.暂停与激活流程实例
runtimeService.suspendProcessInstanceById(“02cd9b83-1445-11eb-a86b-04d9f5f5f42b”);
挂起该字段为2
runtimeService.activateProcessInstanceById(“02cd9b83-1445-11eb-a86b-04d9f5f5f42b”);
激活该字段为1
4.删除实例
则会同时清空这个表的相关数据