苍穹与第三方系统附件集成思路原创
金蝶云社区-云社区用户71598104
云社区用户71598104
12人赞赏了该文章 3,693次浏览 未经作者许可,禁止转载编辑于2021年11月23日 17:50:42

本篇文章主要提供苍穹与第三方系统附件集成的思路~


场景一:苍穹的附件信息同步至第三方系统

  1. 实现方案:采用接口集成的方式,有两种方案可以参考:

    (1)苍穹自定义接口,第三方系统调用获取苍穹附件信息

    (2)第三方定义接口,苍穹通过接口调用将附件信息传给第三方

  2. 注意事项:接口定义时,有以下两点需要关注:

    (1)除了约定的业务需求字段外,还需要注意双方系统需存在唯一且具有相同的字段,可以是约定的编号或者是单据编号等;

    (2)如果是第二种实现方式

  • 根据调用第三方接口的触发时机,可以考虑定时任务传或者时实时触发调用,如果是定时任务传需注意考虑处理增量同步问题;

  • 苍穹需要考虑已经同步过的是否能再次同步,同样的第三方需要考虑苍穹如果对同一个附件重复同步,需要覆盖或者是不做处理。

    3. 附件信息的内容主要是苍穹提供一个url,第三方系统自行做处理

        苍穹获取附件下载地址url:

//formId:单据编码,pkId:单据主键,attachKey:附件面板标识 
List<Map<String, Object>> list = AttachmentServiceHelper.getAttachments( formId, pkId, attachKey)
 for (Map map : list)
 { 
    String url = map.get("url").toString();
 }


场景二:第三方系统将附件同步至苍穹

  1. 实现方案:调用苍穹的附件上传接口,attachment/upload.do或者/attachment/uploadFile.do,该接口会返回一个url地址,第三方获得该返回地址后,可以进行下一步的单据保存,即单据与附件进行绑定操作。如下说明:

(1)单个附件传输:参数为文件格式,即Multipart/form-data的请求方式,需注意处理请求头Content-Type,

设置为multipart/form-data; boundary=boundary其中boundary分隔符可以自定义,如下图所示:

图片1.png

图片2.png

注:该方式attachment/upload.do与/attachment/uploadFile.do的区别是,/attachment/upload.do返回的是苍穹存储附件的真实地址,而attachment/uploadFile.do返回的是存储附件的临时地址,也可以通过参数tempstorage控制。

(2)多个附件传输:/attachment/uploadFile.do支持多个附件同步,files参数构造json数组,如下图所示:

图片3.png


赞 12