一、流程定义的删除(根据部署ID删除)
1、RepositoryService.deleteDeployment(部署ID)
使用此方法时,当此流程没有流程实例时,会将三个表中的信息都删除。
当有流程实例时,则删除不成功。
2、RepositoryService.deleteDeployment(部署ID,cascade)
中间方法,cascade的值为布尔类型的值。
当cascade的值为true时,无论有没有流程实例在引用此流程定义,都会将三个表中的信息都删除。
当cascade的值为false时,有流程实例在引用此流程定义,则删除不成功。
3、RepositoryService.deleteDeploymentCascade(部署ID)
无论有没有流程实例在引用此流程定义,都会将三个表中的信息都删除。
三张表分别是:

二、流程定义的修改
Activiti没有提供修改流程定义信息的接口,在修改原有的流程图之后,需要重新部署,只要key不变,此流程图的版本号会+1。
也就是说,在修改了流程图之后,只有重新部署,修改的流程才会生效。
三、查询最新版本的流程定义(用于流程发起) 黎美顺我爱你ლ(′◉❥◉`ლ)
1、首先将当前key的所有流程按照版本号进行升序查询。
2、将查询得出的list进行遍历保存到map集合当中(特点是map的键唯一),遍历结束,map保存的就是最新版本的流程定义
3、将map进行遍历
public void findNewProDef() {
//将流程定义按照版本号升序查询
RepositoryService repositoryService = processEngine.getRepositoryService();
List<ProcessDefinition> processDefinitions = repositoryService
.createProcessDefinitionQuery().orderByProcessDefinitionVersion().asc().list();
HashMap<String,ProcessDefinition> map = new HashMap<String,ProcessDefinition>();
//将流程定义保存到map当中
for(ProcessDefinition pd:processDefinitions) {
map.put(pd.getKey(), pd);
}
//遍历map则可以得到所有最新的流程定义
Collection<ProcessDefinition> newpd = map.values();
for(ProcessDefinition pd:newpd) {
System.out.println(pd.getId());
}
}四、查询流程图(根据流程定义的ID去查)