C# 数据合并问题

C# 数据合并问题,c#,docusignapi,C#,Docusignapi,我很难使用c#库将代码中的数据导入模板 我有一个模板设置,我使用在线模板编辑工具添加了一个文本框。我试图用文本框的数据标签更新它的值。能给我举个例子吗 这是我当前代码的片段: Text name = new Text(); name.TabLabel = "Data Label"; name.Value = "My Name"; tRole.Tabs = new EnvelopeRecipientTabs(); tRole.Tabs.TextTabs = new List<Text>

我很难使用c#库将代码中的数据导入模板

我有一个模板设置,我使用在线模板编辑工具添加了一个文本框。我试图用文本框的数据标签更新它的值。能给我举个例子吗

这是我当前代码的片段:

Text name = new Text();
name.TabLabel = "Data Label";
name.Value = "My Name";
tRole.Tabs = new EnvelopeRecipientTabs();
tRole.Tabs.TextTabs = new List<Text>();
tRole.Tabs.TextTabs.Add(name);

List<TemplateRole> rolesList = new List<TemplateRole>() { tRole };
envDef.TemplateRoles = rolesList;
数据标签


收件人

name.TabLabel属性需要与模板中使用的标签完全匹配。例如,如果您的标记设置如下:

您可以使用
name.TabLabel=“Text1”。设置
name.Value=“我的名字”然后将使用“我的名字”填充该标记,假设您的模板被引用,并且您的签名者被映射到模板角色

从填充了标记的模板发送的代码示例如下。假设签名者角色名为“签名者1”,标记标签为“文本1”

//定义签名者
TemplateRole signer1=新的TemplateRole();
signer1.Name=“示例用户”;
签名者1.Email=”user@example.com";
signer1.RoleName=“Signer 1”;
//填充封套对象
信封定义信封定义=新信封定义();
EnvelopedDefinition.TemplateId=“xxx yyy zzz”//替换为模板ID
信封定义。状态=“已创建”//生成草稿,而不是立即发送
//创建文本选项卡对象
Text text1=新建DocuSign.eSign.Model.Text();
text1.TabLabel=“text1”;
text1.Value=“示例文本”;
//将选项卡应用于签名者
signer1.Tabs=新选项卡();
signer1.Tabs.TextTabs=新列表();
signer1.Tabs.texttab.Add(text1);
//应用签名者
List templateroles=newlist(){signer1};
EnvelopedDefinition.TemplateRoles=TemplateRoles;
//创建信封API对象
EnvelopesApi模板=新的EnvelopesApi(apiClient.Configuration);
//执行信封生成
信封摘要响应=template.CreateEnvelope(accountId,EnvelopedDefinition);

您正在以
已创建
状态创建信封,签名人将无法看到
草稿
信封的数据标签值,因为签名人无权访问
草稿
信封的信封。您需要创建/更新状态为
sent
的信封,一旦签名者开始签名仪式,他/她将看到预填充的文本选项卡值。

我会要求您在点击DS平台后捕获API日志,它将有实际的JSON请求,发送给DocuSign。您可以通过以下步骤捕获它,如前所述,一旦捕获,然后将其粘贴到您的qs上,这样我们就可以看到实际问题。我已经用JSON更新了问题,谢谢分享!我试过了,但还是不走运。我用更新的代码更新了我的问题。谢谢你的帮助,我感觉我现在离你很近了@Eric-我可以在内部进行检查,您的模板角色似乎有一个烧录的名称和电子邮件,因此您在API调用中添加的收件人无法映射到该名称和电子邮件。清空名称/电子邮件,使模板角色成为占位符,应该可以使用。再次感谢,但如果我没有为模板设置收件人,则不允许我映射字段。即使我确实想通过代码将其发送给我所在的人。角色需要存在并且需要有一个角色名,但模板中不应包含收件人姓名或电子邮件。谢谢Drew,您可以在草稿中预先填充标记,然后在发送信封之前查看这些值。您所指的是发件人视图,而不是签名者视图。我指的是签字人的观点,即签字人看不到信封草稿的任何东西,因为它还没有到达他手中。让我通过明确说出签名者的观点来编辑我的答案。
//define signer            
TemplateRole signer1 = new TemplateRole();
signer1.Name = "John Doe";
signer1.Email = "BOB@AOL.COM";
signer1.RoleName = "Owner";

//populate envelope object
EnvelopeDefinition envelopeDefinition = new EnvelopeDefinition();
envelopeDefinition.TemplateId = "bd417d79-2a0b-4d76-8970-e2d18451c2f5";
envelopeDefinition.Status = "created";
envelopeDefinition.EmailSubject = "eSign";

//create text tab object
Text text1 = new Text();
text1.TabLabel = "FullName";
text1.Value = "EP";

//apply tab to signer
signer1.Tabs = new Tabs();
signer1.Tabs.TextTabs = new List<Text>();
signer1.Tabs.TextTabs.Add(text1);

//apply signer 
List<TemplateRole> templateroles = new List<TemplateRole>() { signer1 };
envelopeDefinition.TemplateRoles = templateroles;

// execute it
EnvelopesApi envelopesApi = new EnvelopesApi();
EnvelopeSummary envelopeSummary = await envelopesApi.CreateEnvelopeAsync(account.accountId, envelopeDefinition);
return envelopeSummary.EnvelopeId;
POST https://demo.docusign.net:7801/restapi/v2/accounts/4794997/envelopes

TraceToken: fe59bc72-61f3-4c07-9eeb-0d53d558437a
Timestamp: 2018-05-21T18:36:48.4260253Z

Content-Length: 255
Content-Type: application/json
Connection: Keep-Alive
Accept: application/json
Host: demo.docusign.net
X-DocuSign-SDK: C#
X-DocuSign-Authentication: {"Username":"[omitted]", "Password":"[omitted]", "IntegratorKey":"[omitted]"}
x-ms-request-root-id: dba2cd44-40b5e3581ae1a62d
x-ms-request-id: |dba2cd44-40b5e3581ae1a62d.2.
Request-Id: |dba2cd44-40b5e3581ae1a62d.2.
X-SecurityProtocol-Version: TLSv1.2
X-SecurityProtocol-CipherSuite: ECDHE-RSA-AES256-GCM-SHA384
x-forwarded-for: 24.1.74.183

{"emailSubject":"eSign With Payment From API","status":"created","templateId":"bd417d79-2a0b-4d76-8970-e2d18451c2f5","templateRoles":[{"email":"BOB@AOL.COM","name":"John Doe","roleName":"Owner","tabs":{"textTabs":[{"tabLabel":"FullName","value":"EP"}]}}]}
201 Created
Content-Type: application/json; charset=utf-8
X-DocuSign-TraceToken: fe59bc72-61f3-4c07-9eeb-0d53d558437a

{
  "envelopeId": "13fb444c-79cc-43bb-b6d4-3a6241c84ebc",
  "uri": "/envelopes/13fb444c-79cc-43bb-b6d4-3a6241c84ebc",
  "statusDateTime": "2018-05-21T18:36:46.9570000Z",
  "status": "created"
}
        //define signer            
        TemplateRole signer1 = new TemplateRole();
        signer1.Name = "Example User";
        signer1.Email = "user@example.com";
        signer1.RoleName = "Signer 1";

        //populate envelope object
        EnvelopeDefinition envelopeDefinition = new EnvelopeDefinition();
        envelopeDefinition.TemplateId = "xxx-yyy-zzz"; // Replace with template ID
        envelopeDefinition.Status = "created"; //generates draft instead of immediately sending

        //create text tab object
        Text text1 = new DocuSign.eSign.Model.Text();
        text1.TabLabel = "Text1";
        text1.Value = "Example Text";

        //apply tab to signer
        signer1.Tabs = new Tabs();
        signer1.Tabs.TextTabs = new List<DocuSign.eSign.Model.Text>();
        signer1.Tabs.TextTabs.Add(text1);

        //apply signer 
        List<TemplateRole> templateroles = new List<TemplateRole>() { signer1 };
        envelopeDefinition.TemplateRoles = templateroles;

        //create EnvelopesApi object
        EnvelopesApi template = new EnvelopesApi(apiClient.Configuration);

        //execute envelope generation
        EnvelopeSummary response = template.CreateEnvelope(accountId, envelopeDefinition);