【问题标题】:Error adding sales order with InventoryRef in quickbooks desktop在 quickbooks 桌面中使用 InventoryRef 添加销售订单时出错
【发布时间】:2014-08-21 04:55:00
【问题描述】:

我正在向 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 在请求中显示此标记,但仍会对其进行处理

【问题讨论】:

    标签: quickbooks intuit qbxml ipp-qbd-sync


    【解决方案1】:

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

    希望它可以帮助面临此类问题的人。 :)

    【讨论】:

    • 我遇到了同样的问题,我可以确认这已解决。谢谢!
    【解决方案2】:

    您应该使用 QBXML SDK 中包含的 Validator 程序来查看错误的行。

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

    【讨论】:

    • 我尝试了您在最后添加 InventorySiteRef 的建议,并在 SDK 中对其进行了测试,但仍然出现错误(有问题的错误已更新)。请建议是否支持此标签,并且 OSR 可能不正确?
    猜你喜欢
    • 1970-01-01
    • 2020-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多