请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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

正在回答 回答被采纳积分+3

1回答

汪汪对 2020-11-12 10:03:56

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

课程的考虑是:

只要一个流程不同任务中,自定义控件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 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号