activiti工作流使用一般步骤
activiti工作流使用的一般步骤
一、在eclipse或Myeclipse中安装activiti插件;
二、通过activiti连接数据库,有以下两种连接数据库的形式:
1.通过java代码链接数据库:
public void createTableByOracle(){
ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();
configuration.setJdbcUrl("jdbc:oracle:thin:@192.168.1.150:1521:orcl");
configuration.setJdbcDriver("oracle.jdbc.OracleDriver");
configuration.setJdbcUsername("scott");
configuration.setJdbcPassword("oracle");
configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
ProcessEngine processEngine = configuration.buildProcessEngine();
System.out.println("-------------------------------------");
System.out.println(processEngine);
}
2.通过配置文件配置链接数据库
(1)配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jee="http://www.springframework.org/schema/jee" xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"> <bean id="dataSource"
class="org.springframework.jdbc.datasource.SimpleDriverDataSource">
<property name="driverClass" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://192.168.1.150:3306/officemanage?characterEncoding=utf8" />
<property name="username" value="root" />
<property name="password" value="123456" />
</bean> <bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean> <bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
<property name="dataSource" ref="dataSource" />
<property name="transactionManager" ref="transactionManager" />
<property name="databaseSchemaUpdate" value="true" />
</bean> </beans>
(2)java代码读取配置文件链接数据库:
public void createTableByXML(){
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
}
三、创建工作流的bpmn类型的文件:
四、部署bpmn和png类型的工作流文件资源:(注意:一个工作流程部署一次即可,以后只需要启动一条流程即可)
public void deployTest(){
System.out.println("开始部署一个审批流程");
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
Deployment deployment = processEngine.getRepositoryService().createDeployment().name("路费报销审批流程").addClasspathResource("choiceProcess.bpmn").addClasspathResource("choiceProcess.png").deploy();
System.out.println("部署流程完毕");
}
五、启动一条流程:
public void StartProcess(){
System.out.println("开始启动一个审批流程");
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
ProcessInstance processInstance = processEngine.getRuntimeService().startProcessInstanceByKey("luFeiBaoXiaoShenPi");
System.out.println(processInstance.getId()+"--------"+processInstance.getActivityId());
System.out.println("启动流程完毕");
}
六、查看某个人要完成的任务列表:
public void queryProcess(){
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
String assignee0 = "lsy";
List<Task> zhangSanList = processEngine.getTaskService().createTaskQuery().taskAssignee(assignee0).orderByTaskCreateTime().asc().list();
System.out.println("****************"+assignee0+"个人任务列表***********************");
for (Task task : zhangSanList) {
System.out.println("id:"+task.getId()+",名称:"+task.getName()+",创建时间"+task.getCreateTime()+",人物:"+task.getAssignee());
}
}
七、某个人完成自己的某个任务:
1.不带变量:
public void completeTask(){
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
processEngine.getTaskService().complete("235009");
System.out.println("完成任务");
}
2.带变量:
public void completeTaskByVariables(){
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
Map<String, Object> variables = new HashMap<String,Object>();
variables.put("money", 501);
processEngine.getTaskService().complete("265004",variables);
System.out.println("完成任务");
}
八、某个人查看自己已完成的任务列表:
public void queryHistoryTask(){
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
List<HistoricTaskInstance> historicList = processEngine.getHistoryService().createHistoricTaskInstanceQuery().taskAssignee("lsy").list();
for (HistoricTaskInstance historicTaskInstance : historicList) {
System.out.println(historicTaskInstance.getId()+":"+historicTaskInstance.getProcessDefinitionId()+":"+historicTaskInstance.getAssignee()+":"+historicTaskInstance.getExecutionId()+":"+historicTaskInstance.getStartTime()+":"+historicTaskInstance.getEndTime()+":"+historicTaskInstance.getDurationInMillis());
}
}
activiti工作流使用一般步骤的更多相关文章
- activiti--5 -----------------Activiti 工作流 流程各个步骤所涉及到的表
ACT_RE_*: 'RE'表示repository. 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等). ACT_RU_*: 'RU'表示runtime. 这些运行时的表,包含流程实例 ...
- Activiti工作流学习(一)部署对象和流程定义
一.前言 前一段时间在工作中,使用了流程审批,对api的调用非常不熟悉,都是调用别人写好的接口在界面上进行显示,基本了解了流程审批的主要步骤,现对流程审批进行学习,主要是调用api进行CRUD操作,感 ...
- Activiti工作流搭建---初始化数据库
Activiti介绍 Activiti5是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理.工作流.服务协作等领域的一个开源的.灵活的.易扩展的可执 ...
- 基于Activiti工作流引擎实现的请假审核流程
概要 本文档介绍的是某商用中集成的Activiti工作流的部署及使用,该框架用的Activiti版本为5.19.0.本文档中主要以一个请假流程为例子进行说明,该例子的流程图如下: 这是一个可以正常运作 ...
- Activiti工作流的应用示例 (官方guide项目方式)
转: Activiti工作流的应用示例 1.新建流程模型 模型管理->模型工作区 点击“创建”后会立即跳转到“流程在线设计器”页面,请参考下一节 2.在线流程设计器 模型管理->模型工作区 ...
- 手把手教你如何玩转Activiti工作流
手把手教你如何玩转Activiti工作流 置顶 2018年01月30日 19:51:36 Cs_hnu_scw 阅读数:24023 版权声明:本文为博主原创文章,未经博主允许不得转载. https ...
- Activiti工作流学习之流程图应用详解
Activiti工作流学习之流程图应用详解 1.目的 了解Activiti工作流是怎样应用流程图的. 2.环境准备2.1.相关软件及版本 jdk版本:Jdk1.7及以上 IDE:eclipse ...
- Activiti工作流引擎开发系列
Activiti工作流引擎开发系列-01 作者:Jesai 没有伞的孩子,只能光脚奔跑! 前言: 初次接触工作流这个概念是自从2014年11月份开始,当时是由于我的毕业设计需要,还记得当时我毕业设计的 ...
- Activiti工作流学习笔记一
Activiti工作流 一:Activiti第一天 1:工作流的概念 说明: 假设:这两张图就是华谊兄弟的请假流程图 图的组成部分: 人物:范冰冰冯小刚王中军 事件(动作):请假.批准.不批准 工作流 ...
随机推荐
- 小试JVM工具
一.前言 工欲善其事必先利其器,jdk自带了很多工具,利用好这些工具能够帮我们获取想要的数据(运行日志.异常堆栈.GC日志.线程快照.堆转储快照等),从而快速的分析数据.定位问题. 二.jps:虚拟机 ...
- bzoj4563 HAOI2016放旗子
bzoj传送门 已知了"任意两个障碍不在同一行,任意两个障碍不在同一列",如果我们按每列只能放一个来考虑,那么这\(n\)个障碍一定是一个排列,那么也就是"每一列只能放一 ...
- Java程序员都应该去使用一下这款强大的国产工具类库
这不是标题党,今天给大家推荐一个很棒的国产工具类库:Hutool.可能有很多朋友已经知道这个类库了,甚至在已经在使用了,如果你还没有使用过,那不妨去尝试一下,我们项目组目前也在用这个.这篇文章来简单介 ...
- Hive_Hive的管理_远程服务
远程服务启动方式 - 端口号10000 - 启动方式: #hive --service hiveserver & 以JDBC或ODBC的程序登陆到hive中操作数据时,必须选用远程服务启动方式 ...
- The Weakest Sith
http://codeforces.com/gym/101149/problem/F 题目要输出最丑陋的衣服.所以每件衣服都要和其他衣服比一次. 但是注意到,能赢一件衣服的衣服,就算是好衣服了. 那么 ...
- ubuntu中wine下安装QQ
原文:http://jingyan.baidu.com/article/359911f55da27057fe0306d8.html 可以把win改成最新版
- Java编程基础-运算符
Java中的运算符大致分为:算术运算符.赋值运算符.关系运算符.逻辑运算符和位运算符五类. (1).算术运算符:+ - * / % ++ -- (2).赋值运算符:= += -= * ...
- 关于Retrofit + RxJava 的使用
年前一个月到现在,一直都在忙一个项目.项目使用的三方框架还是蛮多的. 下面来总结一下自己使用Retrofit + RxJava的知识点吧. (以下讲述从一个请求的最初开始) 1.首先定义一个RxMan ...
- Yslow使用方法
Yslow是雅虎开发的基于网页性能分析浏览器插件,从年初我使用了YSlow后,改变了博客模板大量冗余代码,不仅提升了网页的打开速度,这款插件还帮助我分析了不少其他网站的代码,之前我还特意写了提高网站速 ...
- css命名规范—CSS样式命名整理
CSS样式命名整理 页面结构 容器: container/wrap整体宽度:wrapper页头:header内容:content页面主体:main页尾:footer导航:nav侧栏:sidebar栏目 ...