附件集成是什么?一起一探究竟
在数据集成过程中,除了进行单据的集成以外,还有一个重要的内容便是附件集成。例如,在集成EAS的采购申请单至苍穹采购申请单时,除了同步系统单据以外,还需要将所附的采购登记表等附件一并同步至苍穹系统中。
与此同时,我们在进行附件集成同步过程中,时常会遇到附件大小限制、格式出错或者传输失败等多种多样的问题。
那么,在复杂的业务单据集成处理过程中,如何完整、便捷、高效地将附件集成过去呢?跟随小编的讲解,从功能的认知和方案配置等方面逐步学习,让你轻轻松松搞定附件集成~
1 附件集成功能简介
1.1 设计原理
运行附件集成任务时,连接器返回的单据数据中同时包含单据所关联的附件列表。根据集成云附件信息中间表中所登记的附件列表信息,把附件内容从源系统搬运到目标系统,并把目标附件id回写到附件中间表中。
附件集成原理
1.2 系统路径
路径一:【集成管理】→【数据集成】→【数据集成方案】→【新增】→【打开附件同步】;
路径二:【集成管理】→【数据集成】→【附件信息】;
路径三:【集成管理】→【数据集成】→【附件集成日志】。
1.3 前期准备
开启数据集成方案“附件同步”选项,此选项默认为“不勾选”。
“附件同步”开关示例
了解完附件集成的设计思路和准备工作后,就可以进行集成方案的配置工作了~
注意:目前支持6个方案场景的附件同步(EAS-EAS、EAS-苍穹、苍穹-EAS、苍穹-苍穹、苍穹-星空、星空-苍穹)。
2 附件集成方案配置
2.1 EAS为目标的方案配置
1) 数据集成方案:勾选“附件同步”;
2) 配置前,需先同步目标系统EAS的集成对象;
3) 目标对象字段$file_list.attachId为固定的;
4) 源对象字段$file_list.tarAttachId也为固定的。
EAS为目标的方案配置示例
2.2 苍穹为目标的方案配置
1) 数据集成方案:勾选“附件同步”;
2) 配置前,需先同步目标系统EAS的集成对象;
3) 由于苍穹附件关联的字段不唯一,需根据实际情况选择目标对象字段;
4) 源对象字段$file_list.tarAttachId为固定的。
2.3 星空为目标的方案配置
1) 数据集成方案:勾选“附件同步”;
2) 配置前,需先同步目标系统星空的集成对象;
3) 目标对象字段$file_list.attachId为固定的;
4) 源对象字段$file_list.tarAttachId也为固定的。
注意:星空有三种文件存储方式:
亚马逊云存储
文件服务器
数据库
目前星空只提供了文件服务器类型的接口,所以目前只支持文件服务器类型的存储(FFILESTORAGE标识为1的存储类型)。
附件同步方案及字段映射(苍穹-星空)示例
3 附件集成执行情况查看
相关方案执行完成后,可通过以下路径查看附件集成执行日志及相关情况:
查看附件集成执行日志示例
同时,也可以查看附件集成的详细信息:
查看附件集成详细信息示例
注意:已经传递过的附件,不会重复传递,执行状态为“忽略”。
4 注意事项
4.1 EAS附件命名重名问题
EAS附件允许重名,在参数设置找到“附件重名”设置,可根据现场实际情况修改参数值。
“附件重名”设置示例
4.2 附件上传大小设置问题
EAS端的附件上传大小设置路径为:【附件上传设置】→【允许上传附件大小】,如下图所示:
EAS附件大小设置示例
苍穹端的附件上传大小设置路径为:【系统服务云】→【配置工具】→【参数配置】→【系统参数】→【公共参数】→【附件上传配置】,如下图所示:
苍穹附件大小设置示例
4.3 如何保留原附件不被覆盖
附件同步过程中,是将源单关联的附件列表全部同步到目标单据,如果原有目标单据已有附件,则会被覆盖(删除)。如果要保留原目标单附件,可以通过脚本处理。
苍穹端:
参考脚本如下:
if(tar.id != null) { SELECT @@file_list[] = FID FROM $tar.T_BAS_ATTACHMENT@basedata where FINTERID = @@tar.id; var temp_list = []; for(item : file_list) { temp_list += {'id':L(item)}; } var map = tar.attachmentpanel.group(id); var map2=temp_list.group(id); Collection.removeAll(map, map2); // attachmentpanel是目标单据绑定的附件字段,根据实际情况调整 tar.attachmentpanel = (map+map2).entries() => value; }
EAS端:
步骤一:根据候选键查询目标单id,再根据目标单id查询目标单据已绑定的附件id列表。相关脚本如下:
//根据实际调整业务目标单据表名及候选键 SELECT @@list[] = a.FATTACHMENTID from $tar.T_BAS_BOATTCHASSO a inner join CT_MY_Mmmmm b on a.FBOID = b.fid where b.fnumber = @@tar.number; var temp_list = []; for(var item : list){ temp_list += {'attachId': item}; }
步骤二:将目标已有的附件id列表也加入到附件列表中。相关脚本如下:
var map = temp_list.group(attachId); var map2=tar.$file_list.group(attachId); Collection.removeAll(map, map2); tar.$file_list = (map+map2).entries() => value;
5 划重点
1) 集成云采用中间表的形式,记录和同步附件信息;
2) 附件集成为可选配置,用户可根据实际需要和系统情况选择是否开启;
3) 无论是以EAS或是苍穹为目标对象,其固定的源对象字段均为$file_list.tarAttachId;
4) 使用附件集成时,需要及时关注附件大小限制问题。
#往期推荐#
更多精彩内容,“码”上了解!↓
附件集成是什么?一起一探究竟
本文2024-09-23 00:52:15发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-142276.html