咖啡兔先生对Activiti的表单控制讲得比较清楚,在《Activiti 实战》中(包括一些demo实例),但是本人在学习以及重现代码时,还是不可避免的遇到一些问题:
问题1:用Eclipse 的Activiti流程设计器插件,在进行动态表单定义时,并没有value属性;
问题2:Activiti只是在API中设计出一种表单的调用方式,实际上,在activiti的原生数据库中,所有设计的表单的属性都是存储在流程变量表中;
问题3:本人使用的activiti版本是5.18版本,在5.18版本中,获取表单的历史流程变量与5.10之前的方式不一样,其获取的方式是:
<span style="font-family:FangSong_GB2312;font-size:18px;color:#cc0000;background-color: rgb(255, 255, 255);">//获取表单历史流程变量</span>
<span style="font-family:FangSong_GB2312;font-size:18px;color:#cc0000;background-color: rgb(255, 255, 255);">List<HistoricDetail> list=historyService.createHistoricDetailQuery().formProperties().list();
for (HistoricDetail historicDetail : list) {
HistoricFormProperty historicVariableUpdate=(HistoricFormProperty) historicDetail;
System.out.println(historicVariableUpdate.getPropertyId());
System.out.println(historicVariableUpdate.getPropertyValue());
}</span>
总体来说,activiti提供了一种非常强大的表单控制功能,我们可以通过properties配置文件导入表单,达到动态表单的目的。