1activiti认识和数据库和插件配置

  工作流介绍

工作流(Workflow),就是通过计算机对业务流程自动化执行管理。它主要解决的是“使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,

从而实现某个预期的业务目标,或者促使此目标的实现”。

         Activiti

Alfresco软件在2010年5月17日宣布Activiti业务流程管理(BPM)开源项目的正式启动,其首席架构师由业务流程管理BPM的专家 Tom Baeyens担任,Tom Baeyens就是原来jbpm的架构师,

而jbpm是一个非常有名的工作流引擎,当然activiti也是一个工作流引擎。

Activiti是一个工作流引擎, activiti可以将业务系统中复杂的业务流程抽取出来,使用专门的建模语言(BPMN2.0)进行定义,业务系统按照预先定义的流程进行执行,

实现了业务系统的业务流程由activiti进行管理,减少业务系统由于流程变更进行系统升级改造的工作量,从而提高系统的健壮性,同时也减少了系统开发维护成本。

  BPM

BPM(Business Process Management),即业务流程管理,是一种以规范化的构造端到端的卓越业务流程为中心,以持续的提高组织业务绩效为目的系统化方法

  BPMN

BPMN(Business Process Model And Notation)- 业务流程模型和符号 是由BPMI(Business Process Management Initiative)开发的一套标准的业务流程建模符号,

使用BPMN提供的符号可以创建业务流程。 2004年5月发布了BPMN1.0规范.BPMI于2005年9月并入OMG(The Object Management Group对象管理组织)组织。OMG于2011年1月发布BPMN2.0的最终版本.

activiti就是采用bpmn2.0进行建模

关于流程的两个常用到的关键词  流程定义 ,流程实例

他们的关系就像java类和java对象一样

1流程实例:a和b都发起了一个病假,那么就产生了两个病假的流程实例

2流程定义:a和b请的病假就是一个流程定义

  activiti服务架构图

上面的架构说白了就是通过activiti.cfg.xml获取引擎配置对象ProcessEngineConfiguration

通过这个配置对象获取引擎对象ProcessEngine,

最后可以通过引擎获取各个service来进行流程的处理

下面简介各个service的作用

RepositoryService activiti的资源管理类 ,用于流程部署,获取流程部署的资源。。
RuntimeService activiti的流程运行管理类,用于启动一个流程实例,操作当前运行的流程信息
TaskService activiti的任务管理类,操作个人任务,组任务
HistoryService activiti的历史管理类,用于操作历史 流程信息
IdentityService activiti的用户身份管理类,设置用户、组(角色)、用户和组关系 。。
FormService activiti的表单管理类,实现activiti中配置表单数据。
ManagerService activiti的引擎管理类,用于activiti运行的监控,给超级管理员使用。

下面是activi的安装

Activiti下载地址:http://activiti.org/download.html(我用的5.14版本)

下载好了后目录结构

database里面就有我们需要的数据库,activiti支持多种数据库

h2, mysql, oracle, postgres, mssql, db2

我这里采用mysql做演示

创建数据库的方式

  1. 方式1

到目录下database-create找到mysql的三个sql导入到自己创建的数据库中

  1. 方式2

采用程序创建的方式

在classpath目录下简历activiti.cfg.xml(为什么在这个位置简历名称为这个的后面说)

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
        http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.1.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx-3.1.xsd ">
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/activiti" />
        <property name="username" value="ferwms" />
        <property name="password" value="ferwms" />
        <property name="maxActive" value="3" />
        <property name="maxIdle" value="1" />
    </bean>
    <bean id="processEngineConfiguration"
        class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
        <!-- 数据源 -->
        <property name="dataSource" ref="dataSource" />
        <!-- activiti数据库表处理策略 -->
        <property name="databaseSchemaUpdate" value="true" />
    </bean>
</beans>

其实就是一个spring的配置

大家会发现在上面的processEngineConfiguration里面有一个参数databaseSchemaUpdate是数据库处理的策略,几种策略如下

false(默认):检查数据库表的版本和依赖库的版本, 如果版本不匹配就抛出异常。

true: 构建流程引擎时,执行检查,如果需要就执行更新。 如果表不存在,就创建。(常用)

create-drop: 构建流程引擎时创建数据库表, 关闭流程引擎时删除这些表。

drop-create:先删除表再创建表。(常用,使用完成后改为true)

create: 构建流程引擎时创建数据库表, 关闭流程引擎时不删除这些表。

我们选择的是true,所以在创建流程引擎的时候会检查不存在就创建

下面的程序得到流程引擎对象

/从classpath目录下查找resource名称的xml(如果不指定就默认activiti.cfg.xml)
//从里面找出bean的id为processEngineConfiguration的流程引擎配置类,
//当然也有其他的构造类可以指定bean的id
String resource = "activiti.cfg.xml";
ProcessEngineConfiguration configuration = ProcessEngineConfiguration.
                createProcessEngineConfigurationFromResource(resource);

//根据流程配置对象获取引擎,发现策略是true,
//也就是没有数据库就创建数据库,所以会自动创建activiti的数据库
ProcessEngine processEngine = configuration.buildProcessEngine();

创建完的数据库

那么不同的名称的作用是什么

ACT_RE_*: ‘RE‘表示repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。

ACT_RU_*: ‘RU‘表示runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Activiti只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。

ACT_ID_*: ‘ID‘表示identity。 这些表包含身份信息,比如用户,组等等。

ACT_HI_*: ‘HI‘表示history。 这些表包含历史数据,比如历史流程实例, 变量,任务等等。

ACT_GE_*: GE表示general。通用数据, 用于不同场景下。

eclipse下activiti-designer插件的安装(绘制流程图生成bpmn文件)

我这里使用eclipse-indigo版本,其他出问题

1打开eclipse创建myplugins文件夹

2将上面的activiti文件解压放进去

3打开eclipse下的dropins创建文件activiti.txt

4设置里面内容为path=d:\\eclipse\\activiti  地址是你eclipse自己的地址

5重启eclipse,右击新建-other可以找到activiti

windows-preference点上这个,可以在生成bpmn文件的同时生成一张流程的png文件,因为activiti代码生成的会乱码,需要修改源码,很麻烦

打开windows-showView-other   打开properties视图,可以更方便修改bpmn流程图

时间: 2024-10-19 11:03:29

1activiti认识和数据库和插件配置的相关文章

activiti认识以及数据库和插件配置

工作流介绍 工作流(Workflow),就是通过计算机对业务流程自动化执行管理.它主要解决的是"使在多个参与者之间按照某种预定义的规则自动进行传递文档.信息或任务的过程, 从而实现某个预期的业务目标,或者促使此目标的实现".        Activiti Alfresco软件在2010年5月17日宣布Activiti业务流程管理(BPM)开源项目的正式启动,其首席架构师由业务流程管理BPM的专家 Tom Baeyens担任,Tom Baeyens就是原来jbpm的架构师, 而jbpm

数据访问池+服务插件配置+数据库配置

01.数据访问对象池 TDBAPool a.分配访问对象: DBAPool.AllocateObject;  //每次都新建一个 b.返还访问对象: DBAPool.ReleaseObject(TDBAccess); //释放并注销掉 c.分配对象数量: DBAPool.AllocatedObjects; 02.服务端数据库配置信息的处理:TDBConfig a.取现有已注册数据库信息: DBConfig.FetchDatabaseList(var CDS:TClientDataSet) b.注

vim插件配置

推荐的源码阅读工具为: vim + ctags + cscope Linux源代码提供了制作cscope索引文件和tags文件的make命令. 一,软件安装 先安装cscope: sudo apt-get install cscope 再安装ctags: sudo apt-get install ctags 二,生成索引文件 在源代码目录下使用一下两条命令即可生成cscope索引文件和tags文件. $ make cscope $ make tags 三,一般源文件中生成索引文件 为了方便使用,

1、MyEclipse插件配置以及通过MyEclipse生成表对应的JPA代码

 去除MyEclipse插件的方式是打开:WindowàCustomize Perspective窗口进行插件配置: 取出下图中不常用的插件勾,最终点击OK. 3.点击OK之后显示的效果图如下: 发现上图框中的内容变少了. 二.MyEclipse中通过数据库生成hbm文件的方式: 1:点击如下: 点击后出现下图: 新建一个web项目WebProjectTest 右击WebProjectTest àMyEclipse-àAdd Hibernate Capalicity 再建立一个包sy.mod

JQuery Ztree 树插件配置与应用小结

JQuery Ztree 树插件配置与应用小结 by:授客 QQ:1033553122 测试环境 Win7 jquery-3.2.1.min.js 下载地址: https://gitee.com/ishouke/front_end_plugin/blob/master/jquery-3.2.1.min.js zTree_v3-master.zip 下载地址: https://github.com/zTree/zTree_v3 插件配置与应用 应用效果展示 HTML代码片段 <!DOCTYPE h

如何利用微软本身的库做个数据库客户端的配置

做C/S的朋友一般都有个窗体,用来配置应用的数据库连接语句,那这个窗体我们是自己写好呢还是调用微软现有的,当然这是智者见智,仁者见仁的问题,下面将简单介绍如何利用微软现有的来实现这么一个窗体. 首先我们需要在解决方案中引入如下三个库: 接下来事情会简单到出乎你意料之外,在我们需要打开窗体配置的地方写上如下代码: 1 DataConnectionDialog dialog = new DataConnectionDialog(); 2 //添加数据源列表,可以向窗口中添加自己程序所需要的数据源类型

Linux下Mongodb数据库主从同步配置

说明: 有两台已经安装完成的Mongodb数据库服务器,现在需要把一台设置为主库,另一台设置为从库,实现主从同步. 操作系统:CentOS 7.0 64位 MongoDB数据库版本:mongodb-linux-x86_64-2.6.5 准备工作:MongoDB数据库安装 具体操作: 一.配置MongoDB主库 以下操作在MongoDB主库服务器上进行 1.cd  /usr/local/mongodb/ #进入MongoDB安装目录 vi /usr/local/mongodb/mongodb.co

Gvim各种插件配置(windows环境下)

1.Vundle插件:https://github.com/gmarik/Vundle.vim 用于管理Vim插件,安装此插件需要系统中已安装git,参考链接:Git for Windows安装和基本设置 在Vim/vimfiles路径下新建文件夹bundle,然后在此文件夹下克隆github上的vundel项目: 完成后会在bundle文件夹下看到Vundle.vim文件夹下的内容,开始配置vundle: 在.vimrc文件中添加如下代码: 1 filetype off 2 3 "Vundle

Eclipse中Easy Shell插件配置PowerCmd

1.了解EasyShell.PowerCMD和基本命令 http://sourceforge.net/projects/pluginbox/ http://www.powercmd.com/ 了解基本命令 cmd.start及 PowerCmd命令参数 2.EasyShell插件配置PowerCMD Eclipse -> Window -> Prefernces -> Easy Shell Presets选择"Unkonwn Shell / file browser"