0

我无法弄清楚如何使用 DocuSign C# SDK 在信封中发送多个填充的 DocuSign 模板。我能够在信封中填充和发送单个模板,但无法使用多个模板执行此操作。

这是我使用的成功填充和发送模板的代码片段:

var rolesList = new List<TemplateRole>();

var tRole = new TemplateRole   
{
    Tabs = new Tabs(),
    RoleName = "rolename"
};

tRole.Name = "joe smith";
tRole.Email = "email-address";

var tabData = new List<Text>();

// Populate the tabData 

tRole.Tabs.TextTabs = tabData;
rolesList.Add(tRole);

var envDef = new EnvelopeDefinition
{
    EmailSubject = "Pleae sign this",
    TemplateRoles = rolesList,
    TemplateId = "first template id",
    Status = "sent",
};

var envelopesApi = new EnvelopesApi();

await envelopesApi.CreateEnvelopeAsync("accountId", envDef);

对于多个模板,我假设我需要使用 CompositeTemplate 所以我尝试了这段代码:

var envDef = new EnvelopeDefinition
{
    EmailSubject = subject,
    TemplateRoles = roles,
    Status = send?  "sent" : "created",
};

var compositeTemplate = new CompositeTemplate()
{
    ServerTemplates = new List<ServerTemplate>(),
    CompositeTemplateId = Guid.NewGuid().ToString(),
};


envDef.CompositeTemplates = new List<CompositeTemplate>();
envDef.CompositeTemplates.Add(compositeTemplate);

ServerTemplate first = new ServerTemplate()
{
    TemplateId = "first template id",
    Sequence = "1"
};

ServerTemplate second = new ServerTemplate()
{
    TemplateId = "second template id",
    Sequence = "2",

};

compositeTemplate.ServerTemplates.Add(first);
compositeTemplate.ServerTemplates.Add(second);

var envelopesApi = new EnvelopesApi();

await envelopesApi.CreateEnvelopeAsync("accountId", envDef);

但是,使用此代码 CreateEnvelopeAsync 调用会引发以下异常:DocuSign.eSign.Client.ApiException:调用 CreateEnvelope 时出错:{“errorCode”:“ENVELOPE_IS_INCOMPLETE”,“消息”:“信封不完整。完整的信封需要文档、收件人、标签和主题行。” }

我显然没有正确配置 CompositeTemplate(很可能没有填充文档),但我似乎找不到如何正确填充它的示例。

4

2 回答 2

1

您不应在相同的信封定义中混合 TemplateRole 和 CompositeTemplate,因为它们是不同的设计策略。正如拉里建议的那样,如果您想从两个不同的模板添加要添加到信封中的文档,那么您需要添加两个 CompositeTemplate 项目。此外,当您引用服务器模板时,您还需要指定内联模板以提供 RecipientRole 详细信息。在服务器模板中,您有收件人的占位符,但没有收件人的姓名和电子邮件,因此您可以通过 InlineTemplate 提供收件人占位符的姓名和电子邮件,您希望将信封发送给该收件人。

于 2019-04-12T20:51:34.693 回答
0

由于您的两个服务器模板彼此分开,我相信您想要创建一个包含两个复合模板的数组。每个复合模板项将包含一个服务器模板。

请参阅本示例的第 93 行及以下。该示例发送一个信封

  1. DocuSign 的模板(“服务器模板”)
  2. 本地创建的 HTML 源文档。

在您的情况下,重复添加第 1 项而不是现有第 2 项的方式。

关键是两个不同的复合模板项,而不是一个复合模板项中的两个服务器模板。

于 2019-04-12T09:44:54.007 回答