2014-02-22 54 views
0

我們使用的DocuSign SOAP API 3.0並在我們的應用程序下面的方法:後續調用RequestStatusesWithDocumentFields返回結果爲零

public EnvelopeStatus[] GetDocuSignEnvelopes(DateTime beginDateTime) 
    { 
     var envelopeStatusFilter = new EnvelopeStatusFilter 
     { 
      AccountId = _client.DocuSignAccountId, 
      BeginDateTime = new EnvelopeStatusFilterBeginDateTime { Value = beginDateTime }, 
      Statuses = new[] { EnvelopeStatusCode.Completed } 
     }; 
     var envelopeStatuses = _docuSignApi.RequestStatusesWithDocumentFields(envelopeStatusFilter); 
     return envelopeStatuses.EnvelopeStatuses.OrderBy(x => x.Completed).ToArray(); 
    } 

在創建並填寫信封進行測試,此代碼的工作,因爲它應該返回一個包含一個信封的EnvelopeStatus數組。但是,如果我們立即再次調用此方法,則不會返回相同的信封。實際上,該陣列是空的。而且,是的,我們確保beginDateTime在每次迭代創建信封之前設置爲一個值。

因此,我的問題是這樣的...... DocuSign SOAP API是否記錄了之前通過API檢索到的信封,然後將它們從結果集中排除?如果不是,那麼爲什麼後續調用具有相同的參數值不會返回相同的結果?

如果此方法排除結果,那很好,但我需要知道這個排除的參數才能在我們的代碼中正確處理它們。例如,它是否根據特定的集成商密鑰,特定時間範圍內的一定數量的呼叫排除?基本上,排除的結果會在什麼情況下被添加回結果集?

接下來,如果我們在收到信封后遇到問題,並且我們確實需要從DocuSign API獲取信封的「新列表」(即使它們可能已在過去檢索過),但如何我們會去做這件事嗎?

回答

0

我從來沒有親自使用過這個SOAP操作,但是我知道DocuSign在輪詢信封狀態時確實施加了一些限制,就允許輪詢狀態的頻率而言。的的DocuSign API最佳實踐指南包含有關這些限制的詳細信息:http://www.docusign.com/sites/default/files/SOAP_REST_API_Best_Practices_with_Connect_Guide.pdf

如果可能的話,最好的做法是使用API​​請求使用的DocuSign連接(http://www.docusign.com/sites/default/files/DocuSign_Connect_Service_Guide.pdf)來自動接收事件通知重新信封狀態的變化,而不是輪詢狀態。