2014-08-29 56 views
0

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

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中的一个错误,但希望把它在这里,看看是否有不同的答案。

回答

0

您的问题正在被事实,你设置< listItems中>在不正确导致的“创建自定义信封字段”请求 - 因此是的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> 

注意,< listItems中内的内容>元件是一系列<串>的元素 - 每个元素代表一个列表值。

在提交上面的请求之后,我可以执行“获取自定义信封字段”请求(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> 
+0

谢谢你的帮助!这确实给了我需要的结果。另外,我将把这个提交给DocuSign以更新他们的文档。目前他们的REST API指南指出,列表项应该“用引号输入,并用逗号分开。” – Litmas 2014-09-02 14:31:12

+0

好主意跟进DocuSign管理更新文档。请记住,如果您的请求使用的是JSON格式,那么指定一个字符串值列表“带引号,用逗号分隔”将是正确的做事方式 - 只是在使用需要使用的XML格式时用于表示字符串值的元素(如上所述)。 – 2014-09-02 18:08:05

相关问题