package jiankunking.processDefinition;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.zip.ZipInputStream;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.repository.ProcessDefinition;
import org.apache.commons.io.FileUtils;
import org.junit.Test;
public class ProcessDefinitionTest {
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
/** 部署流程定义(从classpath) */
@Test
public void deploymentProcessDefinition_classpath() {
Deployment deployment = processEngine.getRepositoryService()// 与流程定义和部署对象相关的Service
.createDeployment()// 创建一个部署对象
.name("流程定义")// 添加部署的名称
.addClasspathResource("diagrams/helloworld.bpmn")// 从classpath的资源中加载,一次只能加载一个文件
.addClasspathResource("diagrams/helloworld.png")// 从classpath的资源中加载,一次只能加载一个文件
.deploy();// 完成部署
System.out.println("部署ID:" + deployment.getId());//
System.out.println("部署名称:" + deployment.getName());//
}
/** 部署流程定义(从zip) */
@Test
public void deploymentProcessDefinition_zip() {
InputStream in = this.getClass().getClassLoader().getResourceAsStream("diagrams/helloWorld.zip");
ZipInputStream zipInputStream = new ZipInputStream(in);
Deployment deployment = processEngine.getRepositoryService()// 与流程定义和部署对象相关的Service
.createDeployment()// 创建一个部署对象
.name("流程定义")// 添加部署的名称
.addZipInputStream(zipInputStream)// 指定zip格式的文件完成部署
.deploy();// 完成部署
System.out.println("部署ID:" + deployment.getId());//
System.out.println("部署名称:" + deployment.getName());//
}
/** 查询流程定义 */
@Test
public void findProcessDefinition() {
List<ProcessDefinition> list = processEngine.getRepositoryService()// 与流程定义和部署对象相关的Service
.createProcessDefinitionQuery()// 创建一个流程定义的查询
/** 指定查询条件,where条件 */
// .deploymentId(deploymentId)//使用部署对象ID查询
// .processDefinitionId(processDefinitionId)//使用流程定义ID查询
// .processDefinitionKey(processDefinitionKey)//使用流程定义的key查询
// .processDefinitionNameLike(processDefinitionNameLike)//使用流程定义的名称模糊查询
/** 排序 */
.orderByProcessDefinitionVersion().asc()// 按照版本的升序排列
// .orderByProcessDefinitionName().desc()//按照流程定义的名称降序排列
/** 返回的结果集 */
.list();// 返回一个集合列表,封装流程定义
// .singleResult();//返回惟一结果集
// .count();//返回结果集数量
// .listPage(firstResult, maxResults);//分页查询
if (list != null && list.size() > 0) {
for (ProcessDefinition pd : list) {
System.out.println("流程定义ID:" + pd.getId());// 流程定义的key+版本+随机生成数
System.out.println("流程定义的名称:" + pd.getName());// 对应helloworld.bpmn文件中的name属性值
System.out.println("流程定义的key:" + pd.getKey());// 对应helloworld.bpmn文件中的id属性值
System.out.println("流程定义的版本:" + pd.getVersion());// 当流程定义的key值相同的相同下,版本升级,默认1
System.out.println("资源名称bpmn文件:" + pd.getResourceName());
System.out.println("资源名称png文件:" + pd.getDiagramResourceName());
System.out.println("部署对象ID:" + pd.getDeploymentId());
System.out.println("#########################################################");
}
}
}
/** 删除流程定义 */
@Test
public void deleteProcessDefinition() {
// 使用部署ID,完成删除
String deploymentId = "57504";
/**
* 不带级联的删除 只能删除没有启动的流程,如果流程启动,就会抛出异常
*/
// processEngine.getRepositoryService()//
// .deleteDeployment(deploymentId);
/**
* 级联删除 不管流程是否启动,都能可以删除
*/
processEngine.getRepositoryService()//
.deleteDeployment(deploymentId, true);
System.out.println("删除成功!");
}
/**
* 查看流程图
*
* @throws IOException
*/
@Test
public void viewPic() throws IOException {
/** 将生成图片放到文件夹下 */
String deploymentId = "801";
// 获取图片资源名称
List<String> list = processEngine.getRepositoryService()//
.getDeploymentResourceNames(deploymentId);
// 定义图片资源的名称
String resourceName = "";
if (list != null && list.size() > 0) {
for (String name : list) {
if (name.indexOf(".png") >= 0) {
resourceName = name;
}
}
}
// 获取图片的输入流
InputStream in = processEngine.getRepositoryService()//
.getResourceAsStream(deploymentId, resourceName);
// 将图片生成到D盘的目录下
File file = new File("D:/" + resourceName);
// 将输入流的图片写到D盘下
FileUtils.copyInputStreamToFile(in, file);
}
/*** 附加功能:查询最新版本的流程定义 */
@Test
public void findLastVersionProcessDefinition() {
List<ProcessDefinition> list = processEngine.getRepositoryService()//
.createProcessDefinitionQuery()//
.orderByProcessDefinitionVersion().asc()// 使用流程定义的版本升序排列
.list();
/**
* Map<String,ProcessDefinition> map集合的key:流程定义的key map集合的value:流程定义的对象
* map集合的特点:当map集合key值相同的情况下,后一次的值将替换前一次的值
*/
Map<String, ProcessDefinition> map = new LinkedHashMap<String, ProcessDefinition>();
if (list != null && list.size() > 0) {
for (ProcessDefinition pd : list) {
map.put(pd.getKey(), pd);
}
}
List<ProcessDefinition> pdList = new ArrayList<ProcessDefinition>(map.values());
if (pdList != null && pdList.size() > 0) {
for (ProcessDefinition pd : pdList) {
System.out.println("流程定义ID:" + pd.getId());// 流程定义的key+版本+随机生成数
System.out.println("流程定义的名称:" + pd.getName());// 对应helloworld.bpmn文件中的name属性值
System.out.println("流程定义的key:" + pd.getKey());// 对应helloworld.bpmn文件中的id属性值
System.out.println("流程定义的版本:" + pd.getVersion());// 当流程定义的key值相同的相同下,版本升级,默认1
System.out.println("资源名称bpmn文件:" + pd.getResourceName());
System.out.println("资源名称png文件:" + pd.getDiagramResourceName());
System.out.println("部署对象ID:" + pd.getDeploymentId());
System.out.println("#########################################################");
}
}
}
/** 附加功能:删除流程定义(删除key相同的所有不同版本的流程定义) */
@Test
public void deleteProcessDefinitionByKey() {
// 流程定义的key
String processDefinitionKey = "helloworld";
// 先使用流程定义的key查询流程定义,查询出所有的版本
List<ProcessDefinition> list = processEngine.getRepositoryService()//
.createProcessDefinitionQuery()//
.processDefinitionKey(processDefinitionKey)// 使用流程定义的key查询
.list();
// 遍历,获取每个流程定义的部署ID
if (list != null && list.size() > 0) {
for (ProcessDefinition pd : list) {
// 获取部署ID
String deploymentId = pd.getDeploymentId();
processEngine.getRepositoryService()//
.deleteDeployment(deploymentId, true);
}
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
Activiti 学习笔记十:开始活动节点(判断流程是否结束及查询历史)
共105个文件
jar:49个
bpmn:12个
png:12个
5星 · 超过95%的资源 需积分: 46 107 下载量 133 浏览量
2016-09-11
10:40:12
上传
评论
收藏 22.21MB ZIP 举报
温馨提示
Activiti 学习笔记十:开始活动节点(判断流程是否结束及查询历史)
资源推荐
资源详情
资源评论
收起资源包目录
Activiti 学习笔记十:开始活动节点(判断流程是否结束及查询历史) (105个子文件)
exclusiveGateWay.bpmn 6KB
exclusiveGateWay.bpmn 6KB
parallelGateWay.bpmn 5KB
parallelGateWay.bpmn 5KB
sequenceFlow.bpmn 4KB
sequenceFlow.bpmn 4KB
helloWorld.bpmn 3KB
helloWorld.bpmn 3KB
processVariables.bpmn 3KB
processVariables.bpmn 3KB
start.bpmn 2KB
start.bpmn 2KB
parallelGateWay.bpmn2d 24KB
ProcessInstanceTest.class 7KB
ProcessDefinitionTest.class 7KB
ProcessVariablesTest.class 6KB
HistoryQueryTest.class 5KB
ExclusiveGateWayTest.class 5KB
SequenceFlowTest.class 5KB
ParallelGateWayTest.class 5KB
HelloWorld.class 4KB
StartTest.class 4KB
TestActiviti.class 2KB
Person.class 1KB
.classpath 4KB
groovy-all-2.4.3.jar 6.65MB
activiti-engine-5.19.0.2.jar 1.72MB
h2-1.3.176.jar 1.58MB
mybatis-3.3.0.jar 1.35MB
spring-context-4.1.5.RELEASE.jar 1002KB
spring-core-4.1.5.RELEASE.jar 985KB
jackson-databind-2.2.3.jar 846KB
jgraphx-1.10.4.1.jar 791KB
spring-webmvc-4.1.5.RELEASE.jar 763KB
mysql-connector-java-5.1.10-bin.jar 707KB
spring-web-4.1.5.RELEASE.jar 702KB
spring-beans-4.1.5.RELEASE.jar 692KB
joda-time-2.6.jar 574KB
javax.mail-1.5.2.jar 558KB
log4j-1.2.17.jar 478KB
spring-jdbc-4.1.5.RELEASE.jar 417KB
commons-lang3-3.3.2.jar 403KB
spring-security-config-3.2.3.RELEASE.jar 397KB
spring-orm-4.1.5.RELEASE.jar 368KB
javaGeom-0.11.1.jar 354KB
spring-security-core-3.2.3.RELEASE.jar 351KB
spring-aop-4.1.5.RELEASE.jar 351KB
spring-security-web-3.2.3.RELEASE.jar 334KB
activiti-rest-5.19.0.2.jar 326KB
spring-expression-4.1.5.RELEASE.jar 253KB
spring-tx-4.1.5.RELEASE.jar 247KB
activiti-bpmn-converter-5.19.0.2.jar 193KB
jackson-core-2.2.3.jar 188KB
commons-dbcp-1.4.jar 157KB
commons-io-2.0.1.jar 156KB
activiti-simple-workflow-5.19.0.2.jar 118KB
activiti-json-converter-5.19.0.2.jar 98KB
activiti-bpmn-model-5.19.0.2.jar 96KB
commons-pool-1.5.4.jar 94KB
activiti-image-generator-5.19.0.2.jar 68KB
commons-fileupload-1.2.2.jar 58KB
activation-1.1.1.jar 55KB
activiti-process-validation-5.19.0.2.jar 55KB
commons-email-1.4.jar 50KB
spring-security-crypto-3.2.3.RELEASE.jar 41KB
activiti-spring-5.19.0.2.jar 35KB
jackson-annotations-2.2.3.jar 33KB
slf4j-api-1.7.6.jar 28KB
activiti-bpmn-layout-5.19.0.2.jar 19KB
jcl-over-slf4j-1.7.6.jar 16KB
activiti-common-rest-5.19.0.2.jar 14KB
slf4j-log4j12-1.7.6.jar 9KB
jsr250-api-1.0.jar 6KB
aopalliance-1.0.jar 4KB
ProcessDefinitionTest.java 7KB
ProcessVariablesTest.java 7KB
ProcessInstanceTest.java 5KB
ExclusiveGateWayTest.java 4KB
SequenceFlowTest.java 4KB
ParallelGateWayTest.java 3KB
HistoryQueryTest.java 3KB
HelloWorld.java 3KB
StartTest.java 2KB
TestActiviti.java 2KB
Person.java 600B
exclusiveGateWay.png 16KB
exclusiveGateWay.png 16KB
parallelGateWay.png 12KB
parallelGateWay.png 12KB
helloWorld.png 10KB
helloWorld.png 10KB
sequenceFlow.png 9KB
sequenceFlow.png 9KB
processVariables.png 7KB
processVariables.png 7KB
start.png 4KB
start.png 4KB
.project 438B
log4j.properties 235B
log4j.properties 235B
共 105 条
- 1
- 2
资源评论
- ax24722018-08-25开始活动节点,判断流程是否结束及查询历史
衣舞晨风
- 粉丝: 3759
- 资源: 117
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Python的图像阴影检测与去除源码(高分期末大作业项目).zip
- 基于C++/Qt实现的井字棋游戏
- 基于 Python 编程语言的 Web 框架Django
- Python和Flask实现的基于体检数据的城市公共健康可视分析系统源码+使用说明.zip
- 基于python实现的华为智慧工地-安全帽检测
- buck-boost_2023-12-16_12-12-13.eprj
- 后端开发关于数据库和API开发的介绍
- 机器学习和数据挖掘课程设计-米其林餐厅数据挖掘管理系统源码+使用文档说明.zip
- html html html展示我与ai的对化
- 数据结构课程设计-全国交通出行咨询模拟系统C语言实现源码.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功