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 学习笔记八:排他网关(ExclusiveGateWay).zip (94个子文件)
ActivitiStduy
src
main
resources
log4j.properties 235B
activiti.cfg.xml 2KB
diagrams
helloWorld.zip 9KB
helloWorld.bpmn 3KB
processVariables.bpmn 3KB
helloWorld.png 10KB
processVariables.png 7KB
java
ExclusiveGateWayTest
exclusiveGateWay.bpmn 6KB
ExclusiveGateWayTest.java 4KB
exclusiveGateWay.png 16KB
jiankunking
processDefinition
ProcessDefinitionTest.java 7KB
exclusiveGateWay
helloworld
HelloWorld.java 3KB
sequenceFlow
SequenceFlowTest.java 4KB
sequenceFlow.bpmn 4KB
sequenceFlow.png 9KB
processInstance
ProcessInstanceTest.java 5KB
historyQuery
HistoryQueryTest.java 3KB
processVariables
ProcessVariablesTest.java 7KB
Person.java 600B
test
resources
java
junit
TestActiviti.java 2KB
.classpath 4KB
pom.xml 2KB
target
classes
ExclusiveGateWayTest
ExclusiveGateWayTest.class 5KB
exclusiveGateWay.bpmn 6KB
exclusiveGateWay.png 16KB
jiankunking
processDefinition
ProcessDefinitionTest.class 7KB
exclusiveGateWay
helloworld
HelloWorld.class 4KB
sequenceFlow
sequenceFlow.bpmn 4KB
SequenceFlowTest.class 5KB
sequenceFlow.png 9KB
processInstance
ProcessInstanceTest.class 7KB
historyQuery
HistoryQueryTest.class 5KB
processVariables
ProcessVariablesTest.class 6KB
Person.class 1KB
log4j.properties 235B
activiti.cfg.xml 2KB
diagrams
helloWorld.zip 9KB
helloWorld.bpmn 3KB
processVariables.bpmn 3KB
helloWorld.png 10KB
processVariables.png 7KB
test-classes
junit
TestActiviti.class 2KB
.project 438B
lib
activiti-spring-5.19.0.2.jar 35KB
jackson-annotations-2.2.3.jar 33KB
activiti-bpmn-converter-5.19.0.2.jar 193KB
jsr250-api-1.0.jar 6KB
commons-email-1.4.jar 50KB
spring-core-4.1.5.RELEASE.jar 985KB
spring-aop-4.1.5.RELEASE.jar 351KB
spring-security-core-3.2.3.RELEASE.jar 351KB
activiti-image-generator-5.19.0.2.jar 68KB
activiti-engine-5.19.0.2.jar 1.72MB
spring-context-4.1.5.RELEASE.jar 1002KB
slf4j-log4j12-1.7.6.jar 9KB
aopalliance-1.0.jar 4KB
jgraphx-1.10.4.1.jar 791KB
spring-web-4.1.5.RELEASE.jar 702KB
slf4j-api-1.7.6.jar 28KB
commons-fileupload-1.2.2.jar 58KB
javaGeom-0.11.1.jar 354KB
jackson-databind-2.2.3.jar 846KB
activiti-json-converter-5.19.0.2.jar 98KB
commons-lang3-3.3.2.jar 403KB
spring-tx-4.1.5.RELEASE.jar 247KB
joda-time-2.6.jar 574KB
spring-security-crypto-3.2.3.RELEASE.jar 41KB
spring-expression-4.1.5.RELEASE.jar 253KB
mybatis-3.3.0.jar 1.35MB
activiti-simple-workflow-5.19.0.2.jar 118KB
spring-orm-4.1.5.RELEASE.jar 368KB
jackson-core-2.2.3.jar 188KB
commons-io-2.0.1.jar 156KB
log4j-1.2.17.jar 478KB
mysql-connector-java-5.1.10-bin.jar 707KB
spring-security-web-3.2.3.RELEASE.jar 334KB
spring-beans-4.1.5.RELEASE.jar 692KB
commons-pool-1.5.4.jar 94KB
h2-1.3.176.jar 1.58MB
jcl-over-slf4j-1.7.6.jar 16KB
activiti-rest-5.19.0.2.jar 326KB
activiti-bpmn-model-5.19.0.2.jar 96KB
javax.mail-1.5.2.jar 558KB
activiti-process-validation-5.19.0.2.jar 55KB
activiti-bpmn-layout-5.19.0.2.jar 19KB
spring-webmvc-4.1.5.RELEASE.jar 763KB
groovy-all-2.4.3.jar 6.65MB
spring-security-config-3.2.3.RELEASE.jar 397KB
activiti-common-rest-5.19.0.2.jar 14KB
spring-jdbc-4.1.5.RELEASE.jar 417KB
activation-1.1.1.jar 55KB
commons-dbcp-1.4.jar 157KB
.bpmn
src
main
java
ExclusiveGateWayTest
exclusiveGateWay.bpmn2d 22KB
jiankunking
sequenceFlow
sequenceFlow.bpmn2d 644B
共 94 条
- 1
资源评论
- tianshiguishu2017-01-04学习一下,看看。
- werlker2018-05-02还可以,能学到东西
- davy_chai2018-02-27总结的还不错,可以看看
衣舞晨风
- 粉丝: 3756
- 资源: 117
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功