【问题标题】:custom list field not showing on envelope with Docusign API使用 Docusign API 的信封上未显示自定义列表字段
【发布时间】:2014-08-29 15:02:04
【问题描述】:

我在通过 API 将自定义列表字段添加到信封时遇到问题。问题实际上是列表字段没有出现在信封上的形式,但是当我发出“GET”请求以检索信封上的所有自定义字段时,它显示自定义字段在那里。下面是添加自定义列表字段的函数,后跟来自 DocuSign 的 xml 字符串响应。

    Private Sub btnTEST_Click(sender As System.Object, e As System.EventArgs) Handles btnTEST.Click
    Dim envelopeId As String = txtEnvelopeID.Text
    Dim url As String = baseUrl & "/envelopes/" & envelopeId & "/custom_fields"
    Dim xmlString As String =
        "<customFields>" & _
            "<listCustomFields>" & _
                "<listCustomField>" & _
                    "<name>Test Custom List</name>" & _
                    "<value>Donatello</value>" & _
                    "<show>true</show>" & _
                    "<required>true</required>" & _
                    "<listItems>" & Chr(34) & "Donatello" & Chr(34) & ", " & Chr(34) & "Michaelangelo" & Chr(34) & ", " & Chr(34) & "Raphael" & ", " & Chr(34) & "Leonardo" & Chr(34) & "</listItems>" & _
                "</listCustomField>" & _
            "</listCustomFields>" & _
        "</customFields>"
    basicRequestResponse("POST", url, xmlString)
End Sub

检索信封上的自定义字段时 DocuSign 的 XML 响应。

 <customFields xmlns="http://www.docusign.com/restapi" xmlns:i="http://www.w3.or/2001/XMLSchema-instance">
      <listCustomFields>
          <listCustomField>
              <fieldId>22047120</fieldId> 
              <name>Test List</name> 
              <required>true</required> 
              <show>true</show> 
              <value>Test 1</value> 
              <listItems xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
                  <a:string /> 
              </listItems>
          </listCustomField>
          <listCustomField>
              <fieldId>22049808</fieldId> 
              <name>Test Custom List</name> 
              <required>true</required> 
              <show>true</show> 
              <value>Donatello</value> 
              <listItems xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
                  <a:string /> 
              </listItems>
          </listCustomField>
    </listCustomFields>
    <textCustomFields>
        <textCustomField>
            <fieldId>21991323</fieldId> 
            <name>Leet Test</name> 
            <required>true</required> 
            <show>true</show> 
            <value>1337</value> 
        </textCustomField>
  </textCustomFields>

我意识到这可能是 DocuSign API 中的一个错误,但想把它放在这里看看是否有不同的答案。

【问题讨论】:

    标签: vb.net docusignapi


    【解决方案1】:

    您的问题是由于您在“创建自定义信封字段”请求中错误地设置了 - 因此 DocuSign 正在创建自定义(列表)信封字段,但忽略您在请求中指定的列表项值。

    以下是添加(列表)自定义信封字段的有效 XML 请求结构示例:

    POST https://{{env}}.docusign.net/restapi/{{version}}/accounts/{{acctId}}/envelopes/{{envelopeId}}/custom_fields
    
    <customFields>
        <listCustomFields>
            <listCustomField>
              <name>TestCustomList</name>
              <value>Donatello</value>
              <show>true</show>
              <required>true</required>
              <listItems>
                <string>Donatello</string>
                <string>Michaelangelo</string>
                <string>Raphael</string>
                <string>Leonardo</string>
              </listItems>
          </listCustomField>
      </listCustomFields>
    </customFields>
    

    请注意, 元素中的内容是一系列 元素——每个元素代表一个列表值。

    提交上述请求后,我可以执行“获取自定义信封字段”请求 (GET https://{{env}}.docusign.net/restapi/{{version}}/accounts/{{acctId}}/envelopes/{{envelopeId}}/custom_fields) 并看到响应确实包含我在之前的“创建信封自定义字段”中指定的所有列表值请求:

    <customFields xmlns="http://www.docusign.com/restapi" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
        <listCustomFields>
            <listCustomField>
                <fieldId>22062595</fieldId>
                <name>TestCustomList</name>
                <required>true</required>
                <show>true</show>
                <value>Donatello</value>
                <listItems 
                    xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
                    <a:string>Donatello</a:string>
                    <a:string>Michaelangelo</a:string>
                    <a:string>Raphael</a:string>
                    <a:string>Leonardo</a:string>
                </listItems>
            </listCustomField>
        </listCustomFields>
    </customFields>
    

    【讨论】:

    • 感谢您的帮助!这确实给了我需要的结果。此外,我会将其提交给 DocuSign 以更新他们的文档。目前他们的 REST API 指南说列表项应该“用引号输入,用逗号分隔。”
    • 跟进 DocuSign 更新文档的好主意。请记住,如果您对请求使用 JSON 格式,那么指定“带引号,用逗号分隔”的字符串值列表将是正确的处理方式 - 只有在使用 XML 格式时才需要使用 元素来表示一个字符串值(如上所述)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多