2013-07-03 93 views
0

我们使用QuickBooks的桌面版,面向与QuickBooks的销售收据一个奇怪的问题 - Syncronised地位和国家代码wrireBack消息,问题的细节是在步骤如下,QuickBooks的SYNCSTATUS问题

  1. 首先,我们获取的QuickBooks销售票据的使用提供idSet

    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 =真”,在这里我们得到了一些销售Recepipt与“SA lesReceipt.Synchronized = False“。

  1. 第二步是我们采取的所有销售招待ID以 “salesReceipt.Synchronized =假”,并与下面的代码查询的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公司文件的请求已成功同步到公司文件中。

,我们无法理解,如果销售收据salesReceipt.Synchronized =假,什么是StateCode 1和MessageCode 40

请提出解决方案的含义,

感谢&问候,

Reshma D.

回答

1

您可以尝试通过指定错误对象来检索处于同步错误状态的对象Only =“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

+0

我们正在检查SalesRecepit的SynscStatus之前已经检查Errorstate,大公不在ErrorState,但在个别销售Recipt对象 - “salesReceipt.Synchronized =假”,并在SyncStatusResponce - StateCode = 1,并MessageCode = 40 – Reshma

+0

能您共享SalesReceipt创建XML。我会尽力重现这个用例。 –

1

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

+0

是的,我查过了。但似乎在同步过滤器中没有问题。 – Reshma