activiti基础操作
package activitiTest;
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.history.HistoricProcessInstance;
import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
/**
* activiti基础操作
*/
public class ActTest_jichucaozuo {
// ProcessEngines.getDefaultProcessEngine()会在第一次调用时
// 初始化并创建一个流程引擎,以后再调用就会返回相同的流程引擎。
// 使用对应的方法可以创建和关闭所有流程引擎:ProcessEngines.init() 和
// ProcessEngines.destroy()。
private ProcessEngine processEngine = ProcessEngines
.getDefaultProcessEngine();
/**
* 简单非空判断
*
* @author:tuzongxun
* @Title: isEmpty
* @param @return
* @return boolean
* @date Feb 29, 2016 12:55:15 PM
* @throws
*/
public boolean isEmpty(Object object) {
if (object instanceof List) {
List list = (List) object;
if (list != null && list.size() > 0) {
return false;
} else {
return true;
}
} else {
if (object != null) {
return false;
} else {
return true;
}
}
}
/**
* 部署流程定义(发布流程)
*
* @author:tuzongxun
* @Title: actDeployement
* @param
* @return void
* @date Feb 29, 2016 12:23:48 PM
* @throws
*/
public void actDeployement() {
// 使用zip文件形式部署流程定义
InputStream inputStream = this.getClass().getClassLoader()
.getResourceAsStream("actTest1.zip");
ZipInputStream zipInputStream = new ZipInputStream(inputStream);
processEngine.getRepositoryService().createDeployment()
.name("activiti测试").addZipInputStream(zipInputStream).deploy();
}
/**
* 删除流程定义
*
* @author:tuzongxun
* @Title: deleteDeployement
* @param
* @return void
* @date Feb 29, 2016 12:36:15 PM
* @throws
*/
public void deleteDeployement() {
List<Deployment> lists = processEngine.getRepositoryService()
.createDeploymentQuery().list();
if (!isEmpty(lists)) {
for (Deployment deployment : lists) {
processEngine.getRepositoryService().deleteDeployment(
deployment.getId());
}
}
}
/**
* 启动流程实例
*
* @author:tuzongxun
* @Title: startProcessInstance
* @param
* @return void
* @date Feb 29, 2016 12:30:06 PM
* @throws
*/
public void startProcessInstance() {
// 这里根据流程定义的key启动,也可以根据id,还可以在启动的时候加入流程变量,
// 启动流程实例后会获得一个任务task,这里是在流程图中已经写死了任务所有者是张三,因此启动的时候会创建一个任务给张三
String processDefinitionKey = "myProcess";
processEngine.getRuntimeService().startProcessInstanceByKey(
processDefinitionKey);
}
/**
* 查询当前活动的流程实例
*
* @author:tuzongxun
* @Title: findCurrentProInstance
* @param
* @return void
* @date Feb 29, 2016 12:53:04 PM
* @throws
*/
public void findCurrentProInstance() {
List<ProcessInstance> lists = processEngine.getRuntimeService()
.createProcessInstanceQuery().list();
if (!isEmpty(lists)) {
for (ProcessInstance processInstance : lists) {
System.out.println(processInstance.getId());
}
}
}
/**
* 查询个人任务及相关信息
*
* @author:tuzongxun
* @Title: findMyTask
* @param
* @return void
* @date Feb 29, 2016 12:50:05 PM
* @throws
*/
public void findMyTask() {
// String userName = "张三";
String userName = "李四";
List<Task> lists = processEngine.getTaskService().createTaskQuery()
.taskAssignee(userName).list();
if (!isEmpty(lists)) {
for (Task task : lists) {
System.out.println(task.getId() + "," + task.getName() + ","
+ task.getAssignee() + "," + task.getCreateTime());
}
}
}
/**
* 完成个人任务
*
* @author:tuzongxun
* @Title: endMyTask
* @param
* @return void
* @date Feb 29, 2016 1:17:21 PM
* @throws
*/
public void endMyTask() {
String taskId = "5002";
processEngine.getTaskService().complete(taskId);
}
/**
* 查询历史流程实例
*
* @author:tuzongxun
* @Title: findHisProInstance
* @param
* @return void
* @date Feb 29, 2016 2:09:14 PM
* @throws
*/
public void findHisProInstance() {
List<HistoricProcessInstance> lists = processEngine.getHistoryService()
.createHistoricProcessInstanceQuery().list();
if (!isEmpty(lists)) {
for (HistoricProcessInstance hisPro : lists) {
System.out.println(hisPro.getId() + "," + hisPro.getStartTime()
+ "," + hisPro.getEndTime());
}
}
}
/**
* 查询历史任务列表
*
* @author:tuzongxun
* @Title: findHisTask
* @param
* @return void
* @date Feb 29, 2016 2:13:05 PM
* @throws
*/
public void findHisTask() {
List<HistoricTaskInstance> lists = processEngine.getHistoryService()
.createHistoricTaskInstanceQuery().list();
if (!isEmpty(lists)) {
for (HistoricTaskInstance hisTask : lists) {
System.out.println(hisTask.getId() + ","
+ hisTask.getAssignee() + "," + hisTask.getName() + ","
+ hisTask.getStartTime() + "," + hisTask.getEndTime());
}
}
}
}
activiti基础操作的更多相关文章
- python基础操作以及hdfs操作
目录 前言 基础操作 hdfs操作 总结 一.前言 作为一个全栈工程师,必须要熟练掌握各种语言...HelloWorld.最近就被"逼着"走向了python开发之路, ...
- MYSQL基础操作
MYSQL基础操作 [TOC] 1.基本定义 1.1.关系型数据库系统 关系型数据库系统是建立在关系模型上的数据库系统 什么是关系模型呢? 1.数据结构可以规定,同类数据结构一致,就是一个二维的表格 ...
- 【Learning Python】【第二章】Python基础类型和基础操作
基础类型: 整型: py 3.0解决了整数溢出的问题,意味着整型不必考虑32位,64位,有无符号等问题,你写一个1亿亿亿,就是1亿亿亿,不会溢出 a = 10 ** 240 print(a) 执行以上 ...
- Emacs学习心得之 基础操作
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Emacs学习心得之 基础操作 1.前言与学习计划2.Emacs基础操作 一. 前言与学习计 ...
- Git基础操作
配置秘钥 1.检查本机有没有秘钥 检查~/.ssh看看是否有名为d_rsa.pub和id_dsa.pub的2个文件. $ ~/.sshbash: /c/Users/lenovo/.ssh: Is a ...
- 推荐csdn里的几篇activiti基础入门及提高的博客
昨天有个网友加qq询问我有没有非maven搭建的activiti项目的demo,因为我博客中写了一个用maven,我当时没有,于是晚上回家尝试了一下,结果比较容易就实现了. 之后和那个网友聊了一下,他 ...
- 《Genesis-3D开源游戏引擎-官方录制系列视频教程:基础操作篇》
注:本系列教程仅针对引擎编辑器:v1.2.2及以下版本 G3D基础操作 第一课<G3D编辑器初探> G3D编辑器介绍,依托于一个复杂场景,讲解了场景视图及其基本操作,属性面板和工具栏的 ...
- MYSQL 基础操作
1.MySQL基础操作 一:MySQL基础操作 1:MySQL表复制 复制表结构 + 复制表数据 create table t3 like t1; --创建一个和t1一样的表,用like(表结构也一样 ...
- php之文件基础操作
在php中对文件的基础操作非常的简单,php提供的函数粗略的用了一遍. file_get_contents():可以获取文件的内容获取一个网络资源的内容,这是php给我封装的一个比较快捷的读取文件的内 ...
随机推荐
- 比较字符串,equals防空指针问题
1,比较两个字符串内容的话,用a.equals(b)比较,其中a,b是两个字符串,用a==b的话比较的是a和b的内存地址.2,如果一个字符串是变量,另一个字符串是常量的话,一定要把常量写在前面,变量写 ...
- 用Python对excel文件的简单操作
#-*-coding:utf8-*- import xlrd #代开excel文件读取数据 data = xlrd.open_workbook("C:\\Users\\hyl\\Deskto ...
- matlab演奏《卡农》
% Cripple Pachebel’s Canon on Matlab% Have fun fs = 44100; % sample ratedt = 1/fs; T16 = 0.125; t16 ...
- 原生js获取鼠标坐标方法全面讲解:clientX/Y,pageX/Y,offsetX/Y,layerX/Y,screenX/Y【转】
关于js鼠标事件综合各大浏览器能获取到坐标的属性总共以下五种 event.clientX/Y event.pageX/Y event.offsetX/Y event.layerX/Y event.sc ...
- spring mvc 重定向传参
参考链接如下: http://bbs.csdn.net/topics/391034118?page=1 自己的示例程序: 详细页面提交一个修改动作,修改完成后跳转到检索页面,把检索条件重新赋值给检索页 ...
- Unix Linux 编程书籍
UNIX环境高级编程(第3版) Advanced Programming in the UNIX Environment Linux/UNIX系统编程手册 Linux/UNIX系统编程手册 (豆瓣) ...
- ABBYY 识别结果的文档怎么导出
使用ABBYY FineReader Pro for Mac OCR文字识别软件识别文档时,识别结果可以保存至一个文件.复制到剪贴板或通过电子邮件发送.可以执行下列操作:导出整个文档.仅导出所选页面. ...
- 网络工程实训_2路由器基本配置及IOS介绍
实验2:路由器基本配置及IOS介绍.包括:CLI的使用与IOS基本命令:配置文件的备份和IOS的备份:CDP协议. 一.实验目的 1.熟悉路由器CLI的各种模式: 2.熟悉路由器CLI的各种编辑命令: ...
- 【C语言模拟实现】浮点数-转-定点数
要想超神,就要什么都精! 知识准备: 1. 输出浮点数的十六进制形式?(利用指针输出) 将浮点数指针-转换成-整型指针,以十六进制的格式输出指针内容. 示例程序: #include<stdio. ...
- CentOS6.4系统启动失败故障排查
转:http://www.centoscn.com/CentosBug/osbug/2014/1028/4011.html 操作系统启动失败如下图报错: 故障现象: 从图中可以看到,操作系统启动的过程 ...