峰峦@叠嶂 2026-02-06 13:17 采纳率: 98%
浏览 1

钉钉公有云和EAS8.0的对接需求

请问一下,我们是金蝶EAS8.0,希望能将钉钉OA审批的费用报销流程,通过接口,将审批后的相关内容,如金额,报销人等,传递到金蝶的费用报销单界面上,同时启动金蝶的报销流程,处于保存状态,请问用什么方法可以对接呢,有介绍说是webservice或openai,但我们EAS版本较低,只支持webservice,请问有无这方面的资料给提供参考一下,谢谢;

  • 写回答

1条回答 默认 最新

  • 檀越@新空间 2026-02-06 13:18
    关注

    下午好🌅🌅🌅
    本答案参考通义千问

    针对您提到的金蝶EAS 8.0与钉钉公有云的对接需求,尤其是将钉钉OA审批中的费用报销流程数据(如金额、报销人等)传递到金蝶EAS 8.0的费用报销单界面,并启动金蝶的报销流程,我们可以从以下几个方面进行分析和解决方案设计。


    一、项目背景与目标

    • 系统现状

      • 金蝶EAS 8.0:支持Web Service接口,不支持OpenAPI或类似AI接口。
      • 钉钉公有云:支持通过钉钉开放平台提供的接口实现与第三方系统的集成。
    • 核心需求

      • 钉钉审批流中的费用报销信息(如报销人、金额、报销事由等)自动同步至金蝶EAS 8.0的费用报销单界面
      • 在金蝶中自动触发报销流程,并处于“保存”状态,供后续人工处理。

    二、对接方式选择

    根据您的系统情况,推荐使用Web Service方式进行对接,因为:

    • EAS 8.0仅支持Web Service接口;
    • 钉钉开放平台提供了RESTful API,可以通过中间服务转换为Web Service调用;
    • Web Service是一种成熟、稳定的接口方式,适合企业级系统集成。

    三、对接方案详解

    1. 获取钉钉审批数据

    1.1 使用钉钉开放平台API

    • 钉钉提供审批实例详情接口,用于获取审批表单数据,例如:

      GET https://oapi.dingtalk.com/topapi/procinst/get?access_token=ACCESS_TOKEN
      

      参数说明:

      • access_token:钉钉应用的访问令牌
      • proc_inst_id:审批实例ID(由钉钉返回)

    1.2 接口响应示例(部分字段):

    {
      "errcode": 0,
      "errmsg": "ok",
      "process_instance": {
        "form_data": {
          "amount": "500",
          "applicant": "张三",
          "reason": "差旅费"
        }
      }
    }
    

    注意:需要在钉钉管理后台配置应用权限,确保可以获取审批数据。


    2. 构建Web Service接口(EAS 8.0端)

    2.1 在EAS 8.0中创建Web Service

    • 在EAS中通过系统管理 > 接口管理 > Web Service模块创建新的Web Service。
    • 提供以下功能:
      • 接收钉钉传来的报销数据
      • 将数据写入金蝶费用报销单表
      • 触发报销流程,设置状态为“已保存”

    2.2 示例Web Service方法(伪代码):

    [WebMethod]
    public string SyncReimbursementData(string applicant, string amount, string reason)
    {
        // 1. 构建费用报销单数据
        var reimbursement = new Reimbursement();
        reimbursement.Applicant = applicant;
        reimbursement.Amount = decimal.Parse(amount);
        reimbursement.Reason = reason;
    
        // 2. 调用EAS内部业务逻辑,保存报销单
        SaveReimbursement(reimbursement);
    
        return "success";
    }
    

    提示:具体实现需根据EAS的业务模型和数据库结构进行调整。


    3. 搭建中间服务(可选)

    由于钉钉提供的是RESTful API,而EAS只支持Web Service,建议搭建一个中间服务(如Spring Boot、Node.js、ASP.NET Core等),用于:

    • 接收钉钉的审批回调通知;
    • 解析数据;
    • 调用EAS的Web Service接口完成数据同步。

    3.1 中间服务流程图

    钉钉 → [审批回调] → 中间服务 → [调用EAS Web Service] → EAS 8.0
    

    3.2 示例中间服务代码(Node.js):

    const express = require('express');
    const app = express();
    app.use(express.json());
    
    app.post('/dingtalk/reimbursement', async (req, res) => {
      const data = req.body;
      const { applicant, amount, reason } = data.form_data;
    
      // 调用EAS Web Service
      const response = await fetch('http://eas-web-service-url/SyncReimbursementData', {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify({ applicant, amount, reason })
      });
    
      res.status(200).send('OK');
    });
    
    app.listen(3000, () => console.log('Server running on port 3000'));
    

    四、关键注意事项

    • 权限控制:确保钉钉应用和中间服务之间通信的安全性,使用Token验证;
    • 数据一致性:建议在EAS中增加日志记录,确保每次数据同步都可追溯;
    • 异常处理:在Web Service中加入异常捕获机制,避免因网络或数据错误导致系统崩溃;
    • 测试环境:先在测试环境中验证整个流程,再部署到生产环境。

    五、参考资料与文档链接

    | 类别 | 链接 | |------|------| | 钉钉开放平台 - 审批实例详情接口 | https://developers.dingtalk.com/document/ | | 金蝶EAS 8.0 Web Service开发指南 | 请咨询金蝶官方技术支持或查阅《金蝶EAS 8.0 开发手册》 | | Spring Boot + Web Service 示例 | https://spring.io/projects/spring-boot |


    六、总结与建议

    | 项目 | 建议 | |------|------| | 接口方式 | 推荐使用Web Service,EAS 8.0兼容性好 | | 数据同步 | 通过中间服务实现RESTful与Web Service之间的转换 | | 流程控制 | 确保在EAS中自动保存报销单,并触发流程 | | 技术支持 | 如需进一步帮助,建议联系金蝶技术团队钉钉开发者支持 |


    如果您需要我帮您生成具体的Web Service接口定义文件(WSDL),或者编写EAS 8.0的自定义业务逻辑代码,也可以继续告诉我,我会为您详细提供。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月6日