Ошибка при добавлении заказа на продажу с InventoryRef на рабочий стол quickbooks

Я посылаю QBXML в QuickBooks для добавления заказа на продажу. Все работает нормально, но когда я добавляю тег для InventoryRef, как показано ниже, я получаю ошибку XML not valid.

<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) есть это поле в виде допустимый тег в запросе на добавление.

Пожалуйста, дайте мне знать, почему я получаю недопустимую ошибку XML при отправке тега InventorySiteRef, как указано в OSR?

ОБНОВИТЬ:

<?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 ответа

Решение

Я решил эту проблему. Версия qbxml была проблемой. Я использовал 8.0, который не поддерживал тег InventorySiteRef в добавлении заказа на продажу. Я изменил его на 12, который поддерживает этот тег, и он работал как шарм.

Надеюсь, это поможет кому-то столкнуться с такой проблемой.:)

Вы должны использовать программу Validator, включенную в QBXML SDK, чтобы увидеть, какая строка содержит ошибку.

В этом случае InventorySiteRef не в правильном порядке. Заказ имеет значение, и это должно быть в конце SalesOrderLineAdd, а не в начале.

Другие вопросы по тегам