ActivitiMapper.selectFormData方法需要带上FORM_KEY_查询

来源:7-15 动态表单读取历史数据接口

慕运维5654181

2020-11-11

List<HashMap<String, Object>> tempControlList = mapper.selectFormData(task.getProcessInstanceId());这个查询要带上task.getFormKey()的查询,假如一个流程实例有多个表单,会拿到多个formdata。

写回答

1回答

汪汪对

2020-11-12

这个问题提的很好,说明有认真学习并思考。这个方法确实会查出来一个流程的所有表单。

课程的考虑是:

只要一个流程不同任务中,自定义控件ID是不同的,基于BPMNJS是自动随机命名的,一般控件ID不会相同。

mapper.selectFormData查出来了流程实例下所有的表单定义,后面的代码进一步处理。

UserTask userTask = (UserTask) repositoryService.getBpmnModel(task.getProcessDefinitionId())
        .getFlowElement(task.getFormKey());

以及后续代码,拿到的是当前任务的所有控件,在去tempControlList->controlistMap里找控件属性。

所以课程里的代码是正确。

当然在

List<HashMap<String, Object>> tempControlList = 
mapper.selectFormData(task.getProcessInstanceId());

这个查询要带上task.getFormKey()的查询,这个也挺好,没问题。

1
0

Activiti7工作流开发 打造通用型可视化UML工作流系统

从0打造黑马潜力项目作品,掌握新版Activiti7核心+工程化思维。

956 学习 · 367 问题

查看课程