java 流程定义_工作流-流程定义

操作数据表

流程定义部署后操作 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 = file.getInputStream();

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 = processEngine.getRepositoryService();

//删除流程定义,如果该流程定义已有流程实例启动则删除时出错

repositoryService.deleteDeployment(deploymentId);

//设置true 级联删除流程定义,即使该流程有流程实例启动也可以删除

repositoryService.deleteDeployment(deploymentId, true);

}

说明:

使用 repositoryService 删除流程定义

如果该流程定义下没有正在运行的流程,则可以用普通删除。

如果该流程定义下存在已经运行的流程,使用普通删除报错,可用级联删除方法将流程及相关记录全部删除。项目开发中使用级联删除的情况比较多,删除操作一般只开放给超级管理员使用。

流程定义挂起

repositoryService.suspendProcessDefinitionById 和 repositoryService.suspendProcessDefinitionByKey 方法参数效果自行查询

流程定义查询

repositoryService.createProcessDefinitionQuery()和repositoryService.createNativeProcessDefinitionQuery() 说明:

通过获取查询API进行组装进行查询

createNativeProcessDefinitionQuery 是原生查询

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值