工作流解决在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现。

使用Eclipse开发,需要安排工作流插件,详情见下面。

Name:Activiti BPMN 2.0 designer

Location:http://activiti.org/designer/update/

New–Other



  1. Activiti Project



    新建Project,Activiti的项目其实也是用maven管理的。



  2. Activiti Diagram

    Activiti提供了图形化的操作页面,我们可以拖动图形控件设计符合特定规则的流程。



示例:



以xml格式打开bpmn流程图,可以看到,我们所画的每个流程图,其实相当于一个xml配置文件。这个配置文件中详细描述了整个流程的执行的具体参数,类似ssh的config文件下的各种配置。

  1. <process id="hello" name="helloprocess" isExecutable="true">
  2. <startEvent id="startevent1" name="Start"></startEvent>
  3. <endEvent id="endevent1" name="End"></endEvent>
  4. <userTask id="usertask1" name="提交申请"></userTask>
  5. <sequenceFlow id="flow1" sourceRef="startevent1" targetRef="usertask1"></sequenceFlow>
  6. <userTask id="usertask2" name="审批【部门经理】"></userTask>
  7. <sequenceFlow id="flow2" sourceRef="usertask1" targetRef="usertask2"></sequenceFlow>
  8. <userTask id="usertask3" name="审批【总经理】"></userTask>
  9. <sequenceFlow id="flow3" sourceRef="usertask2" targetRef="usertask3"></sequenceFlow>
  10. <sequenceFlow id="flow4" sourceRef="usertask3" targetRef="endevent1"></sequenceFlow>
  11. </process>
  12. ……
  13. ……

在properties下,我们可以看到该工作流图以及每个节点、每条线的详细配置。







但同样问题也就出现了,与ssh中的配置文件不同,Activiti中的工作图很多,配置文件就要写多个,而且这些配置信息有很大的相似之处。另一方面,在程序运行过程中,用户也需要查看当前流程的位置。因此,Activiti为我们提供了一个数据库来单独存放这些流程信息。

创建数据库的两种方式:

1)代码

  1. ProcessEngineConfiguration processEngineConfiguration= ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();
  2. //连接数据库的配置
  3. processEngineConfiguration.setJdbcDriver("com.mysql.jdbc.Driver");
  4. processEngineConfiguration.setJdbcUrl("jdbc:mysql://localhost:3306/activiti?useUnicode=true&characterEncoding=utf8");
  5. processEngineConfiguration.setJdbcUsername("root");
  6. processEngineConfiguration.setJdbcPassword("");
  7. // DB_SCHEMA_UPDATE_TRUE:表不存在,自动建表
  8. processEngineConfiguration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
  9. //工作流的核心对象
  10. ProcessEngine processEngine=processEngineConfiguration.buildProcessEngine();

2)配置文件

新建一个配置文件,名为activiti.cfg.xml

  1. <beans xmlns="http://www.springframework.org/schema/beans"
  2. xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  5. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
  6. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
  7. <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
  8. <!-- 配置 -->
  9. <property name="jdbcDriver" value="com.mysql.jdbc.Driver" />
  10. <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activiti?useUnicode=true&amp;characterEncoding=utf8" />
  11. <property name="jdbcUsername" value="root" />
  12. <property name="jdbcPassword" value="" />
  13. <!-- 没有表创建表 -->
  14. <property name="databaseSchemaUpdate" value="true"></property>
  15. </bean>
  16. </beans>

比较:两种创建方式的具体内容很类似,包括数据库连接配置和建表的配置,但使用代码配置会很繁琐,配置文件比较灵活。

数据库会生成23张表,这23张表都是以“act_”开头,存放工作流不同阶段的数据。

具体的工作流的这几个过程我们下篇再介绍。

Activiti工作流(一)——Activiti Diagram的更多相关文章

  1. activiti 工作流

    1. 工作流的概念 工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档.信息或任务的过程自动进行,从而实 ...

  2. 工作流引擎Activiti使用总结

    http://www.kafeitu.me/activiti/2012/03/22/workflow-activiti-action.html 1.简单介工作流引擎与Activiti 对于工作流引擎的 ...

  3. Activiti工作流引擎使用

    http://www.kafeitu.me/activiti/2012/03/22/workflow-activiti-action.html 1.简单介工作流引擎与Activiti 对于工作流引擎的 ...

  4. Activiti工作流学习-----基于5.19.0版本(6)

    七. BPMN的简介 读者了解到这里,应付一般的工作流开发已经足够了.此处应该有华丽的分割线,在工作流项目中核心开发人员主要是对工作流业务设计以及实现,而初级开发人员是对业务功能的代码实现.以后将主要 ...

  5. activiti工作流框架简介

    常见的工作流框架:activiti, JBPM, OSWorkflow activiti框架基于23张基础的表数据, 基于Mybatis操作数据库. JBPM框架基于18张基础的表数据, 基于hibe ...

  6. Activiti工作流框架——快速上手

        一.前言 最近在做公司的OA,里面有用到工作流,公司用的是 jbpm4,感觉比较老,资料有点少,就先学学 新一点的 activiti  ㄟ(▔▽▔)ㄏ 首先工作流的概念是:工作流(Workfl ...

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

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

  8. Activiti工作流引擎简介

    Activiti工作流引擎简介 一.概述 Activiti是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理,工作流,服务协作等领域的一个开源,灵活 ...

  9. 工作流引擎Activiti使用总结(转)

    1.简单介工作流引擎与Activiti 对于工作流引擎的解释请参考百度百科:工作流引擎 1.1 我与工作流引擎 在第一家公司工作的时候主要任务就是开发OA系统,当然基本都是有工作流的支持,不过当时使用 ...

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

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

随机推荐

  1. 关于 'list' object has no attribute 'select'

    我是在写爬虫是遇到了这个问题: c = chapter.select('href')AttributeError: 'list' object has no attribute 'select' 这是 ...

  2. 重装系统后激活win10和office2016

    激活win10: 重装的版本和电脑刚买来是的系统一样的话直接联网,过一段时间就会自动激活.如果不一样可以下载Kms工具激活. 激活office2016: 在开始菜单里双击“我的Office”,登录账号 ...

  3. ABAP术语-ABAP Dictionary

    ABAP Dictionary 原文链接:http://www.cnblogs.com/qiangsheng/archive/2007/12/07/986204.html Central redund ...

  4. JS高级. 03 混入式继承/原型继承/经典继承、拓展内置对象、原型链、创建函数的方式、arguments、eval、静态成员、实例成员、instanceof/是否在同一个原型链

    继承:当前对象没有的属性和方法,别人有,拿来给自己用,就是继承 1 混入式继承 var I={ }; var obj = { name: 'jack', age:18, sayGoodbye : fu ...

  5. C#中给WebClient添加代理Proxy

    效果图: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; ...

  6. 右键添加git-bash

    主要: 右键如果没有git-bash,如何给右键手动添加 前面对右键存在git-bash但使用出现问题的解决,也想到如果右键都没有,该如何给右键添加了,于是接着记录下如何添加的过程: 情形: 手动给右 ...

  7. JDK8新垃圾回收机制--G1垃圾回收机制

    G1全称是Garbage First Garbage Collector,使用G1的目的是简化性能优化的复杂性.例如,G1的主要输入参数是初始化和最大Java堆大小.最大GC中断时间. G1 GC由Y ...

  8. linux下SVN CVS命令大全

    1.将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn: // 192.168. 1.1 / pro / doma ...

  9. 【Java】关于Spring框架的总结 (三)

    前文对 Spring IoC 和 Spring AOP 的实现方法进行了整合.如果有不明白的或有质疑的地方可以评论出来,一起探讨问题,帮助别人也是帮助自己!本文探讨的中心主要放在 Spring 的注解 ...

  10. TRANSLATE(转换大/小写并替换字符)

    可以将字母 转换大/小 写或使用替 换规则. 要转换大/小 写,请使用 TRANSLATE 语句,用法 如下: 语法 TRANSLATE <c> TO UPPER CASE. TRANSL ...