activiti认识以及数据库和插件配置
admin
2023-05-26 05:20:00
0

 工作流介绍

工作流(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流程实例(ProcessInstance):a和b都发起了一个病假,那么就产生了两个病假的流程实例

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

 

  activiti服务架构图

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

 

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

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

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

下面简介各个service的作用

 

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

 

 

下面是activi的安装

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

下载好了后目录结构

 

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

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

h3, mysql, oracle, postgres, mssql, db2

我这里采用mysql做演示

 

创建数据库的方式

需要加入spring的jar包和mybatis的jar,最好是ssm都有的环境下进行测试

  1. 方式1

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

  1. 方式2

采用程序创建的方式

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

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


    
        
        
        
        
        
        
    
    
        
        
        
        
    

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

 

其实就是一个spring的配置

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

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

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

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

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

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

 

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

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

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

/从classpath目录下查找resource名称的xml(如果不指定就默认activiti.cfg.xml)//从里面找出bean的id为processEngineConfiguration的流程引擎配置类,//当然也有其他的构造类可以指定bean的idString resource = "activiti.cfg.xml";
ProcessEngineConfiguration configuration = ProcessEngineConfiguration.
                createProcessEngineConfigurationFromResource(resource);        
//根据流程配置对象获取引擎,发现策略是true,//也就是没有数据库就创建数据库,所以会自动创建activiti的数据库ProcessEngine processEngine = configuration.buildProcessEngine();

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

 

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

/*
     * 获取流程引擎对象吗,下面的方法会默认查找classpath目录下的名称为activi.cfg.xml
     * 里面bean的id为processEngineConfiguration的ProcessEngineConfiguration引擎配置对象来获取ProcessEngine对象    */    
    ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();

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

上边两端代码获取流程引擎对象的作用是一样的,但是下方的获取方式需要注意xml的位置和命名规范

创建完的数据库

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

 

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

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文件)

注意,插件需要另外单独下载(百度一下就有),不是上面官方的哪个带jar的压缩包!!!

首先需要知道这个插件的作用

安装了这个插件就可以在eclipse中根据bpmn2.0的规则绘制流程图,流程图文件是已bpmn结尾的,说白了画完图后用记事本打开就是xml,不过格式是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代码生成的会乱码,需要修改源码,很麻烦

 

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

 

 

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

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


相关内容

热门资讯

雨夜坠河的皮卡,满车都是亲戚 作者 | 黄泽敏 实习生 | 黄思婷 编辑 | 向现肖逸(化名)没有等来奇迹。5月18日,肖逸告诉南...
赖清德抛0到18岁月发5000... 海峡导报综合报道 台湾地区领导人赖清德20日发表两周年就职演说,宣称台当局近日将提出所谓台湾人口对策...
与高市早苗保持距离,菲律宾总统... 菲律宾总统小马科斯近期在台湾问题上上演了一出极为滑稽前倨后恭变脸戏码。这位此前频频在台海和南海问题上...
是天“漏”了?气象部门解读广东... 5月15日以来,降雨强势来袭,覆盖湖北、海南、贵州、重庆、天津、湖南、河南、山东、广西、广东等十省区...
AI平台对“幻觉”现象的义务及... AI广泛使用,在信息收集分析、工作效率提升、思维能力拓展、视野开阔等方面给日常生产、生活不断带来便利...
北京无限迭代与腾讯云和中国电信... 近日,由深圳市工业和信息化局、深圳市人工智能产业办公室指导,深圳市人工智能行业协会与深圳会展中心管理...
蔡壁如宣布参选彰化县长,黄国昌... 日前,蔡壁如建置LINE群组,发布民调显示她超越国民党征召县长参选人魏平政。她也对外说她很少来彰化,...
郑丽文连续炮轰赖清德30分钟:... 据台湾《中时新闻网》报道,针对赖清德20日发表的“520”讲话及媒体提问,中国国民党主席郑丽文在中常...
盒马误将水仙当百合配送,致顾客... 近日,国家企业信用信息公示系统公示北京市朝阳区市场监督管理局行政处罚决定。针对今年1月盒马门店“误将...
最高法院拉偏架,共和党靠重划选... 近日,围绕国会选区重划问题,美国两党的斗争日趋激烈。4月,弗吉尼亚州以选民公投的方式通过了有利于民主...