工作流学习之activiti

参考博客:https://blog.csdn.net/u013087513/article/details/76602344

核心:业务过程的部分或整体在计算机应用环境下的自动化

工作流框架的底层需要有数据库提供支持,Activiti框架底层使用的mybatis操作数据库。

Activiti介绍

覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。Activiti基于Apache许可的开源BPM平台,提供了eclipse插件,开发人员可以通过插件直接绘画出业务流程图。 

①工作流引擎

工作流引擎是Activiti工作的核心。负责生成流程运行时的各种实例以及数据、监控和管理流程的运行。

②BPMN2.0*

业务流程建模与标注(Business Process Model And Notation, BPMN) ,描述流程的基本符号,包括这些图元如何组合成一个业务流程图(Business Process Diagram)

③数据库

Activiti的后台是有数据库的支持,所有的表都以ACT_开头。第二部分表示用途的两个字母标识。用途也和服务的API对应。

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

资源库流程规则表: 

act_re_deployment部署信息表 

act_re_model流程设计模型部署表

act_re_procdef流程定义数据表。

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

运行时数据库表:

act_ru_execution运行时流程执行实例表

act_ru_identitylink运行时流程人员表,主要存储任务节点与参与者的相关信息

act_ru_task运行时节点表

act_ru_variable运行时流程变量数据表

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

组织机构表

act_id_group            用户组信息表

act_id_info               用户扩展信息表

act_id_membership 用户与用户组对应的信息表

act_id_user              用户信息表

这四张表很常见,基本的组织机构管理,关于用户认证方面建议自己开发一套,组件自带的功能太简单,很难满足项目中的很多需求。

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

历史数据库表

act_hi_actinst           历史节点表

act_hi_attachment    历史附件表

act_hi_comment       历史意见表

act_hi_identitylink     历史流程人员表

act_hi_detail             历史详情表,提供历史变量的查询

act_hi_procinst         历史流程实例表

act_hi_taskinst         历史人物实例表

act_hi_varinst           历史变量表

注意:inst 是instance 实例 的缩写

 (5) ACT_GE_*:通用数据,用于不同场景下。

通用数据表

act_ge_bytearray   二进制数据表

act_ge_property    属性数据表中存储整个流程引擎级别的数据,初始化表结构时,会默认插入三条记录。

④activiti.cfg.xml

Activiti核心配置文件,配置流程引擎创建工具的基本参数和数据库连接池参数。

定义数据库配置参数:
jdbcUrl: 数据库的JDBC URL。
jdbcDriver: 对应不同数据库类型的驱动。
jdbcUsername: 连接数据库的用户名。
jdbcPassword: 连接数据库的密码。
基于JDBC参数配置的数据库连接 会使用默认的MyBatis连接池,也可以使用第三方的连接池 比如Apache的DBCP连接池

⑤activiti5 软件环境

(1)JDK1.6或者更高版本
(2)支持的数据库有:h2, mysql, oracle, postgres, mssql, db2等。
(3)支持activiti5运行的jar包
(4)开发环境为Eclipse3.7或者以上版本,myeclipse为8.6版本 

安装流程设计器(eclipse插件):利用离线压缩包进行安装

准备Activiti5开发环境

添加Activiti5的jar包:在activiti-5.16.1->wars目录下是一些示例项目,解压activiti-rest项目,导入activiti-rest目录中WEB-INF\lib下所有包。添加到classpath中。
由于我使用的是Mysql数据库,Mysql数据库的链接驱动Activiti官方包中并没有提供,需要导入。手动导入mysql-connector-java.jar,添加到classpath 

初始化数据库:方式一:使用Activiti提供的建表语句 ; 方式二:使用Activiti的自动建表功能

⑥核心API

在Activiti中最核心的类,产生方式:ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();其它的类都是由此类获取的。

各个Service的作用:

Respository:管理流程定义;Activiti的仓库服务类。所谓的仓库指流程定义文档的两个文件:bpmn文件和流程图片

RuntimeService:执行管理,包括启动、推进、删除流程实例等操作。是Activiti的流程执行服务类。可以从这个服务类中获取很多关于流程执行相关的信息。

TaskService:任务管理。是activiti的任务服务类。可以从这个类中获取任务的信息。

HistoryService:历史管理(执行完数据的管理)。

IdentityService:组织结构管理

FormService:一个可选服务,任务表单管理

ProcessDefinition

流程定义类。可以从这里获得资源文件等。

ProcessInstance + Execution

ProcessInstance 代表流程定义的执行实例。例如企业某员工请了一周的假期,那么他就必须发出一个流程实例的申请。一个流程实例包括了所有的运动节点。我们可以利用这个对象来了解当前流程实例的进度信息。Activiti用Execution对象去描述流程执行的每一个节点,在没有并发的情况下,等同于ProcessInstance。ProcessInstance就是Execution的子接口

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值