Ошибка при добавлении заказа на продажу с 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, а не в начале.