IPP .Net V2 CustomerQuery.ExecuteQuery不会返回超过500个项目

时间:2014-01-16 16:40:34

标签: intuit-partner-platform intuit

我正在使用IPP .Net Dev Kit的2.1.12.0版本,并且遇到问题,当我使用ExecuteQuery返回QBD实例的所有客户列表时,它只会返回前500个。

在IPP文档中,它讨论了使用ChunkSize和StartPage,但.net库只允许您指定ChunkSize。

使用此版本的.net库时,有没有办法让ExecuteQuery返回超过500条记录?

var cq = new CustomerQuery() { ActiveOnly = true };
var results = cq.ExecuteQuery<Ipp.Customer>(context);

// results will never contain more than 500.

1 个答案:

答案 0 :(得分:0)

我找到了问题的解决方案,IPP .net SDK可以让你指定IteratorId。事实证明,CustomerQuery / QueryBase上的Item属性表示IteratorId XML字段。如果未指定Item / IteratorId,则调用ExecuteQuery将始终返回前500个结果。

下面的工作代码示例:

        var cq = new CustomerQuery() { ActiveOnly = true };

        // this fills in the IteratorId that is documented on the IPP website
        // if you leave this out, the loop below will run infinitely if there 
        // are >= 500 records returned.
        cq.Item = Guid.NewGuid().ToString("N");

        ReadOnlyCollection<Ipp.Customer> cqr = null;

        do
        {
            cqr = cq.ExecuteQuery<Ipp.Customer>(context);

            // do something with the results returned here.
        }
        while (cqr.Count == 500);