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工作流使用一般步骤的更多相关文章

  1. activiti--5 -----------------Activiti 工作流 流程各个步骤所涉及到的表

    ACT_RE_*: 'RE'表示repository. 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等). ACT_RU_*: 'RU'表示runtime. 这些运行时的表,包含流程实例 ...

  2. Activiti工作流学习(一)部署对象和流程定义

    一.前言 前一段时间在工作中,使用了流程审批,对api的调用非常不熟悉,都是调用别人写好的接口在界面上进行显示,基本了解了流程审批的主要步骤,现对流程审批进行学习,主要是调用api进行CRUD操作,感 ...

  3. Activiti工作流搭建---初始化数据库

    Activiti介绍 Activiti5是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理.工作流.服务协作等领域的一个开源的.灵活的.易扩展的可执 ...

  4. 基于Activiti工作流引擎实现的请假审核流程

    概要 本文档介绍的是某商用中集成的Activiti工作流的部署及使用,该框架用的Activiti版本为5.19.0.本文档中主要以一个请假流程为例子进行说明,该例子的流程图如下: 这是一个可以正常运作 ...

  5. Activiti工作流的应用示例 (官方guide项目方式)

    转: Activiti工作流的应用示例 1.新建流程模型 模型管理->模型工作区 点击“创建”后会立即跳转到“流程在线设计器”页面,请参考下一节 2.在线流程设计器 模型管理->模型工作区 ...

  6. 手把手教你如何玩转Activiti工作流

    手把手教你如何玩转Activiti工作流 置顶 2018年01月30日 19:51:36 Cs_hnu_scw 阅读数:24023   版权声明:本文为博主原创文章,未经博主允许不得转载. https ...

  7. Activiti工作流学习之流程图应用详解

    Activiti工作流学习之流程图应用详解 1.目的  了解Activiti工作流是怎样应用流程图的. 2.环境准备2.1.相关软件及版本    jdk版本:Jdk1.7及以上 IDE:eclipse ...

  8. Activiti工作流引擎开发系列

    Activiti工作流引擎开发系列-01 作者:Jesai 没有伞的孩子,只能光脚奔跑! 前言: 初次接触工作流这个概念是自从2014年11月份开始,当时是由于我的毕业设计需要,还记得当时我毕业设计的 ...

  9. Activiti工作流学习笔记一

    Activiti工作流 一:Activiti第一天 1:工作流的概念 说明: 假设:这两张图就是华谊兄弟的请假流程图 图的组成部分: 人物:范冰冰冯小刚王中军 事件(动作):请假.批准.不批准 工作流 ...

随机推荐

  1. Java相关书籍阅读

  2. JQuery | trigger() 方法

    trigger() 方法触发被选元素的指定事件类型. 语法格式: trigger(type,[data]) type:触发事件类型 [data]:可选项,表示在触发事件时传递给函数的附加参数. 实例: ...

  3. SpringBoot | idea新建项目

    1.new ----> Spring Initializr 2.设置相应文件名 3.选择需要配置

  4. django项目设置

    1 项目下的文件 用于项目设定的setting.py 用于url规则匹配的urls.py 用于创建socket对象的wsgi.py 2 urls django2.0相比1.x,在url匹配语法上有很大 ...

  5. Tinghua Data Mining 5

    ID3 ID3算法倾向于分的很细的变量 C4.5加入分母为惩罚量

  6. iis日志存放位置 及 查看方法

    IIS:控制面板--管理工具--internet信息服务 网站的IIS日志是在空间里面看的.要登陆到空间里面的一个IIS日志里面看.IIS日志一般都很大的.看会有点.. 一.应用程序日志.安全日志.系 ...

  7. APACHE服务器httpd.exe进程占用cpu100%的解决方法

    httpd.exe进程占用cpu%100,关闭掉AppServ服务,cpu应用率立刻下降到0. 重新启动AppServ又出现占用cpu高的情况. 原因,httpd.exe和防火墙配置有冲突. 解决方法 ...

  8. Windows忘记mysql的密码

    1.查看mysql的安装路径 show variables like "%char%"; 路径:C:\Program Files\MySQL\MySQL Server 5.7\ 2 ...

  9. .Net 第一章笔记

    1.深入.NET框架 对象数组 登录和注册 内存级别数据的拎取 1..NET 战略 Java领域:::::SQL Server不会用到 浏览器IE 口号:任何人 在任何地方 使用任何终端,,都可以使用 ...

  10. 将Object转换成Dictionary方法

    如果Object是Dictionary类型,直接返回 如果Object是NameValueCollection类型,则添加到Dictionary里 如果Object是Hashtable类型,添加到Di ...