在quickbooks桌面中使用InventoryRef添加销售订单时出错

时间:2014-08-21 04:55:01

标签: quickbooks intuit qbxml ipp-qbd-sync

我正在向Quickbooks发送QBXML以添加销售订单。一切运行正常但是当我为InventoryRef添加标签时如下所示,我得到XML无效错误。

<SalesOrderLineAdd>
    <InventorySiteRef>
        <FullName>Austin</FullName>
    </InventorySiteRef>
    <ItemRef>
        <FullName>ES-10BLU</FullName>
    </ItemRef>
    <Desc>BS10ELU</Desc>
    <Quantity>3</Quantity>
    <Rate>100.0</Rate>
</SalesOrderLineAdd>

http://www.consolibyte.com/docs/index.php/QbXML_for_Adding_a_Sales_Order

上述链接没有InventorySiteRef作为有效的添加标记,但是intuit(https://developer-static.intuit.com/qbSDK-current/Common/newOSR/index.html)的屏幕引用将此字段作为添加请求中的有效标记。

请告诉我为什么在发送OSR中提到的InventorySiteRef标记时出现无效的XML错误?

更新

<?xml version="1.0" ?>
<?qbxml version="8.0"?>
<QBXML>
    <QBXMLMsgsRq onError="stopOnError">
        <SalesOrderAddRq>
            <SalesOrderAdd defMacro="MACROTYPE">
                <CustomerRef>
                    <FullName>Amazon.com.nvdc, Inc</FullName>
                </CustomerRef>
                <TxnDate>2014-08-11</TxnDate>
                <RefNumber>TST00002H</RefNumber>
                <BillAddress>
                    <Addr1>1600 East Newlands Drive</Addr1>
                    <City>Fernley</City>
                    <State>NV</State>
                    <PostalCode>89408-8903</PostalCode>
                    <Country>US</Country>
                </BillAddress>
                <ShipAddress>
                    <Addr1>1600 East Newlands Drive</Addr1>
                    <City>Fernley</City>
                    <State>NV</State>
                    <PostalCode>89408-8903</PostalCode>
                    <Country>US</Country>
                </ShipAddress>              
                <SalesOrderLineAdd>
                    <ItemRef>
                        <FullName>ES-10BLU</FullName>
                    </ItemRef>
                    <Desc>BS10ELU</Desc>
                    <Quantity>3</Quantity>
                    <Rate>100.0</Rate>
                    <InventorySiteRef>
                        <FullName>Austin</FullName>
                    </InventorySiteRef>
                </SalesOrderLineAdd>
            </SalesOrderAdd>
        </SalesOrderAddRq>
    </QBXMLMsgsRq>
</QBXML>

以上是我发送的请求XML。我用Quickbooks SDK测试了它,它给了我以下错误

-2147220480 QuickBooks在解析提供的XML文本流时发现错误。

仅在添加InventorySiteRef时才会发生错误。否则,虽然OSR在请求中显示此标记

,但仍会对其进行处理

2 个答案:

答案 0 :(得分:2)

我已经解决了这个问题。 qbxml版本是个问题。我使用8.0,它不支持销售订单添加中的InventorySiteRef标记。我把它改为12,它支持这个标签,它就像一个魅力。

希望能帮助遇到此类问题的人。 :)

答案 1 :(得分:0)

您应该使用QBXML SDK附带的Validator程序来查看错误的行。

在这种情况下,InventorySiteRef的顺序不正确。订单确实很重要,这应该在SalesOrderLineAdd的末尾,而不是开头。