createprocessajava流程定义_⼯作流-流程定义
操作数据表
流程定义部署后操作 activiti数据表如下:
act_re_deployment 流程定义部署表,记录流程部署信息
act_re_procdef 流程定义表,记录流程定义信息
act_ge_bytearray 资源表
说明: act_re_deployment 和 act_re_procdef ⼀对多关系,⼀次部署在流程部署表⽣成⼀条记录,但⼀次部署可以部署多个流程定义,每个流程定义在流程定义表⽣成⼀条记录。每⼀个流程定义在act_ge_bytearray会存在两个资源记录,bpmn 和 png。
建议: ⼀次部署⼀个流程,这样部署表和流程定义表是⼀对⼀有关系,⽅便读取流程部署及流程定义信息。
流程定义部署
/
/ 上传⽂件部署
@SneakyThrows
public void deploy(String name, MultipartFile file) {
InputStream fileInputStream = InputStream();
String processName = name +".bpmn";
repositoryService
.createDeployment()
// ⽂件名, 流
.addInputStream(processName, fileInputStream)
// 流程定义名称
.name(name)
/
/ 分类
.category("process")
.deploy();
}
将线下定义的流程部署到 activiti数据库中,这就是流程定义部署,通过调⽤ activiti的 api将流程定义的 bpmn ⽂件添加部署到 activiti 中,可以将两个⽂件打成 zip 包进⾏部署,也可以通过Model进⾏部署。
流程定义删除
public void deleteDeployment() {
// 流程部署id
String deploymentId = "8801";
// 通过流程引擎获取repositoryService
RepositoryService repositoryService = RepositoryService();
//删除流程定义,如果该流程定义已有流程实例启动则删除时出错
repositoryService.deleteDeployment(deploymentId);
//设置true 级联删除流程定义,即使该流程有流程实例启动也可以删除
repositoryService.deleteDeployment(deploymentId, true);
}
说明:
使⽤ repositoryService 删除流程定义
如果该流程定义下没有正在运⾏的流程,则可以⽤普通删除。
如果该流程定义下存在已经运⾏的流程,使⽤普通删除报错,可⽤级联删除⽅法将流程及相关记录全部删除。项⽬开发中使⽤级联删除的情况⽐较多,删除操作⼀般只开放给超级管理员使⽤。
流程定义挂起
repositoryService.suspendProcessDefinitionById 和 repositoryService.suspendProcessDefinitionByKey ⽅法参数效果⾃⾏查询
流程定义查询
通过获取查询API进⾏组装进⾏查询
createNativeProcessDefinitionQuery 是原⽣查询

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。