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命令可以显示系统已经运行了多长时间,信息显示依次为:现在时间.系统已经运行了多长时间.目前有多少登陆用户.系 ...
随机推荐
- CSS基础知识(上)
1.创建结构化.语义丰富HTML 语义化标记是优秀HTML文档的基础. 语义化标记意味着在正确的地方使用正确的元素,从而得到有意义的文档. 有意义的文档可以确保尽可能多的人都能够使用. 1.1 ID和 ...
- Python datetime 转 JSON
Python datetime 转 JSON Python 中将 datetime 转换为 JSON 类型,在使用 Django 时遇到的问题. 环境: Python2.7 代码: import js ...
- Spring IOC 剖析
模拟实现 Spring Ioc 控制反转功能 使用 => 原理 => 源码 => 模拟实现 使用:了解 原理:熟悉 源码 And 模拟实现: 精通 对照 Spring 功能点 Spr ...
- C#LeetCode刷题之#704-二分查找(Binary Search)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3999 访问. 给定一个 n 个元素有序的(升序)整型数组 num ...
- RoBERTa:一个调到最优参的BERT
RoBERTa: A Robustly Optimized BERT Pretraining Approach. Yinhan Liu, Myle Ott, Naman Goyal, et al. 2 ...
- neo4j批量导入数据的两种解决方案
neo4j批量导入数据有两种方法,第一种是使用cypher语法中的LOAD CSV,第二种是使用neo4j自带的工具neo4j-admin import. LOAD CSV 导入的文件必须是csv文件 ...
- Linux学习笔记 一 第二章 Linux系统安装
Linux系统安装 一.首先安装VMware 虚拟机 下载网址:https://www.vmware.com/cn/products/workstation-pro/workstation-pro-e ...
- CompletableFuture异步线程
1.线程池七大参数介绍 (1)corePoolSize:线程池中常驻核心线程数 (2)maximumPoolSize:线程池能够容纳同时执行的最大线程数,此值必须大于等于1 (3)keepAliveT ...
- Git操作之码云代码clone
安装Git https://git-scm.com/book/zh/v2/起步-安装-Git Git的网站上有详细的分各种系统的安装教程. 配置Git 1. 打开你要放置项目的本地路径,右键选择$ G ...
- 2w字 + 40张图带你参透并发编程!
并发历史 在计算机最早期的时候,没有操作系统,执行程序只需要一种方式,那就是从头到尾依次执行.任何资源都会为这个程序服务,在计算机使用某些资源时,其他资源就会空闲,就会存在 浪费资源 的情况. 这里说 ...