使用Docusign API使用c#sdk将多个文档添加到信封中

时间:2017-06-06 10:40:17

标签: c# docusignapi docusigncompositetmplts

我在Docusign有一个模板,我需要发送到joe@acme.com

然而Joe负责管理10个客户,而不是我发送Joe 10个单独的信封给他签名我想发送Joe 1信封和10个文件,Joe需要在信封中签署所有10个文件。除了模板

的文本字段中填写的不同数据外,文档是相同的

我正在使用Docusign提供的C#SDK,我可以使用EnvelopeDefinition类和TemplateRole类在信封中发送一个文档,但是如何在信封中创建10个文档则会丢失

以下配方可以实现,但它在python中并使用REST API,我不知道如何转换为C#SDK等价物 https://www.docusign.com/developer-center/recipes/send-multiple-docs

2 个答案:

答案 0 :(得分:3)

您可以使用compositeTemplates并在信封中多次重复使用相同的服务器模板。下面的代码使用相同的服务器模板,并在信封中重复10次。请参阅完整示例here

public void CreateEnvelope()
{
  var envDef = new EnvelopeDefinition()
  {
      EmailSubject = "Envelope with multiple documents",
      Status = "sent",
      CompositeTemplates = new List<CompositeTemplate>()
  };

  for (int docNumber = 1; docNumber <= 10; docNumber++)
  {
      var compostiteTemplate = BuildCompositeTemplate(docNumber.ToString());
      envDef.CompositeTemplates.Add(compostiteTemplate);

  }

  EnvelopesApi envelopesApi = new EnvelopesApi();
  EnvelopeSummary envelopeSummary = envelopesApi.CreateEnvelope(accountId, envDef);
  Console.WriteLine(envelopeSummary);
}

public CompositeTemplate BuildCompositeTemplate(string docNumber)
{
    string serverTemplateId = "";//Add your server template ID here
    return new CompositeTemplate()
    {
          ServerTemplates = new List<ServerTemplate>()
          {
              new ServerTemplate()
              {
                  TemplateId = serverTemplateId,
                  Sequence = docNumber
              }
          },
          InlineTemplates = new List<InlineTemplate>()
          {
              new InlineTemplate()
              {
                  Sequence = docNumber,
                  Recipients = new Recipients()
                  {
                      Signers = new List<Signer>()
                      {
                          new Signer()
                          {
                              Email = "Janedoe@acme.com",
                              Name = "Jane Doe",
                              RecipientId = "1",
                              RoleName = "Signer1",
                              Tabs = new Tabs()
                              {
                                  TextTabs = new List<Text>()
                                  {
                                      new Text()
                                      {
                                          DocumentId = docNumber,
                                          PageNumber = "1",
                                          XPosition = "100",
                                          YPosition = "100",
                                          Width = 120, 
                                          Value = "Some Tab Value " + docNumber
                                      }
                                  }

                              }
                          }
                      }
                  }
              }
          }
    }
}

答案 1 :(得分:1)

在EnvelopeDefinition类中有属性Documents,您可以在其中添加多个文档。

当我想查看如何实现功能时,我使用DocuSign中的REST API Explorer

            enDef = new EnvelopeDefinition();
            doc = new Document();

            doc.DocumentBase64 = System.Convert.ToBase64String(System.IO.File.ReadAllBytes(filename));
            doc.Name = DocName;
            doc.DocumentId = "1"; // increment this

            enDef.Documents = new List<Document>();
            enDef.Documents.Add(doc);

<强>加

对于多重模板角色,EnvelopeDefinition中还存在一个名为TemplateRoles的属性。在那里你可以添加多个。

            tempRole = new TemplateRole();
            tempRole.Name = Rolename;

            enDef.TemplateRoles = new List<TemplateRole>();
            enDef.TemplateRoles.Add(tempRole);`