如何取消使用锚标记放置的复选框的分组

2024-03-31

我们在文档中使用 AnchorTags 将签名元素放入 PDF 文档中。到目前为止,诸如“SignHere”之类的签名元素已按预期工作,每个签名只需单击一下,即可正确放入文档中。我们现在尝试使用 AnchorTags 将复选框添加到这些文档中,但我们遇到了一些有关复选框如何 1. 标记和 2. 分组的问题。

根据 DocuSign 文档:

对于每组放置的字段,该组中所有字段的数据标签均相同。这对于收件人填写的字段类型(例如文本字段)非常重要。如果您保留相同的数据标签,则当收件人填写组中的任一字段时,所有其他类似字段都会自动填充相同的数据。

查看使用 API 创建复选框,我们可以使用这样的 JSON 对象来为文档中的复选框标记分配字符串值。这将找到字符串 BOR_2_CHK 并在每个实例处放置一个复选框。

PUT /v2/accounts/{accountId}/envelopes/{envelopeId}/recipients/{recipientId}/tabs

{
"checkboxTabs": [
    {
        "name": "",
        "tabLabel": "Checkbox1",
        "selected": "false",
        "shared": "false",
        "required": "false",
        "locked": "false",
        "documentId": "46688109",
        "recipientId": "50556292",
        "anchorString": "BOR_2_CHK",
        "anchorXOffset": "0",
        "anchorYOffset": "0",
        "anchorUnits": "pixels",
        "anchorCaseSensitive": "false",
        "anchorMatchWholeWord": "true",
        "anchorHorizontalAlignment": "left",
        "tabId": ""
    }]}

此调用对具有多个匹配 AnchorString 的文档的影响是,将在每个匹配位置放置一个复选框,当选中任何复选框时,它们都会被选中。通过为复选框文档分配“自动放置”规则,可以在 DocuSign 网站中轻松重现这一点。

这就是事情变得奇怪的地方,当使用 AnchorTags 放置复选框的文档,并且文档中存在多个 AnchorString 实例时,签名仪式将显示多个复选框,但 API 只报告有一个复选框文档上的选项卡。

在以下 JSON 示例中,文档中有 2 个锚字符串的 3 个实例,因此文档中总共有 6 个复选框。

{
"checkboxTabs": [
    {
        "name": "",
        "tabLabel": "Checkbox 0daa7d08-db75-43da-bcee-01a6451a34a5",
        "selected": "false",
        "shared": "false",
        "required": "false",
        "locked": "false",
        "documentId": "46688109",
        "recipientId": "50556292",
        "pageNumber": "1",
        "xPosition": "74",
        "yPosition": "253",
        "anchorString": "BOR_2_CHK",
        "anchorXOffset": "0",
        "anchorYOffset": "0",
        "anchorUnits": "pixels",
        "anchorCaseSensitive": "false",
        "anchorMatchWholeWord": "true",
        "anchorHorizontalAlignment": "left",
        "tabId": "d87fb774-2b4b-4c86-95b3-e5a730066874"
    },
    {
        "name": "",
        "tabLabel": "BOR_1_CHK",
        "selected": "false",
        "shared": "false",
        "required": "false",
        "locked": "false",
        "documentId": "46688109",
        "recipientId": "50556292",
        "pageNumber": "1",
        "xPosition": "74",
        "yPosition": "73",
        "anchorString": "BOR_1_CHK",
        "anchorXOffset": "0",
        "anchorYOffset": "0",
        "anchorUnits": "pixels",
        "anchorCaseSensitive": "false",
        "anchorMatchWholeWord": "true",
        "anchorHorizontalAlignment": "left",
        "tabId": "966c4273-d4a4-4acd-8ff5-08b27ba69c13"
    }
  ]
}

我的问题是,如何使用 DocuSign REST API 取消分组并使文档上的所有 6 个复选框独立工作?

DocuSign 网站有一个按钮,作为 AutoPlace 的一部分,称为“取消分组”,当在 UI 中单击该按钮时,API 会显示分配给 AnchorString 的每个复选框的复选框选项卡,但“ancorString”属性已全部被删除来自未分组的对象。我搜索了 DocuSign API 文档以及 StackOverflow,但没有找到任何可用于完成此操作的“取消分组”方法或属性。

我发现取消复选框分组的唯一方法是使用 EnvelopeTabs:Update 方法将其设置为 null 来删除对象的anchorTag 属性。这种方法是有限的,因为当我查询信封上的选项卡列表时,每个组复选框选项卡仅显示为单个对象,因此要取消组合 3 个复选框,我必须执行 3 次更新,并且 2 次获取作为第二个和第三个的 tabID复选框仅在其前身被更改后才可用。

通常,我们的文档最多可以有 6 个签名者,每个签名者在文档中具有 40 个或更多复选框元素,即单个信封有 240 个 GET/PUT 请求,并且在 4 个信封后将达到 DocuSign 速率限制。

在此先感谢您的帮助,


根据 Larry K 提供的信息,我能够导出一种用于“取消分组”使用 AnchorString 分配的选项卡的方法。

步骤 1 - 通过设置“includeAnchorTabLocations”选项获取信封信息。

            //Get envelope information
        EnvelopesApi envelopesApi = new EnvelopesApi();
        EnvelopesApi.ListTabsOptions options = new EnvelopesApi.ListTabsOptions();
        options.includeAnchorTabLocations = "True";
        Envelope envInfo = envelopesApi.GetEnvelope(accountId, envelopeID);

            //Get recipients on envelope
        Recipients recips = envelopesApi.ListRecipients(accountId, envelopeID);
        RecipientsUpdateSummary updateSummary = new RecipientsUpdateSummary();
            //List documents in envelope
        EnvelopeDocumentsResult docsList = envelopesApi.ListDocuments(accountId, envelopeID);

第 2 步 - 对于信封中的每个收件人,更新选项卡并删除 AnchorString。在我们的例子中,我们还希望每个选项卡都有独立的数据,因此 TabLabel 也更新为唯一值。

            //Remove AnchorString from tabs in documents
        foreach (Signer recip in recips.Signers)
        {
            Tabs tabs = envelopesApi.ListTabs(accountId, envInfo.EnvelopeId, recip.RecipientId, options);

            if (tabs.CheckboxTabs != null)
            {
                foreach ( Checkbox tab in recip.Tabs.CheckboxTabs)
                {
                    // Ungroup checkbox tabs by removing the AnchorString                      
                    tab.AnchorString = "";
                    tab.TabLabel = Guid.NewGuid().ToString();
                }
            }

            envelopesApi.UpdateTabs(accountId, envInfo.EnvelopeId, recip.RecipientId, tabs);
        }

最后说明

由于正在使用锚标记,因此信封最初应以“草稿”状态提交给 DocuSign,这允许 DocuSign 处理文档中的 AnchorStrings。处理后,每个选项卡将具有 X、Y 坐标,允许删除 AnchorString,同时仍保留文档中每个选项卡的原始位置。完成更新选项卡后,将信封信息更新为“已发送”状态,并触发 EnvelopeAPI 更新方法以提交更改。

        envInfo.PurgeState = null;
        envInfo.Status = "sent";
        envelopesApi.Update(accountId, envelopeID, envInfo, null);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何取消使用锚标记放置的复选框的分组 的相关文章

随机推荐

  • .c 文件中的 C99 内联函数

    我在 c 中定义了我的函数 没有标头声明 如下所示 inline int func int i return i 1 然后在下面的同一个文件中我使用它 i func i 在链接过程中 我得到了 对 func 的未定义引用 为什么 The i
  • Raspbian 的软浮动版本无法启动

    我在这里下载了 Raspbian 的硬浮动图像 http www raspberrypi org downloads http www raspberrypi org downloads 我将推荐的硬浮动映像复制到 SD 卡上 并且 Ras
  • VSCode 是否应该报告从编译中排除的 TS 文件的错误?

    我提交了这个错误报告 https github com Microsoft vscode issues 53733 issuecomment 403153218使用 VSCode 因为我已经排除了 spec编译中的文件 因为我不想将这些文件
  • 自动任务和静态任务有什么区别,为什么我们不能通过引用传递静态任务

    静态任务和自动任务有什么区别 program class ref int index value class holding values int ass array task assign value int value int inde
  • LinearSVC.coef_ 中的 n_classes 顺序

    我正在与 LinearSVC 合作将文本数据分为 3 类 输入数据是每个单词的 tfidf 分数 我有兴趣了解单词对分类的 贡献 第一个问题是我可以使用 coef 吗 文档指出 coef 数组 形状 n features 如果 n clas
  • 使用 cakephp 获取名称显示在下拉列表中

    我想在下拉列表中显示我们所有项目负责人的姓名 项目负责人只是公司的部分员工 这是我的表格 project leaders id hr employee id 1 18 projects id name project leader id 1
  • R 基本函数根据长度对字符串向量进行排序

    我想知道 R 基础包中是否已经有一个函数可以对字符串向量进行排序 同时考虑每个元素的长度 当然还有字典顺序 例如在一个sort调用一些包含您将拥有的年龄组的向量 v lt c 00 04 05 09 10 14 100 104 105 10
  • Matter.js 用于碰撞检测

    我对在这里提问还比较陌生 所以请耐心等待 我正在尝试使用 Matter js 作为主要物理引擎创建一个自上而下的驾驶游戏 我希望红色汽车与绿色方块相撞 然而 我仍然坚持知道如何在我的游戏中实现 Matter js 任何形式的回应将不胜感激
  • 如何在 R 中创建具有特定间隔的向量?

    我有一个关于创建向量的问题 如果我做a lt 1 10 a 的值为 1 2 3 4 5 6 7 8 9 10 我的问题是如何创建一个元素之间具有特定间隔的向量 例如 我想创建一个具有从 1 到 100 的值的向量 但仅以 5 为间隔进行计数
  • 如何将config.properties转换为键值对?

    我正在尝试将 java 属性文件转换为可以在 jquery 中使用的键值对 属性文件发送如下所示的信息 company1 Google company2 eBay company3 Yahoo 我想要这种形式 var obj company
  • Flutter - 主动检查是否按下了特殊键(如 ctrl)

    Question How to actively check if a certain decoration key is pressed like CTRL or SHIFT like if SomeKeyboardRelatedServ
  • 在 Spring Boot 应用程序的生产中使用 Tomcat

    作为 Spring Boot 的新手 我需要了解以下内容 因为我无法直接找到谷歌结果 他们在现实生活中真正使用哪些应用程序服务器来部署这些 Spring Boot 应用程序 Tomcat 真的被公司使用吗 如果是的话 他们是通过集群来实现的
  • 在 WCF 代理中实现 Ws 安全

    我已将基于轴的 wsdl 导入到 VS 2008 项目中作为服务参考 我需要能够传递安全详细信息 例如用户名 密码和随机数值 来调用基于轴的服务 我已经考虑过为 wse 做这件事 我知道世界讨厌它 那里没有问题 我对 WCF 的经验很少 但
  • 如何更新StackPanel的布局?

    问题是 如果您单击按钮并展开电话号码 堆栈面板和边框会展开 这很好 但如果您折叠它 堆栈面板和边框不会折叠
  • 使用 Robolectric 更改配置

    为了在配置更改时保留 AsyncTasks 我使用基于片段的解决方案和 setRetainInstance true 它托管每个 AsyncTask 并回调侦听 Activity 类似于此解决方案http www androiddesign
  • Typescript 属性“property”在类型“void | ”上不存在样本

    根据打字稿void is a 超类型 https www typescriptlang org docs handbook basic types html void of the null and undefined类型 因此 具有 vo
  • Silverlight 3.0 - 如何从 UserControl 访问 MainPage 控件值

    我需要从 MainPage 检索一些控件值到 UserControl 在此 UserControl 中 我需要能够获取 Frame ActualWidth 和 Frame ActualHeight 值 在本例中 Frame 元素位于 Mai
  • 如何在普通的非Android Java应用程序中使用NDK编译的JNI库?

    我有一个 JNI 库 供 Android 应用程序与 NDK 一起使用 我没有源代码 只是为某些拱门编译了 so 文件 我想在 64 位 x86 Linux PC 上的简单控制台 Java 应用程序中调用该库中的函数 我做了什么 我从 x8
  • Google Spanner 中的 TrueTime API 是什么?

    我多次尝试阅读该文档 但未能理解它 有人可以用通俗的语言解释一下吗 TrueTime 是 Google 提供的一个 API 可直接暴露时钟不确定性 相比标准日期时间库 https docs python org 2 library date
  • 如何取消使用锚标记放置的复选框的分组

    我们在文档中使用 AnchorTags 将签名元素放入 PDF 文档中 到目前为止 诸如 SignHere 之类的签名元素已按预期工作 每个签名只需单击一下 即可正确放入文档中 我们现在尝试使用 AnchorTags 将复选框添加到这些文档