0

我们正在使用 QuickBooks 桌面版,遇到 QuickBooks 销售收据的一个奇怪问题 - 同步状态和状态代码 wrireBack 消息,问题详细信息如下,

  1. 首先,我们使用提供的 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”的销售收据。

  1. 第二步是我们使用“salesReceipt.Synchronized = False”获取所有销售收据 ID,并使用以下代码查询 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=Synchronized、DESCRIPTION=(成功)。在 QuickBooks 中创建的对象。等效于 StateCode 8(对于在 Data Services 中创建的对象)和 MESSAGECODE=40,MESSAGEDESC=WRTB 成功,说明:从 Data Services 发送到 QuickBooks 公司文件的请求已成功同步到公司文件中。

我们无法理解 Sales Receipt 是否为 salesReceipt.Synchronized = False,StateCode 1 和 MessageCode 40 是什么意思。

请提出解决方案,

感谢和问候,

瑞诗玛 D.

4

2 回答 2

1

您是否可以查询从 salesReceipt.Synchronized = False 检索到的其他一些检索记录?检查他们是否也有 StateCode 1。这可能是同步过滤器无法正常工作并检索所有数据的问题。

于 2013-07-04T12:06:08.243 回答
1

您可以尝试通过指定 ErroredObjectsOnly="true" 属性来检索处于同步错误状态的对象。

如果您在响应中获得任何对象,则尝试使用状态 API 查看这些错误对象的同步状态,否则(成功)在 SalesReceipt 上调用 GetAll API 以查看您是否获得所有这些对象(默认情况下它返回成功创建的对象)。

参考 - https://developer.intuit.com/docs/0025_quickbooksapi/0050_data_services/v2/0500_quickbooks_windows/0600_object_reference/syncstatus

您可以使用 ApiExplorer 工具来测试这个用例。

链接 - https://developer.intuit.com/apiexplorer?apiname=V2QBD

于 2013-07-03T13:23:43.610 回答