act_ge_bytearray 多个对1个 act_re_deploymenthtml
数据库说明:
ACT_RE_* RE 表示 repository .
这个前缀表包含了流程定义 和流程静态资源(图片,规则等等)git
ACT_RU_* RU表示 runtime
这些运行时的表,包含流程实例,任务,变量,异步任务,
等运行中的数据。 Activiti 只在流程实例执行过程当中保存这些数据,在流程结束时会删除这些记录。
这样运行时表能够一直很小,速度很快程序员
ACT_ID_* ID表示identity .
这些表包含身份信息,好比用户,组等等github
ACT_HI_* HI表示history .
这些表包含历史数据,好比历史流程实例,变量,任务等等数据库
ACT_GE_* 通用数据 ,用于不一样场景下,如存放资源文件api
1, 资源库流程规则表
1) act_re_deployment 部署信息表缓存
2) act_re_model 流程设计模型部署表并发
3) act_re_procdef 流程定义数据表框架
2, 运行时数据库表eclipse
1) act_ru_execution 运行时流程执行实例表
2) act_ru_identitylink 运行时流程人员表,
注意存储任务节点与参与者的信息
3)act_ru_task 运行时任务节点表
4) act_ru_variable 运行时流程变量数据表
3, 历史数据库表
1) act_hi_actinst 历史节点表
2) act_hi_attachment 历史附件表
3) act_hi_comment 历史意见表
4) act_hi_identitylink 历史流程人员表
5) act_hi_detail 历史详情表,提供历史变量的查询
6) act_hi_procinst 历史流程实例表
7) act_hi_taskinst 历史任务实例表
8) act_hi_varinst 历史变量表
4, 组织机构表
1) act_id_group 用户信息表
2) act_id_info 用户扩展信息表
3) act_id_membership 用户与用户组对应信息表
4) act_id_user 用户信息表
这四张表很常见,基本的组织机构管理。关于用户认证方便建议仍是
本身开发一套,组件自带的功能太简单,使用中有不少需求难以知足
5, 通用数据表
1) act_ge_bytearray 二进制数据表
2) act_ge_property 属性数据表存储整个流程引擎级别的数据
初始化表结构时,会默认插入三条记录
8,使用eclipse activiti 插件生成
生成的 *.bpmn20.xml 是给 计算机进行流程的执行和信息的传递使用的
好比: HelloWorld.bpmn20.xml
早起可能还会生成 *.png 好比 HelloWorld.png 流程的 图片,目前生成了放在数据库里面了,是给
客户进行查看的,进行理解
若是须要 流程图 png ,那么就能够在eclipse --Windows--Preference--Activiti--save Action
将 Create process definition image... 勾上
这样当生成 bpmn 文件时候也会在下面生成图片的,这样能够保存给用户看了等等
由于在实际开发过程当中,经过 bpmn生成的 流程图,可能会因为坐标的缘由有偏差,
因此生成图片时候就 保存 显示给用户看便可
9,注意:
工做流activiti 的表使用存放流程数据的
而业务的数据须要程序员本身去建立和维护的
必定须要业务去和关联流程 才能去开发工做流系统
10,
服务类说明:
RepositoryService 管理流程定义
RuntimeService 执行管理,包括启动,推动,删除流程实例等操做
TaskService 任务管理
HistoryService 历史管理 执行完的数据的管理
IdentityService 组织机构管理--成员组等
FormService 一个可选服务,任务表单管理
11, bpmn文件,在部署后,每次系统启动是都会被解析,把内容封装成流程定义放入项目缓存中,、、
Activiti 框架结合这个xml文件自动管理流程,流程的执行就按照bpmn文件定义的规则执行的
12, 流程定义是不能修改的
若是须要修改就 再生成一个 修改后的bpmn文件流程,而后再次部署,
key相同也就是 升级一个版本了
13,
Deployment 类 部署对象
一次部署的多个文件的信息,对于不须要的流程能够删除和修改
ProcessDefinition 类
解析 .bpmnhou 获得的流程定义规则的信息,工做流系统就是按照流程定义的规则执行的
14, 一个 Task节点和 Execution 节点是 1对1 的状况,在task对象中使用 Execution 来表示
他们之间的关系
在activiti 任务中,主要分为两大类查询任务,(我的任务和组任务)
1),确切指定了办理者的任务,这个将成为指定者的私有任务,即我的任务
2), 没法指定具体的某一我的来办理的任务,能够把任务分配给几我的或一道多个小组,让这个
范围内的用户能够选择性来办理这类人,组任务
15, ProcessInstance 类
表明流程定义的执行实例,若是某一我的请了一天的加,就必须发出一个流程实例的申请,
一个流程实例包括了全部的运行节点,咱们能够利用这个对象来了解当前流程实例的进度等信息
流程实例就表示一个流程从开始到结束的最大分支
Execution类 ,去描述流程执行的每个节点,在没有并发的状况下,
Execution 就是 ProcessInstance .
执行中出现同时执行的分支时候,每一个分支就是 一个 Execution
ProcessInstance 继承了 Execution 类
16, 流程变量在整个工做流中很重要,
例如,请假流程中有请假天数,
请假缘由等一些参数都为流程变量的范围。
而流程变量的做用域范围是只对应一个流程实例,
也就是说各个流程实例的流程变量是不互相影响的。
流程实例结束后之后流程变量还保存在数据库中。
设置流程变量(名--值)
获取流程变量(经过 名--值)来获取的
流程变量 是有固定的支持类型的,能够去查看api 中文文档的
或者是 说明文档
taskService.setVariable :
设置流程变量的时候,流程变量名称相同的时候,后一次的值替换前一次的值,
并且能够看到 task_id的字段不会存听任务ID的值
taskService.setVariableLocal :
设置流程变量的时候,针对当前活动的节点设置流程变量,若是一个流程中存放2个
活动节点,对每一个活动节点都设置流程变量,即便流程变量的名称相同,后一次的版本的值也不会
替换前一次的值,它会使用不一样的任务ID task_id 做为标识,存放2个流程变量的值,
并且能够看到 TASK_ID 就是存听任务的id
还有 taskService.setVariableLocal 绑定了当前的任务,当流程继续执行时,下个任务
获取不到这个流程变量(由于正在执行的流程变量中没有这个数据),
全部查询正在执行的任务时不能查询到数据,此时须要查询历史的流程变量的数据
去历史流程变量的表去查。
一些activiti 学习地址:
17,
activiti 官网
http://www.activiti.org/download.html http://jingyan.baidu.com/article/49ad8bce52e1515835d8fa56.html?st=2&os=0&bd_page_type=1&net_type=1 http://jingyan.baidu.com/article/48b37f8d67b8e21a646488c5.html http://www.open-open.com/lib/view/open1350460225367.html http://wenku.baidu.com/link?url=YbC3XYj__I7EUV8bSC0nH74p_cTNKg0uS7oJB0lwGYQrhUQVU8G7GVMiHxqh6CG0EVk-Fw7xb3kFfeAsdEpdQEgPPQNGXWPBlefemxwTa5_ 插件eclipse 的activiti http://www.itxxz.com/a/gaoji/2015/0116/eclipse_activiti_install.html http://www.tuicool.com/articles/yUnURjy http://www.cnblogs.com/strinkbug/p/4876819.html https://my.oschina.net/githubhty/blog/690269?p={{currentPage+1}} 教程 http://blog.csdn.net/yangyi22/article/details/9225849 用户手册: http://www.mossle.com/docs/activiti/index.html#license