QB XML для счета Добавить запрос - PullRequest
0 голосов
/ 26 марта 2020

Мне нужна некоторая помощь в моей текущей реализации автоматизации потока счетов из нашей системы в QB. Я внес все необходимые изменения, которые передадут информацию, связанную с Биллами, из нашей системы в QB и планируют сохранить ее в разделе Билл на QB. Ниже образец qb xml, который я запрашиваю. Но я получаю ниже сообщение об ошибке от QB. Пожалуйста, сообщите мне, если в запросе xml необходимо внести какие-либо изменения.

Сообщение об ошибке от QB:

20200325.16:57:30 UTC   : QBWebConnector.SOAPWebService.do_sendRequestXML() : Request xml received.
20200325.16:57:30 UTC   : QBWebConnector.SOAPWebService.ProcessRequestXML() : Processing request #2
20200325.16:57:30 UTC   : QBWebConnector.SOAPWebService.ProcessRequestXML() : REQUEST: received from pplication: size (bytes) = 711
20200325.16:57:30 UTC   : QBWebConnector.SOAPWebService.ProcessRequestXML() : Sending request to uickBooks.
20200325.16:57:30 UTC   : QBWebConnector.SOAPWebService.ProcessRequestXML() : Sending error message back to application:
HRESULT = 0x80040400
**Message: QuickBooks found an error when parsing the provided XML text stream.**
20200325.16:57:30 UTC   : QBWebConnector.SOAPWebService.ProcessRequestXML() : XML dump follows: -

Запрос не удалось:

<?xml version="1.0" encoding="ASCII"?><?qbxml versi......**

QB XML запрос:

<?xml version="1.0" encoding="ASCII"?>
<?qbxml version="13.0"?>
<QBXML>
    <QBXMLMsgsRq onError="continueOnError">
        <BillAddRq requestID="9240">
            <BillAdd>
                <VendorRef>
                    <FullName>ALERNER</FullName>
                </VendorRef>
                <TxnDate>2020-03-25</TxnDate>
                <DueDate>2020-03-24</DueDate>
                <RefNumber>100</RefNumber>
                <TermsRef>
                    <FullName>Net 30 Days</FullName>
                </TermsRef>
                <Memo>via access</Memo>
                <Address>
                    <Adr1>1060 N Kings Hway Suite 220</Adr1>
                    <City>Cherry Hill</City>
                    <State>NJ</State>
                    <PostalCode>08034</PostalCode>
                    <Country></Country>
                </Address>
                <ItemLineAdd>
                    <ItemRef>
                        <ListID>430001 - 1197741385</ListID>
                    </ItemRef>
                    <Desc>1 cubed mice</Desc>
                    <Quantity>10</Quantity>
                    <Cost>5</Cost>
                    <Amount>6</Amount>
                </ItemLineAdd>
            </BillAdd>
        </BillAddRq>
    </QBXMLMsgsRq>
</QBXML>

1 Ответ

2 голосов
/ 26 марта 2020

Каждый раз, когда вы видите это:

QuickBooks found an error when parsing the provided XML text stream.

Это означает, что ваш XML либо недействителен, либо не соответствует XSD, определенному Intuit для проверки по обязательные поля / типы данных / et c.

Самое первое, что вы должны сделать , когда вы столкнетесь с этим, - это использовать инструмент XML Validator, который входит в состав QuickBooks SDK . go не используйте один онлайн, используйте тот, который включен в QuickBooks SDK , потому что он не только проверяет саму структуру XML, но также проверяет типы данных, длины полей, порядок элементов и т. Д. c. против XSD s.

В этом случае ваша проблема заключается в том, что Address вообще не является допустимым элементом (вы, вероятно, ищете VendorAddress).

Вы также можно обратиться к документации Intuit:

...