You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DocuSign SOAP API为PDF添加文本框/下拉列表报错求解

解决DocuSign SOAP API添加文本框和下拉列表的报错问题

嘿,这个坑我之前踩过!你之所以遇到那个'Text' is not a valid value for TabTypeCode的报错,核心原因是混淆了DocuSign REST API和SOAP API的Tab类型命名规则——REST里用的'Text'在SOAP API的TabTypeCode枚举里根本不是有效值,SOAP有自己的一套枚举常量。

正确的文本框(TextArea)代码实现

SOAP API中,文本框对应的Tab类型是'TextTab',而不是REST里的'Text'。下面是修正后的代码:

// 创建文本框Tab(对应TextArea)
DocuSignAPI.Tab textTab = new DocuSignAPI.Tab();
textTab.Type_x = 'TextTab'; // 这里必须用TextTab,替换原来的'Text'
textTab.RecipientID = '1'; // 建议用字符串类型,避免SOAP序列化时的类型问题
textTab.DocumentID = '1';
textTab.AnchorTabItem = new DocuSignAPI.AnchorTab();
textTab.AnchorTabItem.AnchorTabString = 'bio:';

// 可选:设置文本框的尺寸和必填属性
textTab.Width = 250;
textTab.Height = 100;
textTab.Require = 'true'; // 设置为必填项

正确的下拉列表(Picklist)代码实现

下拉列表在SOAP API中对应的类型是'ListTab',同时需要手动添加下拉选项的ListItem对象:

// 创建下拉列表Tab
DocuSignAPI.Tab listTab = new DocuSignAPI.Tab();
listTab.Type_x = 'ListTab';
listTab.RecipientID = '1';
listTab.DocumentID = '1';
listTab.AnchorTabItem = new DocuSignAPI.AnchorTab();
listTab.AnchorTabItem.AnchorTabString = 'department:';

// 初始化下拉选项集合
listTab.ListItems = new DocuSignAPI.ArrayOfListItem();
listTab.ListItems.ListItem = new DocuSignAPI.ListItem[3];

// 添加第一个选项
listTab.ListItems.ListItem[0] = new DocuSignAPI.ListItem();
listTab.ListItems.ListItem[0].Text = '技术部'; // 显示给用户的文本
listTab.ListItems.ListItem[0].Value = 'tech'; // 后台存储的值

// 添加第二个选项
listTab.ListItems.ListItem[1] = new DocuSignAPI.ListItem();
listTab.ListItems.ListItem[1].Text = '市场部';
listTab.ListItems.ListItem[1].Value = 'marketing';

// 添加第三个选项
listTab.ListItems.ListItem[2] = new DocuSignAPI.ListItem();
listTab.ListItems.ListItem[2].Text = '人事部';
listTab.ListItems.ListItem[2].Value = 'hr';

listTab.Require = 'true'; // 设置为必填项

将Tabs添加到Envelope中

最后把这两个Tab放入Envelope的Tabs集合里:

// 初始化Tabs数组
envelope.Tabs = new DocuSignAPI.ArrayOfTab();
envelope.Tabs.Tab = new DocuSignAPI.Tab[2];
envelope.Tabs.Tab[0] = textTab;
envelope.Tabs.Tab[1] = listTab;

额外注意事项

  • 确保RecipientID和DocumentID使用字符串类型:SOAP API对数据类型的校验很严格,用数字可能会导致XML序列化错误。
  • 锚点字符串要准确:确认PDF中确实存在'bio:'和'department:'这样的锚点文本,否则Tab会无法定位。
  • 自定义其他属性:可以根据需求添加TabLabel(用于后续识别Tab)、DefaultValue(文本框默认值或下拉列表默认选中项)等属性。

内容的提问来源于stack exchange,提问作者Amer Bearat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:35:42