1

我已经编辑了这个问题,使其更加清晰和集中,因为我已经进行了更多调查。

同步订单适用于今天和未来的日期,但不适用于过去的日期。我现在直接在 API Explorer 中进行测试。

这是添加订单请求和响应:

<!--Add order request-->
<Add xmlns="http://www.intuit.com/sb/cdm/v2" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    RequestId="ecc53f53d70f0a52de4c88021721ba32" 
    xsi:schemaLocation="http://www.intuit.com/sb/cdm/v2 ./RestDataFilter.xsd ">
    <OfferingId>ipp</OfferingId>
    <ExternalRealmId>688875295</ExternalRealmId>
    <Object xsi:type="SalesOrder">
        <Header>
            <DocNumber>6</DocNumber>
            <TxnDate>2010-12-25</TxnDate>
            <CustomerId idDomain="QB">4</CustomerId>
            <SalesRepId idDomain="QB">1</SalesRepId>
        </Header>
        <Line>
            <ItemId idDomain="QB">1</ItemId>
            <Qty>6</Qty>
        </Line>
    </Object>
</Add>

<!--Add order response-->
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<RestResponse xmlns="http://www.intuit.com/sb/cdm/v2">
    <Success RequestId="ecc53f53d70f0a52de4c88021721ba32">
        <ObjectRef>
            <Id idDomain="NG">802721</Id>
            <SyncToken>1</SyncToken>
            <LastUpdatedTime>2013-04-29T15:26:53Z</LastUpdatedTime>
        </ObjectRef>
        <RequestName>SalesOrderAdd</RequestName>
        <ProcessedTime>2013-04-29T15:26:53Z</ProcessedTime>
    </Success>
</RestResponse>

这是同步状态和同步活动。SalesOrder 只有一个实体,但时间不匹配,所以我不相信它引用了我通过 API 资源管理器添加的相同订单。另外,我添加的订单也没有出现在 Quickbooks 中。

<SyncStatusResponse>
<NgIdSet>
<NgId>802721</NgId>
<NgObjectType>SalesOrder</NgObjectType>
</NgIdSet>
<RequestId>DB7F4BF877006079E040900A0F1B14C1</RequestId>
<StateCode>8</StateCode>
<StateDesc>Record netted with QB</StateDesc>
<MessageCode>70</MessageCode>
<MessageDesc>MBL Netter success using QB SDK ext_ack_id</MessageDesc>
<ResponseLogTMS>2013-04-29T15:38:02.0Z</ResponseLogTMS>
</SyncStatusResponse>


<SyncActivityResponse>
<SyncType>Writeback</SyncType>
<StartSyncTMS>2013-04-10T12:42:21.0</StartSyncTMS>
<EndSyncTMS>2013-04-29T08:38:02.0</EndSyncTMS>
<EntityName>SalesOrder</EntityName>
<EntityRowCount>20</EntityRowCount>
</SyncActivityResponse>

从同步状态响应来看,状态码 8 表示

记录净额。同步。在数据服务中创建的对象。Sync Manager 已确认同步对象并将其 NG ID 映射到 QuickBooks 中的 QB ID。等效于 StateCode 1(用于在 QuickBooks 中创建的对象)。

消息代码 70 根据其描述似乎没问题,但未在文档中列出。

4

2 回答 2

2

因此,您的请求成功,但运行同步后您在 QuickKBooks 中看不到它。检查对象的同步状态,也可以通过调用这些 API 来查看所有同步活动

http://docs.developer.intuit.com/0025_Intuit_Anywhere/0050_Data_Services/v2/0500_QuickBooks_Windows/0600_Object_Reference/SyncActivity

http://docs.developer.intuit.com/0025_Intuit_Anywhere/0050_Data_Services/v2/0500_QuickBooks_Windows/0600_Object_Reference/SyncStatus

即使您的请求成功,在它可以同步到 QuickBooks 之前,它必须通过要在桌面上创建/更新的业务规则。

如果您的对象遇到错误(假设它是重复的),那么您也可以在查询中添加错误对象过滤器来查询它。

问候
贾里德

于 2013-04-04T17:31:59.883 回答
2

在 Quickbooks Destop 中,默认情况下仅显示当前会计年度交易。您可以尝试将日期过滤器更改为“全部”,以查看销售订单是否成功?

于 2013-05-01T15:52:19.697 回答