activiti 表结构讲解

可能你在苦恼这个问题,因为在跟踪已结束流程的时候需要获取流程办理中设置的变量值(可以分析每个节点办理的详细状态),今天我们就来探索一下如何实现。

1.Activiti表结构设计

Activiti的表结构设计分为两种类型:运行时(ACT_RU)、历史(ACT_HI)。

1.1 运行时变量

所有运行时的变量都保存在表:ACT_RU_VARIABLE中,这些变量可以在启动流程、完成任务、动态添加的方式插入到数据库,以便流程在处理中可以根据变量的值决定流程的走向。

1.2 历史变量呢?

为什么没有ACT_HI_VARIABLE这张表呢?

我在开始的时候也是苦恼为什么没有这张表,导致在跟踪历史流程信息的时候不能获取变量。

2.了解历史级别

Activit默认提供了4中历史级别:

  • none: 不保存任何历史记录,可以提高系统性能;
  • activity:保存所有的流程实例、任务、活动信息;
  • audit:也是Activiti的默认级别,保存所有的流程实例、任务、活动、表单属性;
  • full: 最完整的历史记录,除了包含audit级别的信息之外还能保存详细,例如:流程变量。

对于几种级别根据对功能的要求选择,如果需要日后跟踪详细可以开启full

3.配置历史级别

3.1 在XML中配置

在引擎BeanprocessEngineConfiguration中配置:

?


1

2

3

<beanid="processEngineConfiguration"class="org.activiti.spring.SpringProcessEngineConfiguration">

<propertyname="history"value="full">

</property></bean>

3.2 动态配置

?


1

2

3

4

ProcessEngine processEngine = ProcessEngineConfiguration

.createProcessEngineConfigurationFromResourceDefault()

.setHistory(ProcessEngineConfiguration.HISTORY_FULL)

.buildProcessEngine();

4.读取历史变量

现在再重启你的应用,启动流程或者在任务complete之后查看ACT_HI_DETAIL表的数据已经记录了。

4.1 Java代码-5.10版本之前

?


1

2

3

4

5

6

List<historicdetail> list = historyService.createHistoricDetailQuery().processInstanceId(processInstance.getId()).list();

for(HistoricDetail historicDetail : list) {

HistoricVariableUpdate variable = (HistoricVariableUpdate) historicDetail;

System.out.println("variable: "+ variable.getVariableName() +" = "+ variable.getValue());

}

</historicdetail>

4.2 Java代码-5.11版本之后

5.11版本在变量保存方面做了变动,单独创建了一张表ACT_HI_VARINST保存变量,可以通过下面的代码读取变量。参见:Activiti 5.11发布

?


1

2

3

4

5

List<historicvariableinstance> list = historyService.createHistoricVariableInstanceQuery().processInstanceId(processInstanceId).list();

for(HistoricVariableInstance variableInstance : list) {

System.out.println("variable: "+ variable.getVariableName() +" = "+ variable.getValue());

}

</historicvariableinstance>

5.只读取表单字段

?


1

2

3

4

5

6

List<historicdetail> formProperties = historyService.createHistoricDetailQuery().processInstanceId(processInstance.getId()).formProperties().list();

for(HistoricDetail historicDetail : formProperties) {

HistoricFormProperty field = (HistoricFormProperty) historicDetail;

System.out.println("field id: "+ field.getPropertyId() +", value: "+ field.getPropertyValue());

}

</historicdetail>

时间: 2024-08-03 03:14:06

activiti 表结构讲解的相关文章

ACTIVITI 表结构数据分析

ACTIVITI ACT_RU_EXECUTION 表  

activiti数据库表结构剖析

1.结构设计 1.1.    逻辑结构设计 Activiti使用到的表都是ACT_开头的. ACT_RE_*: 'RE'表示repository(存储),RepositoryService接口所操作的表.带此前缀的表包含的是静态信息,如,流程定义,流程的资源(图片,规则等). ACT_RU_*: 'RU'表示runtime,运行时表-RuntimeService.这是运行时的表存储着流程变量,用户任务,变量,职责(job)等运行时的数据.Activiti只存储实例执行期间的运行时数据,当流程实例

Activiti数据库表结构(表详细版)

http://blog.csdn.net/hj7jay/article/details/51302829 1  Activiti数据库表结构 1.1      数据库表名说明 Activiti工作流总共包含23张数据表,所有的表名默认以“ACT_”开头. 并且表名的第二部分用两个字母表明表的用例,而这个用例也基本上跟Service API匹配. u  ACT_GE_* : “GE”代表“General”(通用),用在各种情况下: u  ACT_HI_* : “HI”代表“History”(历史)

activiti数据库表结构全貌解析

下面本人介绍一些activiti这款开源流程设计引擎的数据库表结构,首先阐述:我们刚开始接触或者使用一个新的东西(技术)时我们首先多问一下自己几个为什么?为什么activiti在工作流程领域这么流行呢?仅仅是因为开源么?实现如此强大的流程引擎,activiti底层设计是如何进行的?activiti中依赖哪些技术等?这些可能应该是那些刚接触这个开源流程引擎产品的人应该有的疑问.我们在用开源产品的都是其实应该多问自己为什么?这样才能有所进步,不是么?兴许你一时兴起,“起笔”就把一款属于你自己的开源作

Activiti工作流引擎数据库表结构

版权声明:本文为博主原创文章,未经博主允许不得转载.不经过允许copy,讲追究法律责任,欢迎加入我们的学习提升群466355109,可以相互交流 数据库表的命名 Acitiviti数据库中表的命名都是以ACT_开头的.第二部分是一个两个字符用例表的标识.此用例大体与服务API是匹配的. l  ACT_RE_*:'RE'表示repository.带此前缀的表包含的是静态信息,如,流程定义,流程的资源(图片,规则等). l  ACT_RU_*:'RU'表示runtime.这是运行时的表存储着流程变量

Activiti工作流数据库表结构

Activiti工作流引擎数据库表结构 数据库表的命名 Acitiviti数据库中表的命名都是以ACT_开头的.第二部分是一个两个字符用例表的标识.此用例大体与服务API是匹配的. ACT_RE_*:’RE’表示repository.带此前缀的表包含的是静态信息,如,流程定义,流程的资源(图片,规则等). ACT_RU_*:’RU’表示runtime.这是运行时的表存储着流程变量,用户任务,变量,职责(job)等运行时的数据.Activiti只存储实例执行期间的运行时数据,当流程实例结束时,将删

jdbc 得到表结构、主键

jdbc 得到表结构.主键 标签: jdbctablenullschema数据库mysql 2012-02-16 22:13 11889人阅读 评论(0) 收藏 举报  分类: Java(71)  假设有个con DatabaseMetaData dbmd = con.getMetaData(); rs = dbmd.getColumns(con.getCatalog(), schema, tableName, null); rs.getString(DATA_TYPE) Java.sql.Ty

activiti 表——介绍

1 Activiti 用到的表都是act_开头 2 下面分别来介绍下 activiti 所用到的表: 3 4 Act_RE_* 表示 RepositoryService接口所操作的表:包含了流程定义信息 .流程静态资源(图片.规则啥的). 5 6 Act_RU_*表示RuntimeService 接口 ,运行时的表,用户任务.变量等运行时的数据. 7 Activiti只存储实例执行期间的运行时数据,当流程实例结束时,将删除这些记录. 8 9 Act_id_* 表示identity,Identit

Spring Security教程(三):自定义表结构

在上一篇博客中讲解了用Spring Security自带的默认数据库存储用户和权限的数据,但是Spring Security默认提供的表结构太过简单了,其实就算默认提供的表结构很复杂,也不一定能满足项目对用户信息和权限信息管理的要求.那么接下来就讲解如何自定义数据库实现对用户信息和权限信息的管理. 一.自定义表结构 这里还是用的mysql数据库,所以pom.xml文件都不用修改.这里只要新建三张表即可,user表.role表.user_role表.其中user用户表,role角色表为保存用户权限