开发者社区 问答 正文

钉钉企业内部应用开发api,创建审批实例如何上传附件。

用一下方法获取data值了之后。

dd.biz.util.uploadAttachment({ image:{multiple:true,compress:false,max:9,spaceId: "12345"}, space:{corpId:"xxx3020",spaceId:"12345",isCopy:1 , max:9}, file:{spaceId:"12345",max:1}, types:["photo","camera","file","space"],//PC端支持["photo","file","space"] onSuccess : function(result) { //onSuccess将在文件上传成功之后调用 /* { type:'', // 用户选择了哪种文件类型 ,image(图片)、file(手机文件)、space(钉盘文件) data: [ { spaceId: "232323", fileId: "DzzzzzzNqZY", fileName: "审批流程.docx", fileSize: 1024, fileType: "docx" }, { spaceId: "232323", fileId: "DzzzzzzNqZY", fileName: "审批流程1.pdf", fileSize: 1024, fileType: "pdf" }, { spaceId: "232323", fileId: "DzzzzzzNqZY", fileName: "审批流程3.pptx", fileSize: 1024, fileType: "pptx" } ]

   }
    */
},
onFail : function(err) {}

});


创建审批实例时怎么上传附件。 微信图片_20210510191044.png

展开
收起
游客7ltcqjtnmmx2e 2021-05-10 20:02:09 1638 分享 版权
阿里云 AI 助理回答

在创建审批实例时上传附件,通常涉及调用特定平台或系统的API来处理文件上传逻辑。根据您提供的代码片段,这似乎是针对钉钉(DingTalk)平台的文件上传操作,使用了dd.biz.util.uploadAttachment方法。这个方法允许用户从多种来源(如相册、相机、本地文件、钉盘)选择文件,并在成功上传后通过回调函数onSuccess获取文件信息。

如何在创建审批实例时上传附件

  1. 确保权限与环境:首先,确保你的应用有权限访问用户的钉盘和进行文件上传操作。这通常需要在钉钉开放平台对你的应用进行相应的权限配置。

  2. 上传附件:你已经展示了如何调用上传附件的方法。关键在于理解onSuccess回调中的数据结构,然后利用这些数据去创建审批实例时作为附件引用。

  3. 创建审批实例:在onSuccess回调中,你获得了上传成功的文件信息数组。接下来,你需要使用钉钉开放平台提供的API来创建一个审批实例,并将这些文件信息作为附件添加进去。这通常涉及到构造一个包含审批流定义、表单字段值以及附件信息的请求体。

以下是一个简化的示例流程:

// 假设result是uploadAttachment调用后返回的数据
onSuccess : function(result) {
    // 获取上传成功的文件数据
    var attachments = result.data;
    
    // 准备审批实例创建所需的数据
    var approvalData = {
        // 审批流的唯一标识,需替换为实际的审批流ID
        "processCode": "YOUR_PROCESS_CODE",
        // 审批实例的相关表单字段值,根据实际情况填写
        "formComponentValues": [
            // 示例:一个表单项的值
            {"name": "fileDescription", "value": "附件描述"},
            // 其他表单项...
        ],
        // 附件信息,使用上传成功后的文件信息
        "attachments": attachments.map(function(file) {
            return {
                "spaceId": file.spaceId,
                "fileId": file.fileId,
                "fileName": file.fileName
            };
        })
    };

    // 调用钉钉API创建审批实例
    dd.api.request({
        "url": "https://oapi.dingtalk.com/topapi/processinstance/create",
        "method": "POST",
        "data": JSON.stringify(approvalData),
        "headers": {"Content-Type": "application/json"},
        onSuccess: function(createResult) {
            if (createResult.errcode === 0) {
                console.log("审批实例创建成功");
                // 可以进一步处理创建成功的响应,如跳转到审批详情页面等
            } else {
                console.error("创建审批实例失败:", createResult.errmsg);
            }
        },
        onFail: function(err) {
            console.error("请求失败:", err);
        }
    });
}

请注意,上述代码仅为示例,实际使用时需要替换YOUR_PROCESS_CODE为你的审批流ID,并且确保钉钉开放平台的应用拥有必要的接口调用权限。此外,具体的API路径、参数格式及错误码处理请参考最新的钉钉开放平台文档。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
API
问答地址: