0

我目前需要一些帮助来实现账单从我们的系统流向 QB 的自动化。我已经完成了所有必要的更改,将账单相关信息从我们的系统传递到 QB 并希望将其保存在 QB 上的 Bill 下。下面是我要求的示例 qbxml。但是我收到了来自 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......**

QBXML 请求:

<?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>
4

1 回答 1

2

每当你看到这个:

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

这意味着您的 XML 无效,或者与XSDIntuit 定义的用于验证所需字段/数据类型/等的不匹配。

遇到这种情况时,您应该做的第一件事是使用QuickBooks SDK中包含的XML Validator工具。不要在线使用,使用 QuickBooks SDK 中包含的那个,因为它不仅验证 XML 结构本身,而且验证数据类型、字段长度、元素顺序等。XSD

在这种情况下,您的问题是Address根本不是有效元素(您可能正在寻找VendorAddress)。

你也可以参考 Intuit 的文档:

编辑:由于某种原因,OSR 链接已更新使用以下链接 https://static.developer.intuit.com/qbSDK-current/common/newosr/index.html

于 2020-03-26T13:29:37.297 回答