【问题标题】:How to work with custom fields using a template如何使用模板处理自定义字段
【发布时间】:2014-10-02 15:01:14
【问题描述】:

我一直在使用 API,当我尝试使用自定义字段将信息传递到可以帮助我追踪它的信封时,出现了一个问题。 据我了解,它们是某种元数据,无论是否可见,创建时都与我们创建和存储的每个模板相关联(serverTemplates)。 我已经能够使用两个不同的文档创建我的模板,并且我在发送信封时使用 API 添加了自定义选项卡。 不幸的是,我无法得到的是自定义字段。 我按照以下方式创建了它们:https://www.docusign.co.uk/support/classic/documentation/cdse-admin-guide/account-admin/envelope-custom-fields 但我无法覆盖 API 中的值。 这是我使用的 XML 调用的一部分:

body = "<envelopeDefinition xmlns=\"http://www.docusign.com/restapi\">" +
        "<accountId>" + accountId + "</accountId>" +
        "<status>sent</status>" +    
        "<emailSubject>DocuSign API Call - Signature request from template</emailSubject>" +

        "<customFields>" + 
        "<textCustomFields>" +
            "<textCustomField>" +
                "<fieldId>1</fieldId>" +
                "<name>agreement_id</name>" +
                "<required>true</required>" +
                "<show>true</show>" +
                "<value>" + agreementId + "</value>" +
            "</textCustomField>" +
            "<textCustomField>" +
                "<fieldId>2</fieldId>" +                                            
                "<name>party_name</name>" +
                "<required>true</required>" +
                "<show>true</show>" +
                "<value>" + partyName + "</value>" +
            "</textCustomField>" +
        "</textCustomFields>" + 
        "</customFields>" +

        "<compositeTemplates>" +
           "<compositeTemplate>" +
              "<serverTemplates>" +
                 "<serverTemplate>" +
                    "<sequence>1</sequence>" +
                    "<templateId>" + templateId + "</templateId>" +
                 "</serverTemplate>" +
              "</serverTemplates>" +
              "<inlineTemplates>" +
                 "<inlineTemplate>" +
                    "<sequence>2</sequence>" +
                     "<recipients>" +
                        "<signers>" +
                            "<signer>" +
                               "<email>" + email + "</email>" +
                               "<name>" + recipientName + "</name>" +
                               "<recipientId>1</recipientId>" +
                               "<roleName>" + roleName + "</roleName>" +                                     


                               "<tabs>" + 
                                   "<textTabs>" + 
                                       "<text>" +
                                           "<tabLabel>agreement_id</tabLabel>" +
                                           "<value>" + agreementId + "</value>" +
                                           "<xPosition>220</xPosition>" +
                                           "<yPosition>348</yPosition>" +
                                           "<documentId>2</documentId>" +
                                           "<pageNumber>1</pageNumber>" +
                                       "</text> " +

                                       "<text>" +
                                           "<tabLabel>party_name</tabLabel>" +
                                           "<value>" + partyName + "</value>" +
                                           "<xPosition>130</xPosition>" +
                                           "<yPosition>142</yPosition>" +
                                           "<documentId>2</documentId>" +
                                           "<pageNumber>1</pageNumber>" +
                                       "</text> " +
                                   "</textTabs> " +
                               "</tabs>" + 

                            "</signer>" +
                        "</signers>" +                       
                     "</recipients>" +

                 "</inlineTemplate>" +
              "</inlineTemplates>" +
           "</compositeTemplate>" +
        "</compositeTemplates>" +           
        "</envelopeDefinition>";

有人可以建议吗?

谢谢

【问题讨论】:

  • 你能澄清一下这个问题吗?您是否尝试使用 API 访问信封自定义字段 (ECF)?我确实知道,如果您有一个定义了 ECF 的模板,甚至在帐户级别,如果您在 API 调用中为该信封指定任何 ECF,那么只有 API 中指定的 ECF 才会生效。就像模板/帐户级别的 ECF 从未存在过,所以在这种情况下 API 胜过一切。
  • 嗨,路易斯,你明白了。我正在尝试使用 API 访问 ECF。我已经使用“agreement_id”和“party_name”作为名称来定义它们,勾选“Required”和“text”类型。在我上面提供的代码中,我试图访问它们并插入一个自定义值,我将使用它来跟踪这个信封。如果还不清楚,请告诉我,感谢您的帮助。
  • 此外,我应该提到 ECF 已正确创建并由模板使用,因为如果我使用 DocuSign UI 创建和发送信封,我返回的所有信息都是正确的。

标签: xml rest templates docusignapi custom-fields


【解决方案1】:

在复合模板表单中,您似乎必须在内联模板中定义自定义字段。使用以下请求,我定义了三个字段。一种是在信封信息级别,并没有反映在 DocuSign 系统中。我在 inlineTemplate 中又定义了两个。一种是在帐户级别(在我的首选项中)配置的,另一种不是。创建信封后,两者都显示在 UI 中(UI 正确地尊重新创建的字段上的“显示”标志)。

<envelopeDefinition xmlns="http://www.docusign.com/restapi">
  <emailSubject>DocuSign API - Signature Request on Document</emailSubject>
  <status>sent</status>
  <customFields>
    <textCustomFields>
      <textCustomField>
        <fieldId>1</fieldId>
        <name>Crazy Cool Custom Field Number 3</name>
        <required>true</required>
        <show>true</show>
        <value>67890</value>
      </textCustomField>
    </textCustomFields>
  </customFields>
  <compositeTemplates>
    <compositeTemplate>
      <serverTemplates>
        <serverTemplate>
          <sequence>1</sequence>
          <templateId>A32AA85C-EE69-4ABB-BE67-3B98A9FDC901</templateId>
        </serverTemplate>
      </serverTemplates>
      <inlineTemplates>
        <inlineTemplate>
          <customFields>
            <textCustomFields>
              <textCustomField>
                <fieldId>1</fieldId>
                <name>agreement_id</name>
                <required>true</required>
                <show>true</show>
                <value>12345</value>
              </textCustomField>
              <textCustomField>
                <fieldId>1</fieldId>
                <name>Crazy Custom Inline Field</name>
                <required>true</required>
                <show>true</show>
                <value>54321</value>
              </textCustomField>
            </textCustomFields>
          </customFields>
          <sequence>2</sequence>
          <recipients>
            <signers>
              <signer>
                <recipientId>1</recipientId>
                <email>me@u.them</email>
                <name>Bob Jones</name>
                <roleName>Signer1</roleName>
                <tabs>
                  <textTabs>
                    <text>
                      <tabLabel>NDACompany</tabLabel>
                      <value>12345</value>
                      <xPosition>100</xPosition>
                      <yPosition>100</yPosition>
                      <documentId>1</documentId>
                      <pageNumber>1</pageNumber>
                    </text>
                  </textTabs>
                </tabs>
              </signer>
            </signers>
          </recipients>
        </inlineTemplate>
      </inlineTemplates>
    </compositeTemplate>
  </compositeTemplates>
</envelopeDefinition>

【讨论】:

  • 感谢 Jeff,现在可以使用了!我肯定为这些 ECF 使用了错误的级别定义。
猜你喜欢
  • 2017-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-26
  • 2019-05-17
  • 1970-01-01
  • 2021-05-07
相关资源
最近更新 更多