附件集成是什么?一起一探究竟

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

附件集成是什么?一起一探究竟


在数据集成过程中,除了进行单据的集成以外,还有一个重要的内容便是附件集成。例如,在集成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) 使用附件集成时,需要及时关注附件大小限制问题。




#往期推荐#


# 如何防止服务流程OOM?SQL分页查询来解决

一文详解常量转换和候选键映射

人工映射:轻松数据转换三步走

一文拆解集成原理,让数据集成不再伤神


更多精彩内容,“码”上了解!↓


附件集成是什么?一起一探究竟

在数据集成过程中,除了进行单据的集成以外,还有一个重要的内容便是附件集成。例如,在集成EAS的采购申请单至苍穹采购申请单时,除了同步...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息