Activiti7 获取资源信息及其查询流程历史信息
获取资源信息
/**
* 获取资源信息
*
* @throws IOException
*/
@Test
public void getProcessResources() throws IOException { // 1:流程定义ID
String processDefinitionId = "holiday:1:7504"; // 2:获取RepositoryService
RepositoryService repositoryService = defaultProcessEngine.getRepositoryService(); // 3:创建查询对象
ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery(); // 4:查询流程定义
ProcessDefinition processDefinition = processDefinitionQuery.processDefinitionId(processDefinitionId).singleResult(); // 5:获取资源名称
String resourceName = processDefinition.getResourceName(); System.out.println("bpmn名称:" + resourceName); // 6:获取图片名称
String diagramResourceName = processDefinition.getDiagramResourceName(); System.out.println("png名称:" + diagramResourceName); File bpmnFile = new File("E:\\dance\\activiti7\\src\\main\\resources\\cp\\holiday.bpmn");
File pngFile = new File("E:\\dance\\activiti7\\src\\main\\resources\\cp\\holiday.png"); // 7:根据部署ID和资源名称获取资源流
InputStream resourceAsStream = repositoryService.getResourceAsStream(processDefinition.getDeploymentId(), resourceName); // 8:创建输出流
FileOutputStream fileOutputStream = new FileOutputStream(bpmnFile); // 写文件
writeByte(resourceAsStream, fileOutputStream); // 获取图片
resourceAsStream = repositoryService.getResourceAsStream(processDefinition.getDeploymentId(), diagramResourceName); fileOutputStream = new FileOutputStream(pngFile); // 写文件
writeByte(resourceAsStream, fileOutputStream); System.out.println("获取资源成功!"); }
写出流方法
private void writeByte(InputStream resourceAsStream, OutputStream fileOutputStream) throws IOException {
int i = -1;
byte[] content = new byte[1024];
while ((i = resourceAsStream.read(content)) != -1) {
fileOutputStream.write(content, 0, i);
}
// 释放资源
fileOutputStream.flush();
fileOutputStream.close();
resourceAsStream.close();
}
查询流程历史信息
/**
* 获取历史信息
*/
@Test
public void testHistoric01() { // 获取历史信息Service
HistoryService historyService = defaultProcessEngine.getHistoryService(); // 启动的流程实例的ID
String processInstanceId = "10001"; // 根据流程实例ID查询 历史记录
List<HistoricActivityInstance> list = historyService.createHistoricActivityInstanceQuery().processInstanceId(processInstanceId).orderByHistoricActivityInstanceStartTime().asc().list(); // 输出信息
list.forEach(historicActivityInstance -> {
System.out.println("---------------------------------------------------");
System.out.println("当前激活ID:" + historicActivityInstance.getActivityId());
System.out.println("当前激活名称:" + historicActivityInstance.getActivityName());
System.out.println("流程定义ID:" + historicActivityInstance.getProcessDefinitionId());
System.out.println("流程实例ID:" + historicActivityInstance.getProcessInstanceId());
System.out.println("---------------------------------------------------");
}); }
作者:彼岸舞
时间:2020\08\31
内容关于:Activiti工作流
本文来源于网络,只做技术分享,一概不负任何责任
Activiti7 获取资源信息及其查询流程历史信息的更多相关文章
- Spring Security教程(五):自定义过滤器从数据库从获取资源信息
在之前的几篇security教程中,资源和所对应的权限都是在xml中进行配置的,也就在http标签中配置intercept-url,试想要是配置的对象不多,那还好,但是平常实际开发中都往往是非常多的资 ...
- 使用URLConnection获取网页信息的基本流程
参考自core java v2, chapter3 Networking. 注:URLConnection的子类HttpURLConnection被广泛用于Android网络客户端编程,它与apach ...
- 使用URLConnection获取网页信息的基本流程 分类: H1_ANDROID 2013-10-12 23:51 3646人阅读 评论(0) 收藏
参考自core java v2, chapter3 Networking. 注:URLConnection的子类HttpURLConnection被广泛用于Android网络客户端编程,它与apach ...
- 学习笔记_Java get和post区别(转载_GET一般用于获取/查询资源信息,而POST一般用于更新资源信息)
转载自:[hyddd(http://www.cnblogs.com/hyddd/)] 总结一下, Get是向服务器发索取数据的一种请求 而Post是向服务器提交数据的一种请求,在F ...
- JavaWeb学习记录(八)——servlet获取配置信息
jdbc.properties内容如下: jdbcUrl=jdbc\:mysql\://localhost\:3306/animaluser=rootpass=root servlet获取资源信息代码 ...
- activiti7查询流程定义的相关信息
package com.zcc.activiti02; import org.activiti.engine.ProcessEngine;import org.activiti.engine.Proc ...
- 使用 C# 开发 Kubernetes 组件,获取集群资源信息
写什么呢 前段时间使用 C# 写了个项目,使用 Kubernetes API Server,获取信息以及监控 Kubernetes 资源,然后结合 Neting 做 API 网关. 体验地址 http ...
- Android 获取手机信息,设置权限,申请权限,查询联系人,获取手机定位信息
Android 获取手机信息,设置权限,申请权限,查询联系人,获取手机定位信息 本文目录: 获取手机信息 设置权限 申请权限 查询联系人 获取手机定位信息 调用高德地图,设置显示2个坐标点的位置,以及 ...
- linux中uptime命令获取主机运行时间和查询系统负载信息
系统中的uptime命令主要用于获取主机运行时间和查询linux系统负载等信息.uptime命令可以显示系统已经运行了多长时间,信息显示依次为:现在时间.系统已经运行了多长时间.目前有多少登陆用户.系 ...
随机推荐
- 使用免费证书安装 ipa 到真机
使用免费证书安装 ipa 密码设置 进入 AppleId 官网 登录个人账号 登录进去之后, 找到 Security, 点击 Generate Password... 锁边输入几个字符, 再点击 Cr ...
- Nexus2 上传文件
通过管理界面上传 上传文件 hello-nexus.jar 登录 nexus2 选择第三方库 填写文件信息,完成文件上传 在索引页刷新,可以看到上传的文件 服务器上,文件的存放路径是 sonatype ...
- Spring quartz中取得ServletContext
在开发javaWeb定时任务的时候,有些处理要取得应用的相对路径,这就需要用到ServletContext取得到这个路径 解决思路是在web应用启动时,把ServletContext提前注入到Sche ...
- 2020-05-25:MQ应用场景、Kafka和rabbit区别?kafka为什么支撑高并发? 来自
福哥答案2020-05-25: 应用场景:解耦.异步.削峰.区别如下:特性 ActiveMQ RabbitMQ RocketMQ Kafka单机吞吐量 万级,比 RocketMQ.Kafka 低一个数 ...
- Visual Studio 2017版本15.9现在可用
本文转自 https://blogs.msdn.microsoft.com/visualstudio/2018/11/19/visual-studio-2017-version-15-9-now-av ...
- C#LeetCode刷题-几何
几何篇 # 题名 刷题 通过率 难度 587 安装栅栏 21.5% 困难 892 三维形体的表面积 C#LeetCode刷题之#892-三维形体的表面积(Surface Area of 3D Sh ...
- Linux Centos 下安装npm 实测可用
转载地址 https://blog.csdn.net/u012129607/article/details/60966045 1.root 登录linux 2.没有目录就自己创建一个 cd /usr/ ...
- cocos-2d解决rapidjson的string参数转换
解决方法 AddMember的传入的参数不是string, 所以会报错 本质就是把string类型转换成 参数的类型 username = "string"; rapidjson: ...
- 碰到 Json_CSRF 怎么办?
前言 在最近挖洞的时候,老是碰到 POST 传参采用 JSON 格式,而不是传统的parameter=value的格式,之前也没接触过,所以也不知道该怎么搞,所以打算学习一下,此文作为一个笔记梳理. ...
- html表格、表单
知识点一:表格 1.表格标签 table 2.表格的组成 行 tr 单元格 td 3.建立表格步骤 1.建立表格, 2.判断行数和列数 3.用行去包含单元格 4.在每个单元格中去添加内容 4. ...