从历史任务中获取表单密钥
Get form key from historic task
我们从任务服务中获取表单密钥,就像下面的代码片段
for (Task task : getTaskService().createTaskQuery().taskCandidateGroupIn(candidateGroup).initializeFormKeys().list()) {
task.getFormKey()
....
....
...
}
但现在由于一些特殊原因,我们想从 HistoricTaskInstance 中获取表单键值,我们尝试了几种方法来获取它,但都失败了。
我们想知道如何从已完成的任务中获取表单键值?
表单密钥不适用于历史任务。通常不会显示历史任务的表单,因为任务已经完成。如果任务还没有完成(历史包含活动和完成的任务),那么你可以使用历史任务的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");
我们从任务服务中获取表单密钥,就像下面的代码片段
for (Task task : getTaskService().createTaskQuery().taskCandidateGroupIn(candidateGroup).initializeFormKeys().list()) {
task.getFormKey()
....
....
...
}
但现在由于一些特殊原因,我们想从 HistoricTaskInstance 中获取表单键值,我们尝试了几种方法来获取它,但都失败了。
我们想知道如何从已完成的任务中获取表单键值?
表单密钥不适用于历史任务。通常不会显示历史任务的表单,因为任务已经完成。如果任务还没有完成(历史包含活动和完成的任务),那么你可以使用历史任务的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");