关于动态表单附件保存到单据附件问题原创
金蝶云社区-HM
HM
6人赞赏了该文章 2,935次浏览 未经作者许可,禁止转载编辑于2021年09月16日 17:36:45

动态表单不会自动保存附件数据,你获取到的动态表单的附件是缓存redis中的附件信息,如果要保存就需要自己完成保存过程。

// 获取动态表单附件面板
AttachmentPanel panel = this.getControl("动态表单标识");
// 获取动态表单附件面板内容
List<Map<String, Object>> atts =panel.getAttachmentData();
//创建单据对象
DynamicObject bill = BusinessDataServiceHelper.newDynamicObject("表单标识");
……设置表单内容
// 保存单据
SaveServiceHelper.saveOperate(TrainConstant.KEY_WORK_LOGS, new DynamicObject[] {bill},null);
for(Map<String, Object> data:atts){
   // 将缓存附件保存到文件服务器
   String filePath=AttachmentServiceHelper.saveTempToFileService(data.get("url").toString(),
   "应用编码","表单编码",bill.getPkValue(),data.get("name").toString());
   data.put("url",filePath);
}
// 上传附件
AttachmentServiceHelper.upload("表单标识", bill.getPkValue(), "attachmentpanel", atts);

API参考如下文章:

动态表单中无法获取附件上传的文件 (kdcloud.com)

赞 6