美文网首页
初步接触工作流Activiti6

初步接触工作流Activiti6

作者: 枯萎天然呆 | 来源:发表于2023-07-31 11:33 被阅读0次
  1. act_ge_ 通用数据表,ge是general的缩写
  2. act_hi_ 历史数据表,hi是history的缩写,对应HistoryService接口
  3. act_id_ 身份数据表,id是identity的缩写,对应IdentityService接口
  4. act_re_ 流程存储表,re是repository的缩写,对应RepositoryService接口,存储流程部署和流程定义等静态数据
  5. act_ru_ 运行时数据表,ru是runtime的缩写,对应RuntimeService接口和TaskService接口,存储流程实例和用户任务等动态数据

表结构操作: 3.3.1:资源库流程规则表

    1. act_re_deployment 部署信息表
    1. act_re_model 流程设计模型部署表
    1. act_re_procdef 流程定义数据表

3.3.2:运行时数据库

    1. act_ru_execution 运行时流程执行实例表
    1. act_ru_identitylink 运行时流程人员表,主要存储任务节点与参与者的相关信息
    1. act_ru_task 运行时任务节点表
    1. act_ru_variable 运行时流程变量数据表

3.3.3:历史数据库表

    1. act_hi_actinst 历史节点表
    1. act_hi_attachment 历史附件表
    1. act_ih_comment 历史意见表
    1. act_hi_identitylink 历史流程人员表
    1. act_hi_detail 历史详情表,提供历史变量的查询
    1. act_hi_procinst 历史流程实例表
    1. act_hi_taskinst 历史任务实例表
    1. act_hi_varinst 历史变量表

3.3.4:组织机构表

    1. act_id_group 用户组信息表
    1. act_id_info 用户扩展信息表
    1. act_id_membership 用户与用户组对应信息表
    1. act_id_user 用户信息表

这四张表很常见,基本的组织机构管理,关于用户认证方面建议还是自己开发一套,组件自带的功能太简单,使用中有很多需求难以满足 3.3.5:通用数据表

    1. act_ge_bytearray 二进制数据表
    1. act_ge_property 属性数据表存储整个流程引擎级别的数据,初始化表结构时,会默认插入三条记录,
  • 3.4:activiti.cfg.xml(activiti的配置文件)

流程部署相关表

act_re_deployement 部署对象表
act_rep_procdef 流程定义表
act_ge_bytearray 资源文件表
act_ge_prperty 主键生成策略表(对于部署对象表的主键ID)
流程实例相关表

act_ru_execution 正在执行的执行对象表(包含执行对象ID和流程实例ID,如果有多个线程可能流程实例ID不一样)
act_hi_procinst 流程实例历史表
act_hi_actinst 存放历史所有完成的任务
Task 任务相关表

act_ru_task 代办任务表 (只对应节点是UserTask的)
act_hi_taskinst 代办任务历史表 (只对应节点是UserTask的)
act_hi_actinst 所有节点活动历史表 (对应流程的所有节点的活动历史,从开始节点一直到结束节点中间的所有节点的活动都会被记录)
流程变量表

act_ru_variable 正在执行的流程变量表
act_hi_variable 流程变量历史表

···

5:核心API 
5.1:ProcessEngine 
说明: 
1) 在Activiti中最核心的类,其他的类都是由他而来。 
2) 产生方式:

在前面看到了两种创建ProcessEngine(流程引擎)的方式,而这里要简化很多,调用ProcessEngines的getDefaultProceeEngine方法时会自动加载classpath下名为activiti.cfg.xml文件。 
3) 可以产生RepositoryService

4) 可以产生RuntimeService

5) 可以产生TaskService

各个Service的作用: 
RepositoryService 管理流程定义 
RuntimeService 执行管理,包括启动、推进、删除流程实例等操作 
TaskService 任务管理 
HistoryService 历史管理(执行完的数据的管理) 
IdentityService 组织机构管理 
FormService 一个可选服务,任务表单管理 
ManagerService

5.2:RepositoryService 
是Activiti的仓库服务类。所谓的仓库指流程定义文档的两个文件:bpmn文件和流程图片。 
1) 产生方式

2) 可以产生DeploymentBuilder,用来定义流程部署的相关参数

3) 删除流程定义

5.3:RuntimeService 
是activiti的流程执行服务类。可以从这个服务类中获取很多关于流程执行相关的信息。 
5.4:TaskService 
是activiti的任务服务类。可以从这个类中获取任务的信息。 
5.5:HistoryService 
是activiti的查询历史信息的类。在一个流程执行完成后,这个对象为我们提供查询历史信息。 
5.6:ProcessDefinition 
流程定义类。可以从这里获得资源文件等。 
5.7:ProcessInstance 
代表流程定义的执行实例。如范冰冰请了一天的假,她就必须发出一个流程实例的申请。一个流程实例包括了所有的运行节点。我们可以利用这个对象来了解当前流程实例的进度等信息。流程实例就表示一个流程从开始到结束的最大的流程分支,即一个流程中流程实例只有一个。 
5.8:Execution 
Activiti用这个对象去描述流程执行的每一个节点。在没有并发的情况下,Execution就是同ProcessInstance。流程按照流程定义的规则执行一次的过程,就可以表示执行对象Execution。 
image.png
RepositoryService:管理流程定义

RuntimeService:执行管理,包括启动、推进、删除流程实例等操作

TaskService:任务管理

HistoryService:历史管理(执行完的数据的管理)

IdentityService:组织机构管理

FormService:一个可选服务,任务表单管理

ManagerService

5.2:RepositoryService
是Activiti的仓库服务类。所谓的仓库指流程定义文档的两个文件:bpmn文件和流程图片。

1) 产生方式

2) 可以产生DeploymentBuilder,用来定义流程部署的相关参数

3) 删除流程定义

5.3:RuntimeService
是activiti的流程执行服务类。可以从这个服务类中获取很多关于流程执行相关的信息。

5.4:TaskService
是activiti的任务服务类。可以从这个类中获取任务的信息。

5.5:HistoryService
是activiti的查询历史信息的类。在一个流程执行完成后,这个对象为我们提供查询历史信息。

5.6:ProcessDefinition
流程定义类。可以从这里获得资源文件等。

5.7:ProcessInstance
代表流程定义的执行实例。如范冰冰请了一天的假,她就必须发出一个流程实例的申请。一个流程实例包括了所有的运行节点。我们可以利用这个对象来了解当前流程实例的进度等信息。流程实例就表示一个流程从开始到结束的最大的流程分支,即一个流程中流程实例只有一个。

5.8:Execution
Activiti用这个对象去描述流程执行的每一个节点。在没有并发的情况下,Execution就是同ProcessInstance。流程按照流程定义的规则执行一次的过程,就可以表示执行对象Execution。

复制

五、项目中的用户、角色与Activiti中的用户、用户组整合

每个项目都有自己的用户、角色表,Activiti也有自己的用户、用户组表。因此项目中的用户、角色与Activiti中的用户、用户组要做整合。

//项目中每创建一个新用户,对应的要创建一个Activiti用户
//两者的userId和userName一致
User admin=identityService.newUser("1");
admin.setLastName("admin");
identityService.saveUser(admin);

//项目中每创建一个角色,对应的要创建一个Activiti用户组
Group adminGroup=identityService.newGroup("1");
adminGroup.setName("admin");
identityService.saveGroup(adminGroup);

//用户与用户组关系绑定
identityService.createMembership("1","1");

相关文章

  • springboot2.x+activiti6.0整合activ

    写在前面:研究了工作流有三个礼拜了,领导说要用activiti6,没想到activiti6到处是坑,因为之前我也不...

  • 记ActivitiCloud的一次体验

    前言 最近学习了一段时间工作流Activiti开源框架,在Activiti6和Activiti7都体验了一下,因为...

  • Promise初步接触

  • ARKit初步接触

    苹果2017WWDC发布了ARKit,看到发布会上的AR体验视频,还是觉得比较惊艳的,于是最近就跟新了Xcode9...

  • Ajax 初步接触

    1.Ajax是什么?有什么作用? 看了一下MDN的介绍,大致的了解了。 Ajax全称是 Asynchron...

  • 初步接触 ES

    w3school ruanyifeng infoq ES6 = ECMAscript , JavaScript是 ...

  • Block初步接触

    OC 日常笔记碎片知识 Block基本概念Block是iOS中一种比较特殊的数据类型. 苹果推荐使用的数据类型,应...

  • 初步接触ssh

    2017.2.6到公司第一周,装了环境,了解了项目团队,接触了项目部分代码,学习了新知识。 任务是:将数据库中指定...

  • Rust初步接触

    邂逅 周五在图书馆浏览新到图书时发现有几个RUST语言的书,听旁边的晓旭说这个语言隐隐有替代C的趋势,顿时对这个从...

  • 初步接触瑜伽

    初步接触瑜伽 由于平时缺乏对身材的管理,对自己“虎背熊腰”的体型虽有在意,还没有构成“威胁”状态,从去年暑假就开始...

网友评论

      本文标题:初步接触工作流Activiti6

      本文链接:https://www.haomeiwen.com/subject/dgrkpdtx.html