0

顧客のクエリを介してオンラインでクイックブックをクエリすると、重複が返され続けるようです。以下は私のコードで、なぜ同じ顧客を複数回返すのか疑問に思っています。タイムアウトを回避するためにページング機能を使用しています。

        Dim tCust As New List(Of Intuit.Ipp.Data.Qbo.Customer)

        Dim qcust As New CustomerQuery
        qcust.IncludeJobs = False
        qcust.LastUpdatedTime = FromDate
        qcust.PageNumber = 1
        qcust.ResultsPerPage = 10

        Dim customers As IEnumerable(Of Intuit.Ipp.Data.Qbo.Customer) = qcust.ExecuteQuery(Of Customer)(GetServiceContext)
        While customers.Count > 0
            tCust.AddRange(customers)
            customers = qcust.ExecuteQuery(Of Customer)(GetServiceContext)
            qcust.PageNumber += 1
        End While
4

1 に答える 1

2

正しい場所でページ番号をインクリメントしていないため、PageNum=1 と ResultsPerPage=10 に対して 2 つの要求を実行しています。

ページ番号は、次のようにループ内でインクリメントする必要があります。

Dim tCust As New List(Of Intuit.Ipp.Data.Qbo.Customer)()

Dim qcust As New CustomerQuery()
qcust.IncludeJobs = False
qcust.LastUpdatedTime = New DateTime(2013, 1, 1)
qcust.PageNumber = 1
qcust.ResultsPerPage = 10

Dim customers As IEnumerable(Of Intuit.Ipp.Data.Qbo.Customer) = qcust.ExecuteQuery(Of Customer)(context)
While customers.Any()
    tCust.AddRange(customers)
    If customers.Count() < qcust.ResultsPerPage Then Exit While
    qcust.PageNumber += 1
    customers = qcust.ExecuteQuery(Of Customer)(context)
End While
于 2013-03-29T13:21:36.147 に答える