附件绑定单据接口

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

附件绑定单据接口

苍穹附件绑定单据


简要描述:

  • 附件绑定单据接口

请求URL:

  • https://feature.kingdee.com:1026/patchcore/kapi/app/open/bindingAtt

请求方式:

  • POST

参数:

参数名

必选

类型

说明

formNumber

string

目标单据标识

billPkId

string

目标单据PkId

data

Object

附件数据集合

attachmentpanel

Array

key是附件面板或者附件字段标识;value是附件列表

size

long

附件大小(字节数)

path

string

附件在服务器的相对路径

entryPkId

string

附件所属分录PkId;若附件属于单据头则不填

createUserId

string

用户ID,不填则取接口调用者ID

请求示例

  {
    "formNumber":"testFormNumber",
    "billPkId":"836117104519284736",
    "data":{
        "attachmentpanel":[
            {
                "size":95270,
                "path":"/dev/2020/86080/att/test.xlsx"
            }
        ],
        "attachmentfeild":[
            {
                "size":95270,
                "path":"/dev/2020/86080/att/test.xlsx"
            }
        ],
        "attachmentfield_entry":[
            {
                "entryPkId":"836117104519284737",
                "size":95270,
                "path":"/dev/2020/86080/att/test.xlsx",
                "createUserId":"36550"
            }
        ]
    }
  }

返回参数说明

参数名

类型

说明

success

boolean

true/false

data

string

请求成功返回数据

message

string

请求成功返回描述

error_desc

string

请求失败返回描述

error_code

string

请求失败编码

返回示例

  {
    "data": "请求成功",
    "errorCode": "success",
    "success": true
  }

备注 需先登录苍穹系统之后才可以访问此接口


内部调用方式:

示例:先上传文件到附件服务器,然后绑定此文件到指定单据


import kd.bos.servicehelper.AttDto;
import kd.bos.servicehelper.AttachmentServiceHelper;
        //1.上传附件到附件服务器
        FileService fs=FileServiceFactory.getAttachmentFileService();
        RequestContext requestContext = RequestContext.get();
        String pathParam = FileNameUtils.getAttachmentFileName(requestContext.getTenantId(), requestContext.getAccountId(), 自定义一个标识, "testUpload.pptx");
        //FileItem:文件上传对象,通过String fileName(文件名), String pathParam(文件上传路径), InputStream in(文件流)构造FileItem对象。上传返回文件下载url。
        FileItem fi = new FileItem("testUpload.pptx",pathParam,new FileInputStream("D:/testUpload.pptx"));
        fi.setCreateNewFileWhenExists(true);
        path= fs.upload(fi);
        //2.附件绑定目标单据
        List<AttDto> attDtoList = new ArrayList<>();
        AttDto attDto = new AttDto(); attDto.setPath(path);
        try {
            //attKey为目标单据标识
            attDto.setAttKey("attachmentpanel");
            //size为文件大小(字节数)
            attDto.setSize(708484019L);
            //如果附件要绑定到分录上,传值分录PkId,单据头上附件不需要传此参数
            attDto.setEntryPkId("1044215447538426880");
            //size建议自己传值,也可通过AttachmentServiceHelper.getFileSizeByPath(String path)获取
            //AttachmentServiceHelper.getFileSizeByPath为耗时请求,通过读取文件流获得文件字节数大小
            //attDto.setSize(AttachmentServiceHelper.getFileSizeByPath(attDto.getPath()));
        } catch (Exception e) {
            e.printStackTrace();
        }
        try {
            attDtoList.add(attDto);
            //生成附件绑定接口参数
            //第一个参数为目标单据标识;第二个参数为目标单据pkId,第三个参数为附件列表
            Map<String, Object> bindingParam = AttachmentServiceHelper.genBindingParam("mi_uoload", "1044215447538426880", attDtoList);
            //绑定接口返回结果
            Map<String, Object> resultMap = AttachmentServiceHelper.bindingAttachment(bindingParam);
            if((boolean)resultMap.get("success")){
                this.getView().updateView();
                this.getView().showSuccessNotification("绑定成功");
            }else {
                this.getView().showErrorNotification("绑定失败 : " + resultMap.get("message"));
            }
        } catch (Exception e) {
            this.getView().showErrorNotification("绑定失败 : " + e);
        }



相关链接

开发服务云新特性发布汇总

https://club.kdcloud.com/article/76619783260443136


附件绑定单据接口

苍穹附件绑定单据简要描述: 附件绑定单据接口请求URL: https://feature.kingdee.com:1026/patchcore/kapi/app/open/bindingAtt请求方式...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息