C# DocuSign API-UpdateTabs未在文档中设置值
我在沙箱中工作,有一个模板保存在PDF中,我为其创建了字段。我试图根据一些条件预先填充这些字段,然后发送模板进行签名。我正在使用UpdateTabs方法,并为模板传递一个选项卡列表,包括TabId,我已经循环使用了它并更改了它的值 在此之后发送模板时,字段均为空。这是沙盒环境的限制,还是我做得不对 以下是创建模板草稿、抓取选项卡、更新选项卡、然后发送草稿的代码:C# DocuSign API-UpdateTabs未在文档中设置值,c#,docusignapi,C#,Docusignapi,我在沙箱中工作,有一个模板保存在PDF中,我为其创建了字段。我试图根据一些条件预先填充这些字段,然后发送模板进行签名。我正在使用UpdateTabs方法,并为模板传递一个选项卡列表,包括TabId,我已经循环使用了它并更改了它的值 在此之后发送模板时,字段均为空。这是沙盒环境的限制,还是我做得不对 以下是创建模板草稿、抓取选项卡、更新选项卡、然后发送草稿的代码: var roles = recipients .Select((role, i) => { va
var roles = recipients
.Select((role, i) =>
{
var templateRole = role.MapTo<TemplateRole>();
templateRole.RoutingOrder = $"{i + 1}";
return templateRole;
})
.ToList();
var envelope = new EnvelopeDefinition(
TemplateId: templateId,
TemplateRoles: roles,
Status: DocuSignConstants.Statuses.Created);
var envelopeApi = new EnvelopesApi(_docuSignClient.Client.Configuration);
var result = await envelopeApi
.CreateEnvelopeAsync(_docuSignContext.Account.AccountId, envelope)
.ConfigureAwait(false);
var template = await GetDocuSignTemplateById(templateId);
// Grabbing the tabs from the template and then updating the values in them
var tabs = await GetDocumentTabs(templateId, template.Documents.First().DocumentId);
SetDocumentTabValues(recordId, templateId, template.Documents.First().DocumentId, tabs);
var draftRecipients = await envelopeApi.ListRecipientsAsync(_docuSignContext.Account.AccountId,
result.EnvelopeId);
foreach (var signer in draftRecipients.Signers)
{
envelopeApi.UpdateTabs
(
_docuSignContext.Account.AccountId,
result.EnvelopeId,
signer.RecipientId,
tabs
);
}
envelopeApi.Update(_docuSignContext.Account.AccountId, result.EnvelopeId, new Envelope
{
Status = DocuSignConstants.Statuses.Sent
});
我尝试设置Value和OriginalValue字段,但它们都没有设置字段。它是空白的,右上角有一条警告,上面写着“仅限演示文档”,这让我想知道我是否不能在沙盒中设置选项卡
我发现了问题:我从模板文档中抓取选项卡,而不是对每个收件人调用ListTabs函数。一旦我抓取了这些标签,设置这些值就非常有效了
foreach (var signer in draftRecipients.Signers)
{
var signerTabs = await envelopeApi
.ListTabsAsync(_docuSignContext.Account.AccountId,
result.EnvelopeId,
signer.RecipientId);
SetDocumentTabValues(recordId, templateId, template.Documents.First().DocumentId, signerTabs);
envelopeApi.UpdateTabs
(
_docuSignContext.Account.AccountId,
result.EnvelopeId,
signer.RecipientId,
signerTabs
);
}
我解决了这个问题:我从模板的文档中抓取选项卡,而不是对每个收件人调用ListTabs函数。一旦我抓取了这些标签,设置这些值就非常有效了
foreach (var signer in draftRecipients.Signers)
{
var signerTabs = await envelopeApi
.ListTabsAsync(_docuSignContext.Account.AccountId,
result.EnvelopeId,
signer.RecipientId);
SetDocumentTabValues(recordId, templateId, template.Documents.First().DocumentId, signerTabs);
envelopeApi.UpdateTabs
(
_docuSignContext.Account.AccountId,
result.EnvelopeId,
signer.RecipientId,
signerTabs
);
}
伟大的谢谢你在这里为其他人发帖。非常有用!伟大的谢谢你在这里为其他人发帖。非常有用!