您当前的位置: 首页 > 

顺其自然~

暂无认证

  • 3浏览

    0关注

    1317博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Activiti6.0流程、任务、执行的定义及区别

顺其自然~ 发布时间:2019-12-29 09:57:51 ,浏览量:3

一、流程实例,任务,执行对象相关表结构
  • act_ru_execution 正在执行的执行对象表

  • act_hi_procinst 流程实例的历史表

  • act_ru_task 正在执行的任务表,(只有userTask任务节点,才会在此表中产生数据)

  • act_hi_taskinst 历史任务表,(只有userTask任务节点,才会在此表中产生数据)

  • act_hi_actinst 所有活动节点的历史表

二、请假流程实例进行说明

2.1、BPMN流程图

请假流程图

2.2 BPMN代码









2.3 运行流程进行说明

1 启动流程

RuntimeService runtimeService = processEngine.getRuntimeService();
runtimeService.startProcessInstanceByKey("leave");

启动流程之后 act_ru_execution、act_hi_procinst表中会各增加一条记录

act_hi_procinst

act_ru_execution

从act_ru_execution中的ACT_ID_字段可以看出,当前执行节点在userTask1。

启动流程的同时,流程流向第一个用户任务节点,在act_ru_task、act_hi_taskinst各产生一条数据

act_ru_task

act_hi_taskinst

从act_hi_taskinst中END_TIME_字段可以看出,此时userTask1节点正在执行。

2 组长审批任务

String taskId ="2505";
taskService.complete(taskId);
当组长审批完userTask1任务之后,当前流程流转到领导审批节点:
  • act_ru_task表数据变化已经完成的userTask1任务节点数据被清除,新增一条userTask2节点数据

  • act_hi_taskinst表数据变化 已经完成的userTask1节点数据依然存在,其中END_TIME_字段为此任务节点结束时间、并且新增一条userTask2任务记录,其END_TIME_字段为NULL,表示此任务节点还在运行

  • act_ru_execution表数据变化 由于当前流程进行了运转,所以当前执行对象会更新当前流程执行了什么节点之上

3 领导审批任务

String taskId ="5002";
taskService.complete(taskId);

在此流程图中当领导进行审批之后,相当于走完了流程,也就意味着流程结束

  • act_ru_task表变化 同userTask1节点执行,当此任务节点执行结束之后就会从此表中删除这条节点记录

  • act_hi_taskinst表数据变化更新此任务节点记录,更新END_TIME_字段值为任务节点结束时间

4 流程结束

  • act_ru_execution表数据变化 由于领导审批结束后,流程执行结束,也就是执行对象执行完毕,该条执行对象对应数据会被清除。

  • act_hi_procinst表数据变化 流程执行结束,更新流程实例结束时间

     

    act_hi_procinst.png

三、总结

ProcessInstance流程实例

  • 特指流程从开始到结束的那个最大的执行分支,一个执行的流程中,流程实例只有1个
  • 代表流程定义的执行实例。一个流程实例包括了所有的运行节点
  • 流程实例通常也可以叫做执行实例根节点

注意 (1)如果是单例流程,执行对象ID就是流程实例ID (2)如果一个流程有分支和聚合,那么执行对象ID和流程实例ID就不相同 (3)一个流程中,流程实例只有1个,执行对象可以存在多个。

Execution 执行对象

  • 启动流程实例的时候会首先创建流程实例,然后创建执行实例
  • 流程运转的过程中永远执行的是自己对应的执行实例
  • 当所有的执行实例按照规则执行完毕之后,则实例随之结束
  • 流程按流程定义的规则执行一次的过程,就可以表示执行对象Execution
  • 一个流程中,执行对象可以存在多个,但是流程实例只能是一个

对应表:

act_ru_execution: 正在执行的信息 act_hi_procinst:已经执行完的历史流程实例信息 act_hi_actinst:存放历史所有完成的活动

Task任务 --- 执行到某任务环节时生成的任务信息。

对应的表:

act_ru_task:正在执行的任务信息 act_hi_taskinst:已经执行完的历史任务信息

转自:activiti6.0流程实例,任务,执行对象控制流程的执行的定义以及区别_Janson_Lin的博客-CSDN博客 

关注
打赏
1662339380
查看更多评论
立即登录/注册

微信扫码登录

0.1251s