带有Iterator的Quickbooks CustomerQuery返回重复记录

时间:2013-01-03 17:48:14

标签: intuit-partner-platform

我有一个奇怪的问题,我不确定错误在哪里

我正在使用C#,在使用针对Customer对象的过滤器运行查询时,我得到了一系列奇怪的结果

如果我设置的过滤器应该返回8条记录,那么我的实现将返回8,8,3,1,1,1条记录(按顺序,在每个后续调用中,所有这些都是重复的)...

这就是我实现迭代器的方法

var customerQuery = new CustomerQuery()
            {
                ChunkSize = "8",
                Item = Guid.NewGuid().ToString("N"),

                IncludeFinancialIndicator = false,
                IncludeFinancialIndicatorSpecified = true,
                MinimumBalanceSpecified = true,
                MinimumBalance = 92,
                SynchronizedFilterSpecified = true,
                SynchronizedFilter = SynchronizedFilterEnumType.Synchronized,

             };
        var results = new List<Customer>();
        int count;
        //Loop until find all the results.
        do
        {
            IEnumerable<Customer> partialResult = customerQuery.ExecuteQuery<Customer>(context);
            count = partialResult.Count();
            //First pass here returns 8 records
            //Second pass returns same 8 records again
            //third pass returns 3 records
            //Three more passes with 1 record each

            results.AddRange(partialResult);
        } while (count > 0);

我做错了什么或遗失了什么?

谢谢!

编辑:

这是实现分页选项的代码....

var customerSet = new List<Customer>();
        List<Customer> customerQueryResult = null;
        int startPage = 1;
        var qbdCustomerQuery = new CustomerQuery();
        do
        {
            qbdCustomerQuery.ChunkSize = "10";
            qbdCustomerQuery.MinimumBalanceSpecified = true;
            qbdCustomerQuery.MinimumBalance = 92;
            qbdCustomerQuery.ItemElementName = ItemChoiceType4.StartPage;
            qbdCustomerQuery.Item = startPage.ToString();
            customerQueryResult = qbdCustomerQuery.ExecuteQuery<Customer>(context).ToList();
            if (customerQueryResult.Count > 0) { customerSet.AddRange(customerQueryResult); }
            startPage++;
        } while (customerQueryResult.Count > 0);

如果我将ChunkSize设置为“100”,我会获得8个预期记录,但是当尝试使用ChunkSize =“10”运行它时,我得到8,8,1(重复记录)

0 个答案:

没有答案