我们正在使用QuickBooks桌面版,面临QuickBooks销售收据的奇怪问题 - Syncronised状态和状态代码wrireBack消息,问题详情如下步骤,
首先,我们使用提供的idSet
获取QuickBooks销售收据Dim salesReceiptQuery = New Intuit.Ipp.Data.Qbd.SalesReceiptQuery() With {.Item1 = idset, _
.Item1ElementName = Item1ChoiceType4.TransactionIdSet, _
.IncludeTagElements = New String() {"SalesReceipt/Synchronized"}}
Dim salesReceipts As System.Collections.ObjectModel.ReadOnlyCollection(Of Intuit.Ipp.Data.Qbd.SalesReceipt) = Nothing
Try
salesReceipts = salesReceiptQuery.ExecuteQuery(Of Intuit.Ipp.Data.Qbd.SalesReceipt)(QBContext)
Catch ex As Exception
Trace.WriteLine("SyncWatchDog Task - Exception: " & ex.Message)
End Try
然后我们循环结果检查“salesReceipt.Synchronized = True”,这里我们得到一些销售收据“salesReceipt.Synchronized = False”。
第二步是我们将所有Sales Recept Id与“salesReceipt.Synchronized = False”一起使用,并使用以下代码查询Quickbooks,
Dim syncStatusRequest As New Intuit.Ipp.Data.Qbd.SyncStatusRequest() With {.NgIdSet = list.GetNgIdSetArray}
Dim syncStatusResponse = DataServices.GetSyncStatus(syncStatusRequest)
当我们循环syncStatusResponce以获取“syncStatus.StateCode”时,我们得到了 STATECODE = 1, STATEDESC =同步, DESCRIPTION =(成功)。在QuickBooks中创建的对象。等效于StateCode 8(用于在Data Services中创建的对象) 和 MESSAGECODE = 40, MESSAGEDESC = WRTB成功, 描述:从Data Services发送到QuickBooks公司文件的请求已成功同步到公司文件中。
我们无法理解Sales Receipt是否为salesReceipt.Synchronized = False,StateCode 1和MessageCode 40的含义是什么。
请建议解决方案,
谢谢&的问候,
Reshma D。
答案 0 :(得分:1)
您可以通过指定ErroredObjectsOnly =“true”属性来尝试检索处于同步错误状态的对象。
如果在响应中获得任何对象,则尝试使用状态API查看这些错误对象的同步状态,否则(成功)调用SalesReceipt上的GetAll API以查看是否获得所有这些对象(如默认它返回已成功创建的对象。
您可以使用ApiExplorer工具来测试此用例。
答案 1 :(得分:1)
您是否可以查询从salesReceipt.Synchronized = False中检索到的其他一些检索到的记录? 检查他们是否也有StateCode 1。 可能是同步过滤器无法正常工作并检索所有数据的问题。