1

我在 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

4

2 回答 2

4

您可以使用compositeTemplates并在信封中多次重复使用相同的服务器模板。下面的代码使用相同的服务器模板并在信封中重复 10 次。在此处查看完整示例

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
                                      }
                                  }

                              }
                          }
                      }
                  }
              }
          }
    }
}
于 2017-06-06T17:30:43.617 回答
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);`
于 2017-06-06T11:19:07.897 回答