非标准场景下集成附件同步

1 业务场景
非标准场景下集成附件同步
2 解决方案
标准单据附件同步(EAS/苍穹/星空)
标准集成方案可以实现附件同步,其逻辑如下:先根据源系统单据获取附件清单,之后遍历附件清单,取文件流同步到目标系统,最后将上传到文件服务器的id绑定到目标系统单据。
在整个附件同步过程中,关键的参数是$filelist,如果能够将$filelist拼接出来即可实现附件同步。
源系统为非标准的EAS附件
在集成方案来源数据处理脚本中,编写以下脚本:

// EAS附件表查询附件详情
SELECT @@list[] = (fid,fsimplename,fname_l1) from $src.t_bas_attachment where fattachtype= @@src.assignment;
var temp_list = [];
for(var item : list){
temp_list += {
'srcAttachId': item.fid,// 必填,单据附件id
'type': item.fsimplename,// 必填,如txt, doc
'name': item.fname_l1 // 必填,附件名称
};
}
// 构造EAS单据的附件清单
src.$file_list = temp_list;
源系统为非标准的苍穹附件
在集成方案来源数据处理脚本中,编写以下脚本:

// 苍穹附件有2种存储方式,附件字段或附件面板,根据需要选择单个或叠加到$file_list
// 示例:获取附件面板bos_attachment中的前2个附件清单,实际情况根据需要拼接where条件
SELECT @@rows[] = (top 2 ffileid as url, fextname as type, fattachmentname as name)
FROM $src.t_bas_attachment@sys order by fcreatetime desc;
// 示例:获取附件字段bd_attachment中的前2个附件清单,实际情况根据需要拼接where条件
//SELECT @@rows[] = (top 2 a.furl as url, a.ftype as type, b.fname as name)
//FROM $src.t_bd_attachment@sys a left join t_bd_attachment_l b on a.fid = b.fid
//ORDER BY fcreatetime desc;
// 将获取的附件组装为$file_list
var fileList =
非标准场景下集成附件同步
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



