在交易日期过去时,通过IPP向Quickbooks发送订单不起作用

时间:2013-04-02 19:07:48

标签: quickbooks intuit-partner-platform

我已经编辑了这个问题,使其更清晰,更专注,因为我已经调查了更多。

同步订单适用于今天的日期和未来日期,但不适用于过去的日期。我现在正在API资源管理器中直接测试。

以下是添加订单请求和响应:

<!--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表示

  

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

消息代码70似乎可以根据其描述确定,但它没有列在documentation中。

2 个答案:

答案 0 :(得分:2)

因此,您的请求成功,但在运行同步后您没有在QuicKBooks中看到它。 检查对象的同步状态,或者通过调用这些APIS

来查看所有同步活动

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之前,它必须传递要在桌面上创建/更新的业务规则。

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

问候
震动

答案 1 :(得分:2)

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