flowable如何通过formkey获取form
时间: 2024-05-04 09:17:40 浏览: 194
在 Flowable 中,可以通过以下方式通过 formKey 获取表单:
1. 通过 TaskService 获取 Task 对象:
```
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
```
2. 通过 Task 对象获取表单:
```
String formKey = task.getFormKey();
Object renderedTaskForm = formService.getRenderedTaskForm(task.getId());
```
其中,`task.getFormKey()` 方法可用于获取表单的 key 值,`formService.getRenderedTaskForm(task.getId())` 方法可用于获取表单实例。
如果表单是基于 BPMN 模型创建的,则可以使用以下方法获取表单:
```
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
.processDefinitionId(processDefinitionId)
.singleResult();
BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinition.getId());
StartEvent startEvent = (StartEvent) bpmnModel.getFlowElement(startEventId);
FormDefinition formDefinition = formRepositoryService.getFormDefinition(startEvent.getFormKey());
```
其中,`bpmnModel.getFlowElement(startEventId)` 方法可用于获取 StartEvent 对象,`startEvent.getFormKey()` 方法可用于获取表单的 key 值,`formRepositoryService.getFormDefinition(startEvent.getFormKey())` 方法可用于获取表单实例。
阅读全文