DocuSign API:正确分配模板角色
DocuSign API: Assigning TemplateRoles Properly
使用 C# 中的 DocuSign API,我很容易就能通过测试信封。现在我正在使用下图在信封上进行测试。
我知道我必须为收件人分配一个 TemplateRole
,但是当我发送电子邮件时,出现了问题。我假设通过定义多个角色,将设置签名顺序中的每个项目。无论出于何种原因,这种情况都没有发生,而是我发出了两份文件。根据我包含的 TemplateRoles,还将为发件人 name/address 插入虚拟数据。我想阻止这种情况。
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# 示例代码。
请显示创建 envDef
对象的完整代码。
您是否正在设置模板 ID?
每个 TemplateRole
对象的 RoleName
必须与模板中的角色名称完全匹配。
必须设置模板定义的每个角色。如果您决定要从模板开始,然后修改它以删除角色,我相信这是可能的,但您需要使用复合模板来完成。相反,我建议您考虑使用两个模板,一个具有两个角色,一个具有一个角色。
重新发送给批量收件人。我会把它作为一个单独的问题来问。我建议你使用逐步优化。首先让你的信封与角色替换一起工作。
然后转到发送由 CSV 文件控制的许多不同信封的不同问题(批量发送)。
您可以使用 DocuSign compositeTemplates feature and create envelopes from templates. This is more flexible than using TemplateRole。
查看此示例code for creating envelope from a template. It is using the 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);
使用 C# 中的 DocuSign API,我很容易就能通过测试信封。现在我正在使用下图在信封上进行测试。
我知道我必须为收件人分配一个 TemplateRole
,但是当我发送电子邮件时,出现了问题。我假设通过定义多个角色,将设置签名顺序中的每个项目。无论出于何种原因,这种情况都没有发生,而是我发出了两份文件。根据我包含的 TemplateRoles,还将为发件人 name/address 插入虚拟数据。我想阻止这种情况。
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# 示例代码。
请显示创建 envDef
对象的完整代码。
您是否正在设置模板 ID?
每个 TemplateRole
对象的 RoleName
必须与模板中的角色名称完全匹配。
必须设置模板定义的每个角色。如果您决定要从模板开始,然后修改它以删除角色,我相信这是可能的,但您需要使用复合模板来完成。相反,我建议您考虑使用两个模板,一个具有两个角色,一个具有一个角色。
重新发送给批量收件人。我会把它作为一个单独的问题来问。我建议你使用逐步优化。首先让你的信封与角色替换一起工作。
然后转到发送由 CSV 文件控制的许多不同信封的不同问题(批量发送)。
您可以使用 DocuSign compositeTemplates feature and create envelopes from templates. This is more flexible than using TemplateRole。
查看此示例code for creating envelope from a template. It is using the 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);