工作流系统核心模型
流程定义-->工作流引擎<-->持久化组件
| |
| |
工作列表 业务数据库
概念:
工作流逻辑(规则):绘制的流程图
工作流实例:按照预定的规则完成一次实际的执行(比如张三完成一次请假流程)
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
分享到:
相关推荐
2. **工具** - 暗示jBPM和Activiti5是作为开发工具或平台被讨论,它们可能用于业务流程管理(BPM)和工作流自动化。 **文件名称解析:** 文件名为"纵观jBPM:从jBPM3到jBPM5以及Activiti5.doc",与标题一致,预示...
"JBPM工作流开发指南-v10-20070706.doc"可能是关于jBPM的一个早期版本的开发指南,它可能涵盖了jBPM的核心概念、API使用、集成方法等内容,对于初学者来说是宝贵的资源。 最后,Activiti同样是一个开源的工作流引擎...
工作流插件 activiti-5.15.1 jbpm-4.3 jbpm-4.4 jbpm-jpdl-suite-3.2.3
根据提供的文件信息,我们可以深入探讨Activiti工作流框架的相关知识点。 ### Activiti工作流框架概述 Activiti工作流框架是一款由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架。它以其灵活性、易用...
在Java工程中使用Activiti工作流技术,我们可以实现复杂的业务流程自动化,从而提高效率和管理水平。首先,我们需要理解工作流的基本概念。工作流(Workflow)是指在计算机环境中自动化执行的业务过程,它涉及文档、...
Activiti 是目前使用最为常用的工作流引擎,工作流业务在企业中应用非常广泛,目前企业中多使用Activiti6版本,Activiti7是目前的最新版本。Activiti7不但提高的工作流引擎的效率,提供了新封装的新API,还提供了和...
Activiti和jBPM是两个流行的工作流管理系统,它们用于自动化业务流程。这些系统与数据库紧密集成,通过一系列特定的表来存储流程定义、执行、历史数据等信息。以下是关于这些数据库表结构的详细说明: 1. **ACT_GE_...
activiti-5.15.1 工作流 类似于jbpm 但是 比jbpm 简单些。
Tom Baeyens的离职催生了另一个重要项目——Activiti5,这是一个基于jBPM4的新开源工作流系统,由他加入Alfresco后推出。Activiti5的设计理念与jBPM相似,强调流程服务的可嵌入性和可扩展性,但同时也增加了对业务...
Activiti工作流课程.pdf为读者提供了一个系统的Activiti工作流知识框架,涵盖了工作流的概念、Activiti的介绍、工作流引擎、BPMN业务流程建模与标注、数据库支持等方面的知识点,是学习Activiti工作流的不二之选。
除了Activiti,还有其他流行的工作流引擎,如jBPM、Camunda、Flowable以及国产的盘古BPM和云程。这些引擎各有特色,但都致力于解决业务流程自动化的问题。 4. BPMN2.0简介: BPMN2.0是一套标准化的流程建模符号,...
创始人Tom Baeyens是JBoss jBPM的项目架构师,以及另一位架构师Joram Barrez,一起加入到创建Alfresco这项首次实现Apache开源许可的BPMN 2.0引擎开发中来。 Activiti是一个独立运作和经营的开源项目品牌,并将独立...
- **Activiti 的由来**:Activiti 的创始人曾是JBPM(另一个知名的工作流引擎)的创始人,在离开JBPM项目后,他创立了Activiti。因此,Activiti 在很多方面继承了JBPM 的特性,对于熟悉JBPM的人来说,学习Activiti会...
### 基于jbpm与activiti的工作流平台技术架构介绍 #### 一、宏天BPM X3软件平台概述 宏天BPM X3软件平台是一款基于J2EE技术的开源、轻量级的企业业务开发平台。该平台旨在帮助用户以最快的速度梳理、设计、执行、...
对jBPM来说,今年最大的事件莫过于jBPM的创建者Tom Baeyens离开JBoss了。...二是TomBaeyens加入Alfresco后很快推出了新的基于jBPM4的开源工作流系统Activiti。 由此不难推测TomBaeyens离开的部分原因:JB
《疯狂Workflow讲义:基于Activiti的工作流应用开发》是一份深入探讨工作流技术与实践的教程,专注于使用Activiti这一流行的开源工作流引擎。该讲义覆盖了从基础概念到高级应用的全面内容,旨在帮助读者理解并掌握在...
工作流引擎是指 workflow 作为应用系统的一部分,并为之提供对各应用系统有决定作用的根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案。 BPMN(Business Process Model and Notation)是流程...
在国内活跃的开源工作流中,JBPM4、JBPM5及Activiti5是值得关注的选择。以下是这三种工作流的简要介绍与分析: 1. **JBPM4** - **架构简介**:JBPM4是一款基于Java EE的轻量级工作流管理系统,支持自定义的jPDL...
activiti工作流代码示例。Activiti5是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。Activiti...
现在是我工作的第二家公司,因为要开发ERP、OA等系统需要使用工作流,在项目调研阶段我先搜索资料选择使用哪个开源工作流引擎,最终确定了Activiti5并基于公司的架构做了一些DEMO。对于Activiti、jBPM4、jBPM5我们...