activiti6.0工作流功能总结

工作流知识:
    我们主要使用场景一个是OA,一个是ESB接口流程编排
 
     一.选型: activiti6.0
         原因:1.比较稳定 
                   2.集成springboot
                   3.相比于flowable缺少一些高级功能目前用不到,也更加复杂,但是activiti6可以升级为flowable,而且学习文档比较多
     二.接口和表:
           
  • RepositoryService:提供一系列管理流程部署和流程定义的API。
  • RuntimeService:在流程运行时对流程实例进行管理与控制。
  • TaskService:对流程任务进行管理,例如任务提醒、任务完成和创建任务等。
  • IdentityService:提供对流程角色数据进行管理的API,这些角色数据包括用户组、用户及它们之间的关系。
  • ManagementService:提供对流程引擎进行管理和维护的服务。
  • HistoryService:对流程的历史数据进行操作,包括查询、删除这些历史数据。
  • FormService:表单服务。
       
  • act_ge_ 通用数据表,ge是general的缩写
  • act_hi_ 历史数据表,hi是history的缩写,对应HistoryService接口
  • act_id_ 身份数据表,id是identity的缩写,对应IdentityService接口
  • act_re_ 流程存储表,re是repository的缩写,对应RepositoryService接口,存储流程部署和流程定义等静态数据
  • act_ru_ 运行时数据表,ru是runtime的缩写,对应RuntimeService接口和TaskService接口,存储流程实例和用户任务等动态数据
   三.一个简单的审批流程:
  • 新增bpmn文件:手写bpmn代码,页面拖拽生成,自定义xml,导入后会新增act_re_mode表
  • 自定义校验器:集成spring
  • 部署流程(带上表单):通过代码引入xml部署,或者通过框架提供的接口部署(blob文件在act_ge_bytearray),部署后新增 act_re_procdef 流程定义表(可以指定租户ID做租户隔离,然后启动流程需要指定租户id);
  • 启动流程
     0: 设置流程发起人indentityService .setAuthenticatedUserId ( ) ;
  1. 新增act_ru_execution,act_ru_task;流程实例和执行实例(act_ru_execution)  act_ru_execution表parentId为空就是流程实例,parentId不为空就是执行实例
  2. act_ru_task也会相应的产生一条用户数据
  3. 查询个人任务: select distinct RES.* from act_ru_task
  4. 完成任务: 自定义权限校验,每一个执行节点执行完都是删除本节点,新增下一节点的任务,会更新act_ru_execution的ACT_ID为新的任务,当所有的任务都执行完act_ru_task,act_ru_execution都会删除
   四.常用功能:
      1.获取流程图(高亮节点)
      2.流程变量(全局变量和局部变量act_ru_variable): 流程变量的作用域范围是只对应一个流程实例。也就是说各个流程实例的流程变量是不相互影响的。流程实例结束完成以后流程变量还保存在数据库中
      3.网关:排他网关(执行一个流程),
                   并行网关(执行多个流程 :分支和汇聚)
 
      4.任务分配(个人任务和组任务  ):
          4.1:定义bpmn文件时候直接分配  userId
          4.2:使用全局流程变量${userId}
          4.3:使用taskListener类。通过任务认领解决历史表没有assignerId的bug
      5.监听器
      6.通过processInstanceHelper扩展助手:记录日志,启动流程前权限校验等等(可以获得流程定义信息和实例名称等信息)
      7.流程定义挂起,激活,定时器挂起
      8.手动触发流程执行:通过runtimeService.triggre(执行实例ID);任务节点不能往下走会报错可以删除act_ru_task也可以跑
      9.接受任务:通过trigger触发实例往下跑,因为接受任务的act_ru_task为空,可以用来做一些邮件通知
     10.表单(动态,外置)引擎(formService):
       10.1 定义表单:开始事件和任务上设置表单
       10.2 获取表单信息
       10.3 设置表单属性
 
 
      
 
 
 

你可能感兴趣的:(经验总结)