C#调用DocuSign模板创建信封时预定义字段不显示问题求助
DocuSign C#调用模板不显示预定义字段解决方案
排查优先级
你遇到的问题本质是代码逻辑和模板配置的匹配关系异常,导致模板中绑定给对应角色的字段没有正确加载,按以下顺序排查即可:
- 角色名必须完全匹配
代码中TemplateRole的RoleName属性值,必须和DocuSign后台模板中配置的接收方角色名完全一致,包括大小写、拼写、前后空格、特殊字符。你当前代码用的角色名是Candidat和EnCopie,请逐字符核对后台模板的角色配置,只要有一点差异就会匹配失败,模板绑定给对应角色的字段就不会渲染。 - 不要给TemplateRole的Tabs属性赋值
如果你代码中存在给tRoleSigner.Tabs或tRoleCC.Tabs赋值的逻辑(哪怕赋值为空对象),都会直接覆盖模板中预定义的所有字段。删除所有给TemplateRole.Tabs赋值的代码,DocuSign会自动加载模板中绑定给对应角色的字段。 - 确认模板字段分配正确
登录DocuSign后台打开对应模板,检查所有预定义的签署/填写字段,是否都分配给了对应的角色(比如候选人填写的字段必须绑定给Candidat角色,不能绑定给其他角色或模板创建者),绑定错误的字段不会出现在对应接收人的签署页面。 - 确认模板已正式发布
草稿状态的模板调用时可能出现字段加载异常,登录DocuSign后台确认模板状态为已发布,不是草稿。 - 复合模板配置检查(如果用到)
如果你后续使用了CompositeTemplate构建信封,不要手动设置apply_template_tabs = false,该参数默认值为true,设为false会禁用所有模板预定义字段。
修正后代码示例(无冗余配置)
TemplateRole tRoleSigner = new TemplateRole(); tRoleSigner.Email = DSConfig.Signer1Email; tRoleSigner.Name = DSConfig.Signer1Name; // 确保此处角色名和后台模板完全一致 tRoleSigner.RoleName = "Candidat"; TemplateRole tRoleCC = new TemplateRole(); tRoleCC.Email = DSConfig.Cc1Email; tRoleCC.Name = DSConfig.Cc1Name; // 确保此处角色名和后台模板完全一致 tRoleCC.RoleName = "EnCopie"; List<TemplateRole> rolesList = new List<TemplateRole>() { tRoleSigner, tRoleCC }; EnvelopeDefinition envelopeDefinition = new EnvelopeDefinition { EmailSubject = "Signatures des documents relatifs à une promesse d'embauche", TemplateRoles = rolesList, TemplateId = DSConfig.TemplateID, Status = "sent" };
内容的提问来源于stack exchange,提问作者Cabanis Pierre
相关产品推荐
相关产品推荐

