Activiti7.0实战学习(九):查询历史表中的数据

背景
  1. 我们可以先只是生成数据库中的表,然后在进行流程定义的部署。
  2. 我们也可以不用先生成数据库中的表,而直接进行流程定义的部署,也会生成表结构,并且会插入流程部署相关的必要的信息。
  3. 流程定义部署后,数据库中的历史相关的表也是没有任何数据记录信息的。需要等到task在动态地流转,然后会相应地生成历史数据记录信息,最后我们才能查询出具体的数据信息。
过程
  • 我们再走一次这个流程

    1. 部署 假如我们的流程已经部署好了。参考与Springboot集成

    2. 实例化
      在这里插入图片描述
      说明:当把部署后的流程定义进行了实例化(创建流程实例),我们再次分析数据库中的表结构及其变化。
      act_ru_task表
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      我们可以分析出,当我们进行了流程实例化后,act_ru_task表会立即插入一条数据。从字段中说明,此表持有act_ru_execution表的引用,持有act_hi_procinst表的引用,持有act_ru_procedef表的引用。这样我们就可以分析表之间的关联关系。

      act_ru_execution表
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      我们可以看见,它插入了两条数据。观察到第一条的parent_id是null, 而第二条数据的parent_id是上一条的。由此,我们可以推断出,一个是startEvent,一个是阐述zhangsan这个人需要填写请假申请单。从start_time字段可以看出,这两条数据几乎是同一个时刻插入的。由此可以推测出,当流程实例中的最后一个人审批处理后,也就是同一时刻插入两条数据,一条是自己执行的,一条是endEvent。其他应该是处理一次插入一条记录。

      act_hi_procinst表
      在这里插入图片描述
      在这里插入图片描述
      说明:我们可以看见画线的两个id是一样的,因此PROC_INST_ID值来自ID值。其次,就是他只是插入一条数据。表明zhangsan这人的任务已经开始了,但是还没有进行处理。

      act_ru_procdef
      这个表中的内容就是部署流程定义的时候,插入的一条。可以理解为元数据的元数据。因为元数据是bpmn和png,而act_ru_procdef其实就是描述元数据的。因此它为元数据的元数据。

      act_hi_taskinst表
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      说明:流程实例初始化后,那么就给记录了一条历史数据。我认为虽然事件确实已经发生了,命名为history相关,但是依然有一些业务对应关系。至少可以找到一件事情的整个发展过程。因此,不要轻视历史记录数据信息。

      act_hi_actinst表
      在这里插入图片描述
      在这里插入图片描述
      这张表持有的引用是task_id,刚好来自act_hi_taskinst表中的id。这就是表之间的关联关系。

    3. zhansan处理任务
      在这里插入图片描述
      数据库表的变化就直接去数据看就行了。核心就看act_hi_procinst表,act_hi_taskinst表,act_hi_actinst表,act_ru_task表(原来的那条删除,新插入下一个任务记录即可)。

      后面的分析过程就完全跟zhangsan处理任务一样的

  • 有了历史数据,这个时候查询历史表中的数据

    在这里插入图片描述
    控制台打印
    在这里插入图片描述
    说明,设置查询的参数,比如要查询哪个具体的流程实例,然后根据流程实例ID进行查询。分页,排序,升序,降序都支持这样的操作。

  • 可以继续让wangwu完成任务处理,一样可以查询出关于流程后续的日志记录信息。

小结
  1. 想要测试历史表中数据的查询,需要准备历史数据。准备过程就是:画好流程图,部署流程图,实例化流程图,处理任务即可。
  2. 通过从头到尾都一次,可以分析表之间的关联关系,加深对表结构的一个熟悉程度。
  3. 怎么来理解这些东西呢?想象成一个特殊的ORM工具,我准备业务数据给到Activiti,然后它去存储,我们通过它提供的API进行查询。
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值