You need to enable JavaScript to run this app. 如何在SSIS中调用DocuSign API获取文档并下载至指定文件夹
优惠活动
大模型
产品
解决方案
定价
更多

如何在SSIS中调用DocuSign API获取文档并下载至指定文件夹

SSIS处理DocuSign文档接口二进制流落地实现方案

SSIS现有配置截图

你当前使用JSON源连接器请求文档接口无法获取负载的核心原因是,/restapi/v2.1/accounts/{accountId}/envelopes/{envelopeId}/documents/{documentId}接口返回的是application/pdf类型的二进制流,并非JSON格式,JSON源连接器无法识别处理该类响应。

以下是两种可落地的SSIS实现方案:

方案1:脚本任务实现(推荐,适配自定义文件夹/文件名命名规则)

  • 保留现有元数据同步流程:继续使用原有JSON源调用拉取所有信封ID(envelopeId)、文档ID(documentId)、文档名称等元数据,将结果存储到SSIS对象变量或者临时表中。
  • 新增Foreach循环容器,遍历所有元数据记录,将accountId、envelopeId、documentId、文档名称映射为对应的SSIS字符串变量。
  • 在Foreach循环内添加脚本任务,引用已经配置好权限的DocuSign HTTP连接管理器,完成文件下载和保存逻辑,核心C#代码如下:
using System.IO;
using Microsoft.SqlServer.Dts.Runtime;
using System.Net;

public void Main()
{
    // 读取SSIS变量
    string accountId = Dts.Variables["User::accountId"].Value.ToString();
    string envelopeId = Dts.Variables["User::envelopeId"].Value.ToString();
    string documentId = Dts.Variables["User::documentId"].Value.ToString();
    string docName = Dts.Variables["User::documentName"].Value.ToString();
    string rootPath = Dts.Variables["User::DocuSignSaveRootPath"].Value.ToString();

    // 拼接请求路径与保存路径
    string reqUrl = $"{Dts.Connections["DocuSign_HTTP"].ConnectionString}/restapi/v2.1/accounts/{accountId}/envelopes/{envelopeId}/documents/{documentId}";
    string saveFolder = Path.Combine(rootPath, envelopeId);
    string fullSavePath = Path.Combine(saveFolder, $"{docName}.pdf");

    // 创建目标文件夹
    if (!Directory.Exists(saveFolder))
        Directory.CreateDirectory(saveFolder);

    // 调用HTTP连接下载二进制流
    HttpClientConnection httpConn = (HttpClientConnection)Dts.Connections["DocuSign_HTTP"].AcquireConnection(null);
    httpConn.ServerURL = reqUrl;
    byte[] fileBytes = httpConn.DownloadData();

    // 写入本地文件
    File.WriteAllBytes(fullSavePath, fileBytes);

    Dts.TaskResult = (int)ScriptResults.Success;
}
  • 后续可直接使用生成的文件完整路径调用OnBase上传接口,已有的元数据可直接传入CRM业务流程,无需额外适配。

方案2:无代码配置实现(适合不希望编写自定义代码的场景)

  • 替换文档接口的调用组件:不再使用JSON源连接器请求文档接口,改用「Web服务任务」关联已有的HTTP连接管理器,将接口返回的二进制结果存储到SSIS字节类型变量User::DocBinary中,同时将envelopeId、文档名称存储为对应字符串变量。
  • 添加派生列转换,通过表达式生成完整保存路径:
    表达式示例:@[User::RootSavePath] + "\\" + @[User::envelopeId] + "\\" + @[User::documentName] + ".pdf",将结果输出到新列FullSavePath。
  • 添加「导出列」转换,配置提取列为User::DocBinary,文件路径列为FullSavePath,勾选「强制截断」即可自动将二进制流写入目标路径。

注意:如果你的网络路径需要权限验证,请确保SSIS作业运行的服务账号对目标存储文件夹有读写权限。

内容的提问来源于stack exchange,提问作者Matt West

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 17:24:00