对RequestStatusesWithDocumentFields的后续调用返回零结果

时间:2014-02-22 23:37:07

标签: docusignapi

我们正在使用DocuSign SOAP API 3.0,并在我们的应用程序中使用以下方法:

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获取信封的“新清单”(即使它们过去可能已被检索过),我们谈谈这个?

1 个答案:

答案 0 :(得分:0)

我从未亲自使用过这种SOAP操作,但我知道DocuSign在轮询信封状态方面确实存在一些限制,就允许轮询状态的频率而言。 DocuSign API最佳实践指南包含有关这些限制的详细信息:http://www.docusign.com/sites/default/files/SOAP_REST_API_Best_Practices_with_Connect_Guide.pdf

如果可能,最佳做法是使用DocuSign Connect(http://www.docusign.com/sites/default/files/DocuSign_Connect_Service_Guide.pdf)自动接收信封状态更改的事件通知,而不是使用API​​请求轮询状态。

相关问题