activiti开发笔记

只愿长相守 提交于 2019-12-07 03:11:20

act_ge_bytearray  多个对1个   act_re_deployment

数据库说明:
ACT_RE_*  RE 表示 repository .
这个前缀表包含了流程定义 和流程静态资源(图片,规则等等)

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

ACT_ID_*  ID表示identity .
这些表包含身份信息,比如用户,组等等

ACT_HI_*  HI表示history .
这些表包含历史数据,比如历史流程实例,变量,任务等等

ACT_GE_* 通用数据 ,用于不同场景下,如存放资源文件


1, 资源库流程规则表
1) act_re_deployment 部署信息表

2) act_re_model  流程设计模型部署表

3) act_re_procdef   流程定义数据表

2,  运行时数据库表

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

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!