关于动态表单附件保存到单据附件问题原创
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参考如下文章:
推荐阅读