工作流JBPM操作API删除流程部署流程

2024-04-19 15:36

本文主要是介绍工作流JBPM操作API删除流程部署流程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

      • 8.3 删除流程定义
        • 8.3.1 按照id删除(有关联信息会抛异常)
        • 8.3.2 按照id删除(会删除关联信息)
        • 8.3.3 按照key删除
      • 8.4 获取部署时的文件资源
        • 8.4.1 获取部署时的文件资源方式1
        • 8.4.2 获取部署时的文件资源方式2


在这里插入图片描述

8.3 删除流程定义

删除流程定义可以按照id和key删除。

8.3.1 按照id删除(有关联信息会抛异常)
// 删除流程定义  
@Test
public void deleteById(){String deploymentId = "1500001";ProcessEngine processEngine = Configuration.getProcessEngine(); //  有关联信息,抛异常processEngine.getRepositoryService().deleteDeployment(deploymentId);   
}

上述这种删除方法,如果该流程id对应的流程有关联信息,将会抛异常。

8.3.2 按照id删除(会删除关联信息)
// 删除流程定义  
@Test
public void deleteById(){String deploymentId = "1500001";ProcessEngine processEngine = Configuration.getProcessEngine(); //  有关联信息,会级联删除processEngine.getRepositoryService().deleteDeploymentCascade(deploymentId);  
}

上述这种删除方法,如果该流程id对应的流程有关联信息,会级联删除!

8.3.3 按照key删除
//  删除流程定义  按照key
@Test
public void deleteByKey(){String key = "b";List<ProcessDefinition> list = processEngine.getRepositoryService().createProcessDefinitionQuery().processDefinitionKey(key).list();//  遍历  删除if( list != null && list.size() > 0){for(ProcessDefinition processDefinition : list){System.out.println(processDefinition.getId());ProcessEngine processEngine = Configuration.getProcessEngine();              processEngine.getRepositoryService().deleteDeploymentCascade(processDefinition.getDeploymentId());}}
}

该方式会将该key下的所有实例删除。

8.4 获取部署时的文件资源

8.4.1 获取部署时的文件资源方式1

该方式要指定jbpm4_deployment表 DBID 和 jbpm4_lob 表中deplotmentId对应的name_的值

// 获取部署时的文件资源(查看流程图)

@Test  
public void get() throws Exception{ProcessEngine processEngine = Configuration.getProcessEngine(); //  jbpm4_deployment表 DBIDString deplotmentId = "1510001";   //  jbpm4_lob 表中deplotmentId对应的name_的值String resourceName = "test.png";  //  获取所有资源名称Set<String> names = processEngine.getRepositoryService().getResourceNames(deplotmentId);for(String name : names){System.out.println(name);}InputStream in = processEngine.getRepositoryService().getResourceAsStream(deplotmentId, resourceName);//  输出到本地文件 (路径自己指定,但要注意路径中包含的文件夹都存在)OutputStream outputStream = new FileOutputStream("d:/photoAlbum/process-" + deplotmentId +".png");for(int b = -1;(b = in.read()) != -1;){outputStream.write(b);}in.close();outputStream.close();
}

执行上述代码,会在我们指定的路径下得到如下图片:就是我们部署时候的流程图。

在这里插入图片描述

8.4.2 获取部署时的文件资源方式2

该方式要指定 jbpm4_execution 表中的 PROCDEFID 字段。

@Test  //  得到图片资源2
public void get2() throws IOException{//  jbpm4_execution 表中的 PROCDEFIDString processDefinitionId = "test-2";ProcessDefinition processDefinition = processEngine.getRepositoryService().createProcessDefinitionQuery().processDefinitionId(processDefinitionId).uniqueResult();InputStream in = processEngine.getRepositoryService().getResourceAsStream(processDefinition.getDeploymentId(), processDefinition.getImageResourceName());//    输出到本地文件OutputStream outputStream = new FileOutputStream("d:/photoAlbum/process/deplotmentImg/" + processDefinitionId + ".png");for(int b = -1;(b = in.read()) != -1;){outputStream.write(b);}in.close();outputStream.close();
}

执行上述代码,会在我们指定的路径下得到如下图片:就是我们部署时候的流程图。

在这里插入图片描述




在这里插入图片描述



这篇关于工作流JBPM操作API删除流程部署流程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/917946

相关文章

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

Python操作PDF文档的主流库使用指南

《Python操作PDF文档的主流库使用指南》PDF因其跨平台、格式固定的特性成为文档交换的标准,然而,由于其复杂的内部结构,程序化操作PDF一直是个挑战,本文主要为大家整理了Python操作PD... 目录一、 基础操作1.PyPDF2 (及其继任者 pypdf)2.PyMuPDF / fitz3.Fre

SpringBoot监控API请求耗时的6中解决解决方案

《SpringBoot监控API请求耗时的6中解决解决方案》本文介绍SpringBoot中记录API请求耗时的6种方案,包括手动埋点、AOP切面、拦截器、Filter、事件监听、Micrometer+... 目录1. 简介2.实战案例2.1 手动记录2.2 自定义AOP记录2.3 拦截器技术2.4 使用Fi

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

MySQL 强制使用特定索引的操作

《MySQL强制使用特定索引的操作》MySQL可通过FORCEINDEX、USEINDEX等语法强制查询使用特定索引,但优化器可能不采纳,需结合EXPLAIN分析执行计划,避免性能下降,注意版本差异... 目录1. 使用FORCE INDEX语法2. 使用USE INDEX语法3. 使用IGNORE IND

Spring Boot 中的默认异常处理机制及执行流程

《SpringBoot中的默认异常处理机制及执行流程》SpringBoot内置BasicErrorController,自动处理异常并生成HTML/JSON响应,支持自定义错误路径、配置及扩展,如... 目录Spring Boot 异常处理机制详解默认错误页面功能自动异常转换机制错误属性配置选项默认错误处理

Spring Boot从main方法到内嵌Tomcat的全过程(自动化流程)

《SpringBoot从main方法到内嵌Tomcat的全过程(自动化流程)》SpringBoot启动始于main方法,创建SpringApplication实例,初始化上下文,准备环境,刷新容器并... 目录1. 入口:main方法2. SpringApplication初始化2.1 构造阶段3. 运行阶

Java中的xxl-job调度器线程池工作机制

《Java中的xxl-job调度器线程池工作机制》xxl-job通过快慢线程池分离短时与长时任务,动态降级超时任务至慢池,结合异步触发和资源隔离机制,提升高频调度的性能与稳定性,支撑高并发场景下的可靠... 目录⚙️ 一、调度器线程池的核心设计 二、线程池的工作流程 三、线程池配置参数与优化 四、总结:线程

Python使用openpyxl读取Excel的操作详解

《Python使用openpyxl读取Excel的操作详解》本文介绍了使用Python的openpyxl库进行Excel文件的创建、读写、数据操作、工作簿与工作表管理,包括创建工作簿、加载工作簿、操作... 目录1 概述1.1 图示1.2 安装第三方库2 工作簿 workbook2.1 创建:Workboo