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(){
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
.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.删除实例
则会同时清空这个表的相关数据