2019独角兽企业重金招聘Python工程师标准>>>

安装流程设计器插件:

使用框架提供的方式创建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();//部署流程定义两种方式@Testpublic 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();}//查询最新版本的流程定义@Testpublic 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<ProcessDefinition> list = query.listPage(0, 10);for (ProcessDefinition processDefinition : list) {System.out.println(processDefinition);}}//删除流程定义@Testpublic void test3(){String deploymentId = "101";//部署idprocessEngine.getRepositoryService().deleteDeployment(deploymentId);}//查询流程定义文件(bpmn、png)名称和对应的输入流@Testpublic void test4() throws Exception{String deploymentId = "901";//部署idList<String> 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];//1KBin.read(b);out.write(b);out.close();*/FileUtils.copyInputStreamToFile(in, new File("d:\\"+name));in.close();}}//启动流程实例两种方式@Testpublic void test5(){//方式一:根据流程定义的id启动流程实例//String processDefinitionId;//流程定义id//processEngine.getRuntimeService().startProcessInstanceById(processDefinitionId);//方式二:根据流程定义key启动流程实例(建议使用)----自动选择最新版本的流程定义String processDefinitionKey = "qjlc";//流程定义keyProcessInstance processInstance = processEngine.getRuntimeService().startProcessInstanceByKey(processDefinitionKey);System.out.println(processInstance.getId());}//查询流程实例@Testpublic void test6(){List<ProcessInstance> list = processEngine.getRuntimeService().createProcessInstanceQuery().list();for (ProcessInstance processInstance : list) {System.out.println(processInstance);}}//删除流程实例@Testpublic void test7(){String processInstanceId = "1301";//流程实例idString deleteReason = "不请假了";//删除原因processEngine.getRuntimeService().deleteProcessInstance(processInstanceId, deleteReason);}//查询个人任务@Testpublic void test8(){//任务查询对象,可以查询act_ru_taskTaskQuery query = processEngine.getTaskService().createTaskQuery();query.taskAssignee("张三");//添加排序条件query.orderByTaskCreateTime().desc();//分页查询List<Task> list = query.listPage(0, 5);for (Task task : list) {System.out.println(task);}}//办理个人任务@Testpublic void test9(){String taskId = "1504";//任务idprocessEngine.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

Num55 boss09(activiti安装以及API)相关推荐

  1. Winddows 10 安装 COCO API(pycocotools)

    为了玩 Yolo-V3 花了好几天了,好不容易编写好了模型,也通过了测试,现在想做一些调整然后继续训练,还是采用COCO数据集. 但是 PyTorch 加载 COCO 数据集需要安装 COCO API ...

  2. ZooKeeper的安装和API

    Zookeeper的分布式安装和API介绍: 安装教程 在datanode1.datanode2和datanode3三个节点上部署Zookeeper. 步骤 解压zookeeper安装包到/opt/m ...

  3. 如何安装kaggle API下载数据 及报错OSError: Could not find kaggle.json. Make sure it‘s located in /home/user/解决办法

    如何安装kaggle API下载数据 及报错OSError: Could not find kaggle.json. Make sure it's located /解决办法 C:\Users\pc& ...

  4. OpenStack监控测量服务Ceilometer安装及 API说明

    2019独角兽企业重金招聘Python工程师标准>>> 1.Ceilometer是做什么的 Ceilometer是OpenStack中的一个子项目,它像一个漏斗一样,能把OpenSt ...

  5. apigee 安装_APIGEE – API网关简介

    apigee 安装 在本文中,我想简要介绍一下APIGEE. APIGEE主要提供现成的以下功能作为api网关. 协议转换 与任何协议(包括SOAP,REST,XML二进制或自定义)进行转换 交通管理 ...

  6. linux下RocketMQ的安装和API调用中出现的问题的解决 MARK一下

    下载和构建 配置环境变量 在/etc/profile最后添加 JAVA_HOME=/soft/jdk1.8.0_111 MAVEN_HOME=/soft/maven/apache-maven-3.5. ...

  7. OpenShift 4 - 安装3Scale API Management环境

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.7环境中验证 文章目录 环境要求 安装 3Scale Operator 安装API Manager ...

  8. python安装api_Python API文档

    快速开始 下载SDK 掘金量化平台提供策略开发服务包(SDK)用于策略开发者实现自己的策略.SDK下载地址请点击这里. Python SDK支持Windows + Python2.7/3.6 + 32 ...

  9. es 安装以及api

    一.引言 1.1 海量数据 在海量数据中执行搜索功能时,如果使用MySQL,效率太低 1.2 全文检索 在海量数据中执行搜索功能时,如果使用MySQL,效率太低 1.3 高亮显示 想将搜索关键字,以红 ...

最新文章

  1. ant design后台模板-1.前端环境搭建
  2. Php使用selenium爬虫,selenium,python爬虫_使用selenium爬取网站时输出结果不正确,selenium,python爬虫 - phpStudy...
  3. Hard commits, soft commits and transaction logs
  4. kubernetes集群搭建以及遇到的问题
  5. Memcached实战之复制----基于repcached的主从
  6. linux下elasticsearch的安装
  7. mysql的中文乱码url,MySQL 中文显示乱码
  8. centos下安装fastdfs(笔记系列)
  9. 苹果或将推出可折叠iPad:支持5G 对抗双屏Surface
  10. Android自定义控件之实现listview滑动时渐隐渐现顶部栏
  11. UBUNTU设置SSH通过密钥登陆
  12. 欧姆龙PLC程序 本程序包括有欧姆龙CP1H脉冲程序案例,威纶通触摸屏程序
  13. 机房收费系统——可行性研究报告
  14. 计算机怎么快捷截图桌面,电脑截图的快捷键是什么_屏幕截图快捷键_怎么截图快捷键-太平洋IT百科手机版...
  15. 心愿作文计算机,关于心愿的作文150字
  16. gdp python 变迁动图_十分钟,用 Python 带你看遍 GDP 变迁
  17. c语言atol是什么缩写,C语言atol函数的可移植版本疑问
  18. 从200K/s到2M/s,只差这篇文章——使用ProxyeeDown加速百度云盘下载速度
  19. Spring Boot学习案例开源项目
  20. ONES 通过 CMMI 3 级评估认证

热门文章

  1. 白话经典算法系列之七 堆与堆排序
  2. OpenCV持久化(二)
  3. http_build_query用法
  4. rhel5.5安装xwindow
  5. ISA---不能访问网址或是多次刷新才能访问的解决方法一则
  6. Swift语言实现代理传值
  7. Guava Cache本地缓存在 Spring Boot应用中的实践
  8. objective-c系列-单例
  9. 如何用DNS+GeoIP+Nginx+Varnish做世界级的CDN
  10. 忍不住要发感慨,我的这个罗技鼠真好用...