如何在同一DocuSign tab中为不同收件人设置不同预填充值
DocuSign API多收件人locked text tab预填充解决方案
问题原因
你遇到的取值覆盖是DocuSign的默认机制导致的:单个text tab的作用域仅绑定一个收件人,如果多个收件人共用同一个tabLabel的tab实例,后续传入的值会直接覆盖之前的赋值,无法实现不同收件人显示不同值的需求。
处理方案
按照以下规则配置即可解决问题:
- 为每个收件人单独创建独立的text tab实例,禁止多个收件人复用同一个tab对象。即使多个tab的显示位置、锁定状态、样式完全一致,也要分别初始化,每个tab关联对应收件人的
recipientId。 - 给不同收件人的tab配置完全相同的
xPosition、yPosition、documentId、pageNumber、locked等样式参数,视觉上多个tab会完全重叠,用户感知不到差异,同时每个收件人可以看到自己专属的预填充值。 - 建议给不同收件人的tab设置带唯一标识的
tabLabel,例如locked_company_1(对应recipientId为1的收件人),避免同个信封内出现tab标识冲突。
以下是简化的配置伪代码示例:
# 构造收件人1的专属locked tab recipient1_tab = Text( tab_label="locked_field_r1", value="收件人1的专属预填值", locked="true", x_position="150", y_position="300", document_id="1", page_number="1" ) recipient1 = Signer( email="r1@test.com", name="收件人1", recipient_id="1", tabs = Tabs(text_tabs=[recipient1_tab]) ) # 构造收件人2的同位置专属locked tab,独立实例 recipient2_tab = Text( tab_label="locked_field_r2", value="收件人2的专属预填值", locked="true", x_position="150", y_position="300", document_id="1", page_number="1" ) recipient2 = Signer( email="r2@test.com", name="收件人2", recipient_id="2", tabs = Tabs(text_tabs=[recipient2_tab]) )
特殊场景说明
如果你需要所有收件人看到的该字段值完全相同,不需要单独赋值,只需给任意一个收件人创建tab,将tab的shared属性设置为true即可,无需重复创建多个tab。
内容的提问来源于stack exchange,提问作者Aditi Chakrabarti
相关产品推荐
相关产品推荐

