我在 DocuSign 中存储了一个模板,其中包含一些使用预填充工具的选项卡。
我可以使用 DocuSign SDK 获取模板选项卡
Tabs dsTabs = TemplatesApi.GetDocumentTabs(DSAccountId, DSTemplateId).
上面的 DocuSign SDK 将为我提供所有选项卡。可以使用
dsTabs.PrefillTabs
访问 PrefillTab
由于 PrefillTab 不特定于任何收件人,我如何为这些 PrefillTab 设置值并使用
EnvelopeApi.CreateEnvelope(DSAccountId, envelopeDefinition)
发送电子签名模板?
例如,我已将公司预填充工具定位/添加到我的 DocuSign 模板中。如何将值预填充到 SenderCompany 选项卡并发送电子签名模板?
**My Sample EnvelopeDefinition**
private EnvelopeDefinition CreateEnvelopeDefinition(string templateId)
{
EnvelopeDefinition envelopeDefinition = new EnvelopeDefinition();
envelopeDefinition.TemplateId = templateId;
envelopeDefinition.EmailSubject = "PreFill Tabs Test Document";
envelopeDefinition.EmailBlurb = "PreFill Tabs Email Blurb for Testing";
envelopeDefinition.TemplateRoles = TemplateSigner();
envelopeDefinition.Status = "sent";
return envelopeDefinition;
}
private static List<TemplateRole> TemplateSigner()
{
List<TemplateRole> templateRoleList = new List<TemplateRole>();
TemplateRole signer1 = new TemplateRole()
{
RoleName = "Contributor",
Name = "Sample1",
Email = "[email protected]",
};
TemplateRole signer2 = new TemplateRole()
{
RoleName = "Payroll Manager",
Name = "Sample2",
Email = "[email protected]"
};
TemplateRole signer3 = new TemplateRole()
{
RoleName = "Administrator",
Name = "Sample3",
Email = "[email protected]"
};
templateRoleList.Add(signer1);
templateRoleList.Add(signer2);
templateRoleList.Add(signer3);
return templateRoleList;
}
private static Tabs SetPreFillTabValues()
{
SenderName fullName = new SenderName()
{
TabLabel = "Signer1Name",
Value = "Adam"
};
SenderCompany senderCompany = new SenderCompany()
{
TabLabel = "CompanyTab1",
Value = "ABC"
};
Text text1 = new Text()
{
TabLabel = "TextTab1",
Value = "Text1Val"
};
Text text2 = new Text()
{
TabLabel = "TextTab2",
Value = "Text2Val"
};
PrefillTabs prefillTabs = new PrefillTabs()
{
SenderNameTabs = new List<SenderName> { fullName },
SenderCompanyTabs = new List<SenderCompany> { senderCompany },
TextTabs = new List<Text> { text1, text2 }
};
Tabs tabs = new Tabs()
{
PrefillTabs = prefillTabs,
};
return tabs;
}
从模板创建信封后,您可以使用以下代码执行此操作:
PrefillTabs prefillTabs = new PrefillTabs();
prefillTabs.TextTabs = new List<text>();
prefillTabs.TextTabs.Add(new Text { PageNumber = "1", DocumentId = "1", tabId = tabIdValue, Value = "MyValue" });
Tabs tabs = new Tabs();
tabs.PrefillTabs = prefillTabs;
envelopesApi.UpdateDocumentTabs(accountId, envelopeId, "1", tabs);
请注意,您必须知道您的
envelopeId
,信封应处于草稿状态(尚未发送),并且您需要找到每个选项卡的 tabId
,并获取其值以匹配您在其中的值您的代码(上面代码中的tabIdValue
)。为此,您必须首先创建信封,调用以获取所有选项卡,然后执行此更新,只有这样您才能将信封更改为“已发送”状态。
顺便说一句,只需确保您知道,您可以设置不是预填充选项卡的选项卡的值。有些人混淆了这些选项卡,认为这是预填充选项卡值的唯一方法。