(四)Activiti之流程定义部署之ZIP方式和流程定义查询
2017-12-06 15:31
423 查看
一、流程定义部署之ZIP方式
- 上一章节我们使用classpath的方式加载流程定义文件,这里我们使用ZIP的方式。
1.1 用activiti插件生成bpmn和png图片之后,压缩到一个zip格式的压缩包中。
1.2 代码中加载
package com.shyroke.activiti.firstActiviti; import static org.junit.Assert.*; import java.io.InputStream; import java.util.zip.ZipInputStream; import org.activiti.engine.ProcessEngine; import org.activiti.engine.ProcessEngines; import org.activiti.engine.repository.Deployment; import org.junit.After; import org.junit.Before; import org.junit.Test; public class ProcessDefineTest { /** * 获取默认流程引擎实例,会自动读取activiti.cfg.xml文件 */ private ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); /** * 部署流程定义使用zip方式 */ @Test public void test_deployWithZip() { InputStream in=this.getClass().getClassLoader().getSystemResourceAsStream("diagrams/HelloWorld.zip"); ZipInputStream zipInputStream=new ZipInputStream(in); Deployment deployment=processEngine.getRepositoryService() .createDeployment().addZipInputStream(zipInputStream) .name("HelloWorld流程2") .deploy(); System.out.println("流程部署ID:"+deployment.getId()); System.out.println("流程部署Name:"+deployment.getName()); } }
-
执行测试用例并查看结果
- act_re_deployment 流程定义部署表新增一条记录
- act_re_procdef 流程定义表中VERSION_字段 版本升级了,KEY依然是一样的;
- act_ge_bytearry 资源文件表,多了两条记录
- 这里再提一个表 act_ge_property 属性表,这里的next_dbid是主键策略,就是规定好了下一次生成的id就是10001;
二、流程定义查询
2.1 查询流程定义 返回流程定义集合 对应表 act_re_procdef
package com.shyroke.activiti.firstActiviti; import static org.junit.Assert.*; import java.io.InputStream; import java.util.List; 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.junit.After; import org.junit.Before; import org.junit.Test; public class ProcessDefineTest2 { /** * 获取默认流程引擎实例,会自动读取activiti.cfg.xml文件 */ private ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); /** * 查询流程定义 返回流程定义集合 对应表 act_re_procdef */ @Test public void test_list() { List<ProcessDefinition> pdList=processEngine.getRepositoryService().createProcessDefinitionQuery() .processDefinitionKey("myFirstProcess") .list(); for(ProcessDefinition pd:pdList){ System.out.println("ID_"+pd.getId()); System.out.println("NAME_"+pd.getName()); System.out.println("KEY_"+pd.getKey()); System.out.println("VERSION_"+pd.getVersion()); System.out.println("========="); } } }
- 结果
2.2 通过ID查询某个流程定义
package com.shyroke.activiti.firstActiviti; import static org.junit.Assert.*; import java.io.InputStream; import java.util.List; 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.junit.After; import org.junit.Before; import org.junit.Test; public class ProcessDefineTest2 { /** * 获取默认流程引擎实例,会自动读取activiti.cfg.xml文件 */ private ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); /** * 通过ID查询某个流程定义 */ @Test public void getById(){ String processDefinitionId="myFirstProcess:2:7504"; ProcessDefinition pd=processEngine.getRepositoryService() // 获取service .createProcessDefinitionQuery() // 创建流程定义查询 .processDefinitionId(processDefinitionId) // 通过id查询 .singleResult(); System.out.println("ID_"+pd.getId()); System.out.println("NAME_"+pd.getName()); System.out.println("KEY_"+pd.getKey()); System.out.println("VERSION_"+pd.getVersion()); } }
- 结果:
相关文章推荐
- Activiti流程定义部署之ZIP方式
- Activiti流程定义部署ZIP方式
- activiti学习--05流程实例:部署流程定义+部署流程定义+查询当前人的个人任务+完成我的任务
- activiti 部署流程定义(InputStream) 流程变量设置 及获取流程变量、查询流程变量历史表
- activiti 流程定义部署及查询
- activiti学习--04流程定义:流程定义组成+部署流程定义+查询流程定义+删除流程定义+删除流程定义+查询最新版本的流程定+查询最新版本的流程定义
- 四、Activiti 部署的三种方式与部署查询流程查询源码
- Activiti基础教程--04管理流程定义(流程定义部署ZIP/classpath)、查看(获取流程定义图图片)、删除,不能修改
- Activiti 部署流程定义及相关的表(classpath部署、zip部署)
- Activiti基础教程--04管理流程定义(流程定义部署ZIP/classpath)、查看(获取流程定义图图片)、删除,不能修改
- activiti自己定义流程之整合(四):整合自己定义表单部署流程定义
- activiti部署流程定义时出错:INSERT INTO ACT_GE_BYTEARRAY,修改数据库编码
- Activiti 流程部署方式 activi 动态部署(高级源码篇)
- Jbpm笔记之一 -- 流程定义管理( 部署和定义查询、删除、查看流程图)
- activiti自定义流程之整合(四):整合自定义表单部署流程定义
- activiti自定义流程之整合(四):整合自定义表单部署流程定义
- Activiti 流程部署方式 activi 动态部署(高级源码篇)
- activiti自定义流程之整合(四):整合自定义表单部署流程定义
- 工作流框架--activiti(二)--部署流程定义
- 【入门篇】Activiti查询指定流程定义下待办task