在C#中使用DocuSign API,我很容易得到一个测试信封。现在我正在使用下图测试信封。
我知道我必须为收件人分配TemplateRole
,但是当我发送电子邮件时,事情就出错了。我假设通过定义多个角色,将设置签名顺序中的每个项目。无论出于何种原因,这都不会发生,而是我发出了两份文件。根据我包含的TemplateRoles,还会为发件人姓名/地址插入虚拟数据。我想阻止它。
EnvelopeDefinition envDef = new EnvelopeDefinition();
envDef.EmailSubject = "[DocuSign C# SDK] - Sample Signature Request";
envDef.TemplateId = TemplateID;
TemplateRole DirectorRole = new TemplateRole();
DirectorRole.Email = RecipientEmail;
DirectorRole.Name = RecipientName;
DirectorRole.RoleName = "Director";
TemplateRole TraineeRole = new TemplateRole();
TraineeRole.Email = RecipientEmail;
TraineeRole.Name = "A Trainee";
TraineeRole.RoleName = "Trainee";
List<TemplateRole> rolesList = new List<TemplateRole>() { DirectorRole, TraineeRole };
envDef.TemplateRoles = rolesList;
envDef.Status = "sent";
EnvelopesApi envelopesApi = new EnvelopesApi();
EnvelopeSummary envelopeSummary = envelopesApi.CreateEnvelope(accountId, envDef);
您可以看到我可以选择发送给批量收件人或个人。我想发送给其中一个或另一个。我怎么能这样做?这是我目前的代码。如何分配不同类型的角色的一般示例将是值得赞赏的,因为据我所知,那里没有很多C#示例代码。
答案 0 :(得分:1)
请显示创建envDef
对象的完整代码。
你在设置模板ID吗?
每个RoleName
对象的TemplateRole
必须与模板中的角色名称完全匹配。
必须设置模板定义的每个角色。如果您决定从模板开始然后修改它以删除角色,我相信这是可能的,但您需要使用复合模板来完成。相反,我建议您考虑使用两个模板,一个具有两个角色,一个具有单个角色。
重新发送给批量收件人。我会问这是一个单独的问题。我建议你使用逐步细化。首先让您的信封使用角色替换。
然后继续讨论发送由CSV文件控制的许多不同信封的不同问题(批量发送)。
答案 1 :(得分:1)
您可以使用DocuSign compositeTemplates功能并从模板创建信封。这比使用TemplateRole更灵活。
请参阅此示例code以从模板创建信封。它正在使用DocuSign C# SDK
string accountId = Init();
var envDef = new EnvelopeDefinition()
{
EmailSubject = "Envelope with multiple recipient roles",
Status = "sent",
CompositeTemplates = new List<CompositeTemplate>()
{
new CompositeTemplate()
{
ServerTemplates = new List<ServerTemplate>()
{
new ServerTemplate()
{
TemplateId = "", //CreateTemplate()
Sequence = "1"
}
},
InlineTemplates = new List<InlineTemplate>()
{
new InlineTemplate()
{
Sequence = "1",
Recipients = new Recipients()
{
Signers = new List<Signer>()
{
new Signer()
{
Email = "Janedoe@acme.com",
Name = "Jane Doe",
RecipientId = "1",
RoleName = "Signer1",
},
new Signer()
{
Email = "Bobdoe@acme.com",
Name = "Bob Doe",
RecipientId = "2",
RoleName = "Signer2",
},
new Signer()
{
Email = "DanDoe@acme.com",
Name = "Dan Doe",
RecipientId = "3",
RoleName = "Signer3",
}
}
}
}
}
}
}
};
EnvelopesApi envelopesApi = new EnvelopesApi();
EnvelopeSummary envelopeSummary = envelopesApi.CreateEnvelope(accountId, envDef);