Надеюсь, я останусь здесь в очереди, я не хочу тратить ваше время. Я разработал простое приложение, которое извлекает данные счетов клиентов из базы данных и записывает XML-запросы для загрузки данных счетов в QuickBooks. Это работает хорошо. Я столкнулся и исправил дюжину или около того причуд и глюков по пути; он находится в производстве около года.
При загрузке сегодняшних счетов в QuickBooks один из них потерпел неудачу.
В данных ошибочного счета не было никаких нежелательных символов или странностей; Я сравнил его с другими счетами-фактурами и нашел очень похожие данные, которые оказались успешными; Я проверил значения ListID для каждого объекта; Я в тупике. Если кто-нибудь может помочь с этим, я буду очень признателен. Вот XML, который сегодня не удался (единственное изменение состоит в том, что я заблокировал пару имен): FAILED InvoiceAddRq:
<?xml version="1.0"?>
<?qbxml version="8.0"?>
<QBXML>
<QBXMLMsgsRq onError="stopOnError">
<InvoiceAddRq requestID="16012816370245509">
<InvoiceAdd>
<CustomerRef><ListID>3E00001-1139583887</ListID></CustomerRef>
<ARAccountRef><ListID>380000-1137509930</ListID></ARAccountRef>
<TemplateRef><ListID>B0000-1142608867</ListID></TemplateRef>
<TxnDate>2016-01-28</TxnDate>
<RefNumber>60125008</RefNumber>
<PONumber>AI600292569</PONumber>
<TermsRef><ListID>20000-1137508984</ListID></TermsRef>
<ShipDate>2016-01-25</ShipDate>
<Other>XYXYX PLASTICS</Other>
<InvoiceLineAdd>
<ItemRef><ListID>20000-1139578831</ListID></ItemRef>
<Desc>RECOVERING 1/25DEL. 1/26 @ 11:57 AM EST – POD XYXYX</Desc>
<Quantity>1</Quantity>
<Rate>480.79</Rate>
<Other1>6</Other1>
<Other2>3466</Other2>
</InvoiceLineAdd>
</InvoiceAdd>
<IncludeRetElement>TxnID</IncludeRetElement><IncludeRetElement>TimeCreated</IncludeRetElement><IncludeRetElement>RefNumber</IncludeRetElement>
</InvoiceAddRq>
</QBXMLMsgsRq>
</QBXML>
Я не вижу здесь ничего плохого. Я сравнил это с XML для многих успешных запросов InvoiceAdd, которые произошли до и после этого. Затем я попробовал еще раз для проверки на невменяемость (результат тот же).
Ниже я выложу аналогичный счет в качестве успешного примера. УСПЕШНЫЙ InvoiceAddRq:
<?xml version="1.0"?>
<?qbxml version="8.0"?>
<QBXML>
<QBXMLMsgsRq onError="stopOnError">
<InvoiceAddRq requestID="160128164851801">
<InvoiceAdd>
<CustomerRef><ListID>80000915-1294766937</ListID></CustomerRef>
<ARAccountRef><ListID>380000-1137509930</ListID></ARAccountRef>
<TemplateRef><ListID>B0000-1142608867</ListID></TemplateRef>
<TxnDate>2016-01-28</TxnDate>
<RefNumber>60125011</RefNumber>
<PONumber>2200166200</PONumber>
<TermsRef><ListID>20000-1137508984</ListID></TermsRef>
<ShipDate>2016-01-26</ShipDate>
<Other>X&Y MEHOOPANY </Other>
<InvoiceLineAdd>
<ItemRef><ListID>20000-1139578831</ListID></ItemRef>
<Desc>UNABLE TO DELIVER DUE TO THE WEATHER 1-22DEL. 1-25, POD. AXYXYX BXYXYXY @14:30</Desc>
<Quantity>1</Quantity>
<Rate>148.60</Rate>
<Other1>1</Other1>
<Other2>3</Other2>
</InvoiceLineAdd>
</InvoiceAdd>
<IncludeRetElement>TxnID</IncludeRetElement><IncludeRetElement>TimeCreated</IncludeRetElement><IncludeRetElement>RefNumber</IncludeRetElement>
</InvoiceAddRq>
</QBXMLMsgsRq>
</QBXML>
Заранее спасибо. edit: я забыл упомянуть, что ошибка была очень общей: «QuickBooks обнаружил ошибку при анализе предоставленного текстового потока XML». Источник:QBXMLRP2.RequestProcessor.2