从历史任务中获取表单密钥

时间:2015-01-27 15:41:12

标签: camunda

我们从任务服务中获取表单密钥,如下面的剪切代码

for (Task task : getTaskService().createTaskQuery().taskCandidateGroupIn(candidateGroup).initializeFormKeys().list()) {

task.getFormKey()
....
....
...

}

但是现在由于某些特殊原因我们想从HistoricTaskInstance获取表单键值,我们尝试了几种方法来获取它但是所有这些都失败了。

我们想知道如何从完成的任务中获取表单键值?

1 个答案:

答案 0 :(得分:1)

表单键不适用于历史任务。由于任务已完成,通常不会为历史任务显示表单。如果任务尚未完成(历史记录包含活动任务和已完成任务),则可以使用历史任务的ID使用表单服务获取表单密钥。

如果任务已经完成,那么您需要使用模型api从XML获取表单键:

HistoricTaskInstance historicTask = historyService.createHistoricTaskInstanceQuery().singleResult();

BpmnModelInstance bpmnModelInstance = repositoryService.getBpmnModelInstance(historicTask.getProcessDefinitionId());

org.camunda.bpm.model.bpmn.instance.Task task = bpmnModelInstance.getModelElementById(historicTask.getTaskDefinitionKey());
String formKey = task.getAttributeValueNs(BpmnModelConstants.CAMUNDA_NS, "formKey");