Activiti——流程定义操作

1 流程定义信息查询

查询流程相关信息,包含流程定义,流程部署,流程定义版本 -> ACT_RE_PROCDEF

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@Test
public void queryProcessDefinition(){
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
RepositoryService repositoryService = processEngine.getRepositoryService();
ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery();
List<ProcessDefinition> definitionList = processDefinitionQuery.processDefinitionKey("myProcess")
.orderByProcessDefinitionVersion()
.desc()
.list();
for (ProcessDefinition processDefinition : definitionList) {
System.out.println("流程定义 id="+processDefinition.getId());
System.out.println("流程定义 name="+processDefinition.getName());
System.out.println("流程定义 key="+processDefinition.getKey());
System.out.println("流程定义 Version="+processDefinition.getVersion());
System.out.println("流程部署ID ="+processDefinition.getDeploymentId());
}
}

2. 流程定义删除

说明:

  1.   使用repositoryService删除流程定义,历史表信息不会被删除
    
  2.   如果该流程定义下没有正在运行的流程,则可以用普通删除。
    

如果该流程定义下存在已经运行的流程,使用普通删除报错,可用级联删除方法将流程及相关记录全部删除。

先删除没有完成流程节点,最后就可以完全删除流程定义信息

项目开发中级联删除操作一般只开放给超级管理员使用.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Test
public void deleteDeployment() {
// 流程部署id
String deploymentId = "1";

ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
// 通过流程引擎获取repositoryService
RepositoryService repositoryService = processEngine
.getRepositoryService();
//删除流程定义,如果该流程定义已有流程实例启动则删除时出错
//repositoryService.deleteDeployment(deploymentId);
//设置true 级联删除流程定义,即使该流程有流程实例启动也可以删除,设置为false非级别删除方式,如果流程
repositoryService.deleteDeployment(deploymentId, true);
}

Activiti——流程定义操作
http://example.com/流程定义操作/
作者
Panyurou
发布于
2023年2月9日
许可协议