博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Num55 boss09(activiti安装以及API)
阅读量:6983 次
发布时间:2019-06-27

本文共 4912 字,大约阅读时间需要 16 分钟。

hot3.png

安装流程设计器插件:

使用框架提供的方式创建23张表:

流程部署,定义,启动&查询,办理任务:

流程的部署,查询,删除 & 获取流程定义文件 & 流程实例的启动,查询,删除 & 查询,办理个人任务:

package cn.itcast.activiti;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import java.util.List;import java.util.zip.ZipInputStream;import org.activiti.engine.ProcessEngine;import org.activiti.engine.ProcessEngines;import org.activiti.engine.repository.DeploymentBuilder;import org.activiti.engine.repository.ProcessDefinition;import org.activiti.engine.repository.ProcessDefinitionQuery;import org.activiti.engine.runtime.ProcessInstance;import org.activiti.engine.task.Task;import org.activiti.engine.task.TaskQuery;import org.apache.commons.io.FileUtils;import org.junit.Test;/** * 测试API * @author zhaoqx * */public class ActivitiAPITest {	ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();	//部署流程定义两种方式	@Test	public void test1() throws Exception{		DeploymentBuilder deploymentBuilder = processEngine.getRepositoryService().createDeployment();		//方式一:加载单个的流程定义文件		//deploymentBuilder.addClasspathResource("qjlc.bpmn");		//deploymentBuilder.addClasspathResource("qjlc.png");		//deploymentBuilder.deploy();				//方式二:加载zip压缩文件		ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream(new File("d:\\Desktop.zip")));		deploymentBuilder.addZipInputStream(zipInputStream);		deploymentBuilder.deploy();	}		//查询最新版本的流程定义	@Test	public void test2() throws Exception{		//processEngine.getXXXService().createXXXQuery();		//processEngine.getRepositoryService().createDeploymentQuery().list();		//processEngine.getRuntimeService().createProcessInstanceQuery().list();		//processEngine.getTaskService().createTaskQuery().list();		//processEngine.getHistoryService().createHistoricActivityInstanceQuery().list();				ProcessDefinitionQuery query = processEngine.getRepositoryService().createProcessDefinitionQuery();		//添加过滤条件		//query.processDefinitionNameLike("请假%");		//添加过滤条件,查询最新的		//query.latestVersion();		//添加排序条件		query.orderByProcessDefinitionId().asc();		List
list = query.listPage(0, 10); for (ProcessDefinition processDefinition : list) { System.out.println(processDefinition); } } //删除流程定义 @Test public void test3(){ String deploymentId = "101";//部署id processEngine.getRepositoryService().deleteDeployment(deploymentId); } //查询流程定义文件(bpmn、png)名称和对应的输入流 @Test public void test4() throws Exception{ String deploymentId = "901";//部署id List
list = processEngine.getRepositoryService().getDeploymentResourceNames(deploymentId); for (String name : list) { InputStream in = processEngine.getRepositoryService().getResourceAsStream(deploymentId, name); System.out.println(name); //通过一个输出流写 OutputStream out = new FileOutputStream(new File("d:\\"+name)); /*byte[] b = new byte[1024];//1KB in.read(b); out.write(b); out.close();*/ FileUtils.copyInputStreamToFile(in, new File("d:\\"+name)); in.close(); } } //启动流程实例两种方式 @Test public void test5(){ //方式一:根据流程定义的id启动流程实例 //String processDefinitionId;//流程定义id //processEngine.getRuntimeService().startProcessInstanceById(processDefinitionId); //方式二:根据流程定义key启动流程实例(建议使用)----自动选择最新版本的流程定义 String processDefinitionKey = "qjlc";//流程定义key ProcessInstance processInstance = processEngine.getRuntimeService().startProcessInstanceByKey(processDefinitionKey); System.out.println(processInstance.getId()); } //查询流程实例 @Test public void test6(){ List
list = processEngine.getRuntimeService().createProcessInstanceQuery().list(); for (ProcessInstance processInstance : list) { System.out.println(processInstance); } } //删除流程实例 @Test public void test7(){ String processInstanceId = "1301";//流程实例id String deleteReason = "不请假了";//删除原因 processEngine.getRuntimeService().deleteProcessInstance(processInstanceId, deleteReason); } //查询个人任务 @Test public void test8(){ //任务查询对象,可以查询act_ru_task TaskQuery query = processEngine.getTaskService().createTaskQuery(); query.taskAssignee("张三"); //添加排序条件 query.orderByTaskCreateTime().desc(); //分页查询 List
list = query.listPage(0, 5); for (Task task : list) { System.out.println(task); } } //办理个人任务 @Test public void test9(){ String taskId = "1504";//任务id processEngine.getTaskService().complete(taskId); }}

总结API

l         几个接口(和表有对应关系)

1、Deployment对应部署表act_re_deployment

2、ProcessDefinition对应流程定义表act_re_procdef

3、ProcessInstance对应流程实例表act_ru_execution

4、Task对应任务表act_ru_task

l         几个Query对象(查询对应的数据表)

1、DeploymentQuery对应部署表act_re_deployment

2、ProcessDefinitionQuery对应流程定义表act_re_procdef

3、ProcessInstanceQuery对应流程实例表act_ru_execution

4、TaskQuery对应任务表act_ru_task

 

l         几个Service对象

1、RepositoryService:操作流程定义相关信息的、部署流程定义、删除流程定义、查询流程定义、查询流程定义文件名称和输入流

2、RuntimeService:操作流程实例的

3、TaskService:操作任务的

框架提供的网页版流程设计器使用:

 

转载于:https://my.oschina.net/u/2356966/blog/688463

你可能感兴趣的文章
清华赵骥主任与CIO石海军研讨互联网信息化
查看>>
tnsname.ora文件解析
查看>>
论文:论项目的计划和监控
查看>>
linux启动引导过程 grub和mbr
查看>>
lnmp环境安装
查看>>
Codeforces Round #438 868A/B/C
查看>>
CSS面试题目及答案
查看>>
SQL截取字段字符串的方法
查看>>
Redis学习——数据结构介绍(四)
查看>>
内置函数,匿名函数
查看>>
配置LANMP环境(8)-- 安装Samba与配置
查看>>
CS:4420 Artificial Intelligence
查看>>
第6周编程总结
查看>>
leetcode--Add Two Numbers
查看>>
简单选择排序
查看>>
Cloud_panel
查看>>
[原创]mysql 错误2 系统找不到指定的文件 the template configuration file cannot be found
查看>>
[LeetCode]2. Add Two Numbers两数相加
查看>>
Android中的四种动画(一)
查看>>
[C#]如何使用ThreadPool
查看>>