
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中配置:
<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
<property name="history" value="full">
</property></bean>
3.2 动态配置
ProcessEngine processEngine = ProcessEngineConfiguration
.createProcessEngineConfigurationFromResourceDefault()
.setHistory("full")
.buildProcessEngine()
4.读取历史变量
现在再重启你的应用,启动流程或者在任务complete之后查看ACT_HI_DETAIL表的数据已经记录了。
4.1 Java代码-5.10版本之前
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())
}
4.2 Java代码-5.11版本之后
5.11版本在变量保存方面做了变动,单独创建了一张表ACT_HI_VARINST保存变量,可以通过下面的代码读取变量。
一个流程中,流程实例只有一个,执行对象可以有多个(如果存在分支和聚合)SELECT * FROM activiti.act_ru_execution a #正在执行的执行对象表
SELECT * FROM activiti.act_hi_procinst a #流程实例的历史表
SELECT * FROM activiti.act_ru_task a#正在执行的任务表(只有节点是UserTask的时候,该表中才存在数据)
SELECT * FROM activiti.act_hi_taskinst a#任务历史表(只有节点是UserTask的时候,该表中才存在数据)
SELECT * FROM activiti.act_hi_actinst a #所有节点的历史表
在activiti *** 作流程图走向时,每个节点流向都不一样,怎么样将节点的流向,封装成一个统一方法,返回这个节点可以 *** 作的按钮及执行这个 *** 作需要提交的参数呢?
本次采用的版本是activiti6.0版本,因为6.0版本和5.x相比,删除了许多东西,有些方法不一样的话,自行查找
根据当前任务节点的任务节点id值和流程id值,获取它所有的出口线,并且获取到出口线的条件以及名称,将结果返回回去。
主要是需要两个参数,流程定义id和任务节点id,这里在控制层可以对这个对象做一些参数校验。
*** 作名称,提交这个按钮传递的参数
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)