`

jbpm工作流之activiti

阅读更多
工作流系统核心模型

流程定义-->工作流引擎<-->持久化组件
              |              |
              |              |
          工作列表          业务数据库

概念:
工作流逻辑(规则):绘制的流程图
工作流实例:按照预定的规则完成一次实际的执行(比如张三完成一次请假流程)

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






分享到:
评论

相关推荐

    工作流插件 jbpm activiti

    工作流插件 activiti-5.15.1 jbpm-4.3 jbpm-4.4 jbpm-jpdl-suite-3.2.3

    工作流bpmn\jbpm\activiti的3个学习指南

    工作流 bpmn、jbpm、activiti的3个学习指南

    最新工作流引擎Activiti7基础与进阶

    Activiti 是目前使用最为常用的工作流引擎,工作流业务在企业中应用非常广泛,目前企业中多使用Activiti6版本,Activiti7是目前的最新版本。Activiti7不但提高的工作流引擎的效率,提供了新封装的新API,还提供了和...

    Activiti5 jbpm 工作流 数据库 表结构.docx

    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 ...

    开源工作流框架activiti5.6

    创始人Tom Baeyens是JBoss jBPM的项目架构师,以及另一位架构师Joram Barrez,一起加入到创建Alfresco这项首次实现Apache开源许可的BPMN 2.0引擎开发中来。 Activiti是一个独立运作和经营的开源项目品牌,并将独立...

    基于jbpm与activiti的工作流平台技术架构介绍

    基础组件包括: Spring基础组件库,报表引擎,数据库访问模块,短信模块,后台定时任务调用组件,短信访问组件,搜索引擎组件,JMS消息组件,Activiti工作流组件,Cas统一用户认证组件,Spring安全认证组件。...

    纵观jBPM:从jBPM3到jBPM5以及Activiti5

    对jBPM来说,今年最大的事件莫过于jBPM的创建者Tom Baeyens离开JBoss了。...二是TomBaeyens加入Alfresco后很快推出了新的基于jBPM4的开源工作流系统Activiti。 由此不难推测TomBaeyens离开的部分原因:JB

    JBPM4与JBPM5工作流系统技术可行性分析

    当前开源工作流种类繁多,现对目前国内较活跃的三种工作流(jBPM4,jBPM5,Activiti5)做简要介绍与分析,供参考:

    activiti工作流代码示例

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

    Activiti工作流引擎使用

    现在是我工作的第二家公司,因为要开发ERP、OA等系统需要使用工作流,在项目调研阶段我先搜索资料选择使用哪个开源工作流引擎,最终确定了Activiti5并基于公司的架构做了一些DEMO。对于Activiti、jBPM4、jBPM5我们...

    activiti-5.15.1 开源工作流

    activiti-5.15.1 工作流 类似于jbpm 但是 比jbpm 简单些。

    activiti工作流在风控业务中的应用.docx

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

    jbpm-demo-master.zip_DEMO_activiti-master_jbpm-demo_mean3x7

    jbpm-demo activiti工作流demo工程

    疯狂Workflow讲义 基于Activiti的工作流应用开发

    疯狂Workflow讲义 基于Activiti的工作流应用开发

    activiti工作流的新手入门答疑

    虽然国产的工作流较多,但开源一直为activiti和JBPM所垄断,相对来说acticiti更为灵活,但目前国内关于activiti的资料还是比较少,或几乎没有,而本书无疑是activiti工作流的新手入门答疑书籍,本书籍包括activiti...

    一文让你读懂什么是Activiti工作流.docx

    什么是工作流? 工作流指通过计算机对业务流程进行自动化管理,实现多个参与者...Activiti 是一个开源架构的工作流引擎,基于bpmn2.0 标准进行流程定义。其前身是JBPM,Activiti 通过嵌入到业务系统开发中进行使用。

    工作流技术可行性分析

    工作流技术可行性分析 包含 jbpm activiti 的对比分析。

    Activiti6.0教程例子下载

    由于本人之前没有工作流及JBPM的相关基础,刚开始学习Activiti的时候可以说是无比痛苦的,根本不知道从何下手,这里也建议大家先进行工作流及BPMN2.0规范的学习,有了一定的基础后,再着手学习Activiti。 1.3.2. ...

    Activiti工作流学习资料.zip

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

Global site tag (gtag.js) - Google Analytics