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()的查询,这个也挺好,没问题。
10
相似问题