工作流系统核心模型
流程定义-->工作流引擎<-->持久化组件
| |
| |
工作列表 业务数据库
概念:
工作流逻辑(规则):绘制的流程图
工作流实例:按照预定的规则完成一次实际的执行(比如张三完成一次请假流程)
activiti的后台是有数据库支持的,有23张表,所以的表都以ACT_打头,第二部分表示表的用途的两个字母的标识,用途也和服务的API相对应,默认使用的数据池是mybatis
1,流程定义process-definition
编程步骤总结
1,创建流程定义
2,部署流程定义
3,启动流程实例
4,获取任务列表
5,执行任务
6,结束任务
二:执行和管理工作流
1,activiti的数据库表是存放流程数据的,而不是存放业务数据,业务数据需要用户自己创建表,一定需要业务去关联流程,根据业务去判断流程
2,由流程引擎创建各个service,这些service是调用23张表的服务,主要学习的这3部分
repositoryService,管理流程定义及发布
runtimeService,管理执行
taskService,管理任务
3,跟流程定义相关的表都是re开头的表
部署对象表在act_re_deployment表中存放记录
流程定义的记录存放在act_re_procdef表中
资源文件表(*.bpmn和*.png)记录存放在act_ge_bytearry表中
主键生成策略表act_ge_property,字段next.dbid代表下一个主键的数字
4,流程定义表的id是由key字段:version字段:随机数组成,version是从1开始的,启动流程定义以最新的版本启动
5,流程定义修改是通过版本升级完成的,每次变动都把版本数+1
6,启动一个流程定义,会产生一个流程实例,相应的会在act_ru_execution表中产生数据,
我们称之为:正在执行的执行对象表,单例流程(没有分支)的act_ru_execution中的ID_和PROC_INST_ID_是一样的,ID_代表执行对象ID,PROC_INST_ID_代表流程实例ID,有分支的两个ID
是不相同的,ACT_ID_代表当前活动ID,是指当前任务执行到哪里(节点)
7,启动一个流程定义,同时会产生一个流程实例的历史表,叫做:act_hi_procinst,从开始到结束只有1个流程实例,执行对象可能有多个,只有节点是UserTask的时候还会产生一个正在执行的任务表act_ru_task和任务历史表act_hi_taskinst。还会生成一个所有活动节点的历史表act_hi_actinst
8,流程变量
流程变量的作用:
a,原来传递业务参数:比如请假天数,请假时间,请假原因
b,指定连线完成任务
c,动态地指定任务办理人
act_ru_variable:正在执行的流程变量表
act_hi_varinst:历史的流程变量表
d,当一个javabean(实现序列化)放置在流程变量中,要求javabean的属性不能再发生变化,如果发生变化,再获取的时候会抛出异常,解决办法是在javabean中添加固定版本的字段
9:网关
排他网关(exclusive GateWay),相当于java中的if else语句,如果条件都不满足,则走默认的flow
并行网关(parallel GateWay),分为两个:分支和聚合,聚合有两个活动,完成任务就行,没有流程变量的概念,是没有条件的。
10:开始活动节点
11:接收任务活动 receiveTask
等待得到消息以后才会往下执行,一般用作机器自动处理业务,我的见解向一个定时器
12:组任务
如果在act_ru_task表中的ASSIGNEE_字段为null,有两种可能,一,你没有选择办理人,二:
这个任务是组任务,不是个人任务
会在任务办理人表的表中新增数据act_ru_identitylink表中增加数据(包括个人任务,组任务),参与者(participant)记录流程实例,候选者(candidate)记录任务ID。
candidate是候选者,是等待领取任务的人,participant是参与过的人,已经领取到任务的人
13:角色组
identifyService就是组织机构管
act_id_group:id开头的都是与角色相关的表,这个表是角色表
act_id_user:用户表
act_id_membership:用户角色关联表
14:activiti网页编辑器网址
http://www.mossle.com/lemon-dev-modeler.html
分享到:
相关推荐
工作流插件 activiti-5.15.1 jbpm-4.3 jbpm-4.4 jbpm-jpdl-suite-3.2.3
工作流 bpmn、jbpm、activiti的3个学习指南
Activiti 是目前使用最为常用的工作流引擎,工作流业务在企业中应用非常广泛,目前企业中多使用Activiti6版本,Activiti7是目前的最新版本。Activiti7不但提高的工作流引擎的效率,提供了新封装的新API,还提供了和...
1 ACTIVITI数据库表结构 2 1.1 数据库表名说明 2 1.2 数据库表结构 3 1.2.1 Activiti数据表清单: 3 1.2.2 表名:ACT_GE_BYTEARRAY (通用的流程定义和流程资源) 3 1.2.3 表名:ACT_GE_PROPERTY (系统相关属性) 4 ...
创始人Tom Baeyens是JBoss jBPM的项目架构师,以及另一位架构师Joram Barrez,一起加入到创建Alfresco这项首次实现Apache开源许可的BPMN 2.0引擎开发中来。 Activiti是一个独立运作和经营的开源项目品牌,并将独立...
基础组件包括: Spring基础组件库,报表引擎,数据库访问模块,短信模块,后台定时任务调用组件,短信访问组件,搜索引擎组件,JMS消息组件,Activiti工作流组件,Cas统一用户认证组件,Spring安全认证组件。...
对jBPM来说,今年最大的事件莫过于jBPM的创建者Tom Baeyens离开JBoss了。...二是TomBaeyens加入Alfresco后很快推出了新的基于jBPM4的开源工作流系统Activiti。 由此不难推测TomBaeyens离开的部分原因:JB
当前开源工作流种类繁多,现对目前国内较活跃的三种工作流(jBPM4,jBPM5,Activiti5)做简要介绍与分析,供参考:
activiti工作流代码示例。Activiti5是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。Activiti...
现在是我工作的第二家公司,因为要开发ERP、OA等系统需要使用工作流,在项目调研阶段我先搜索资料选择使用哪个开源工作流引擎,最终确定了Activiti5并基于公司的架构做了一些DEMO。对于Activiti、jBPM4、jBPM5我们...
activiti-5.15.1 工作流 类似于jbpm 但是 比jbpm 简单些。
Activiti5是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。Activiti基于Apache许可的开源BPM...
jbpm-demo activiti工作流demo工程
疯狂Workflow讲义 基于Activiti的工作流应用开发
虽然国产的工作流较多,但开源一直为activiti和JBPM所垄断,相对来说acticiti更为灵活,但目前国内关于activiti的资料还是比较少,或几乎没有,而本书无疑是activiti工作流的新手入门答疑书籍,本书籍包括activiti...
什么是工作流? 工作流指通过计算机对业务流程进行自动化管理,实现多个参与者...Activiti 是一个开源架构的工作流引擎,基于bpmn2.0 标准进行流程定义。其前身是JBPM,Activiti 通过嵌入到业务系统开发中进行使用。
工作流技术可行性分析 包含 jbpm activiti 的对比分析。
由于本人之前没有工作流及JBPM的相关基础,刚开始学习Activiti的时候可以说是无比痛苦的,根本不知道从何下手,这里也建议大家先进行工作流及BPMN2.0规范的学习,有了一定的基础后,再着手学习Activiti。 1.3.2. ...
Activiti5是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。Activiti基于Apache许可的开源BPM...