首页 > 解决方案 > Quickbooks InvoiceAdd qbxml 格式问题

问题描述

我必须在我的 XML 文件格式中遗漏一些东西,以便将发票添加到 Quickbooks Desktop Enterprise 美国版,我的 qbxml 请求如下;

   <?xml version="1.0" encoding="utf-8"?>
<?qbxml version="13.0"?>
<QBXML>
  <QBXMLMsgsRq onError="stopOnError">
    <InvoiceAddRq>
      <InvoiceAdd>
        <CustomerRef>
          <FullName>XXXXXXXXX</FullName>
        </CustomerRef>
        <ClassRef>
          <FullName>XXXXXXX</FullName>
        </ClassRef>
        <ARAccountRef>
          <FullName>XXXXXXXXXX</FullName>
        </ARAccountRef>
        <TemplateRef>
          <FullName>Standard invoice</FullName>
        </TemplateRef>
        <TxnDate/>
        <RefNumber>83434</RefNumber>
        <BillAddress>
          <Addr1>4xxxxxx</Addr1>
          <City>xxxxxxxx</City>
          <State>XX</State>
          <PostalCode>0000</PostalCode>
        </BillAddress>
        <IsPending>1</IsPending>
        <IsFinanceCharge>0</IsFinanceCharge>
        <PONumber>12345</PONumber>
        <TermsRef>
          <FullName>Net 30</FullName>
        </TermsRef>
        <DueDate/>
        <SalesRepRef/>
        <FOB/>
        <ShipDate/>
        <ShipMethodRef/>
        <ItemSalesTaxRef/>
        <Memo/>
        <CustomerMsgRef/>
        <IsToBePrinted>0</IsToBePrinted>
        <IsToBeEmailed>0</IsToBeEmailed>
        <IsTaxIncluded>0</IsTaxIncluded>
        <CustomerSalesTaxCodeRef/>
        <Other/>
        <ExchangeRate>1</ExchangeRate>
        <SetCredit>
          <CreditTxnID>1</CreditTxnID>
          <AppliedAmount>0</AppliedAmount>
          <Override>1</Override>
        </SetCredit>
        <InvoiceLineAdd>
          <itemRef>
            <FullName>S-check UT</FullName>
          </itemRef>
          <Desc>Interpreter</Desc>
          <Quantity>1</Quantity>
          <UnitOfMeasure/>
          <Rate>10</Rate>
          <RatePercent>100</RatePercent>
          <PriceLevelRef/>
          <ClassRef/>
          <Amount>10</Amount>
          <OptionForPriceRuleConflict>0</OptionForPriceRuleConflict>
          <InventorySiteRef/>
          <InventorySiteLocationRef/>
          <SerialNumber/>
          <LotNumber/>
          <ServiceDate/>
          <SalesTaxCodeRef/>
          <OverrideItemAccountRef/>
          <Other1/>
          <Other2/>
          <LinkToTxn>
            <TxnID>0</TxnID>
            <TxnLineID>0</TxnLineID>
          </LinkToTxn>
          <DataExt>
            <OwnerID>3caa4f6f-fcb3-4767-99e6-0ba5dfd34e8f</OwnerID>
            <DataExtName>Sample</DataExtName>
            <DataExtValue>Sample</DataExtValue>
          </DataExt>
        </InvoiceLineAdd>
      </InvoiceAdd>
    </InvoiceAddRq>
  </QBXMLMsgsRq>
</QBXML>

当我使用 qbxml 验证器检查此 xml 请求时,即使我提供了 OSR 工具中概述的所有必填字段,我也会收到以下错误消息;

   Line: 53
    LinePos: 20
    Src Text: <itemRef>
    Reason: Element content is invalid according to the DTD/Schema.
    Expecting: ItemRef, Desc, Quantity, UnitOfMeasure, Rate, RatePercent, PriceLevelRef, ClassRef, 
    Amount, TaxAmount, OptionForPriceRuleCon....

我不确定我的 xml 文件有什么问题,当我运行 quickbooks 网络连接器时,我得到的错误消息是;

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

我知道这是因为我的 qbxml 请求格式错误,这可能是不正确的。请协助

标签: qbxml

解决方案


我已经过滤了您的 QBXML 并删除了生成 QBXML 标记的所有错误

    <?xml version="1.0" encoding="utf-8"?>
<?qbxml version="13.0"?>
<QBXML>
  <QBXMLMsgsRq onError="stopOnError">
    <InvoiceAddRq>
      <InvoiceAdd>
        <CustomerRef>
          <FullName>XXXXXXXXX</FullName>
        </CustomerRef>
        <ClassRef>
          <FullName>XXXXXXX</FullName>
        </ClassRef>
        <ARAccountRef>
          <FullName>XXXXXXXXXX</FullName>
        </ARAccountRef>
        <TemplateRef>
          <FullName>Standard invoice</FullName>
        </TemplateRef>
        <TxnDate/>
        <RefNumber>83434</RefNumber>
        <BillAddress>
          <Addr1>4xxxxxx</Addr1>
          <City>xxxxxxxx</City>
          <State>XX</State>
          <PostalCode>0000</PostalCode>
        </BillAddress>
        <IsPending>1</IsPending>
        <IsFinanceCharge>0</IsFinanceCharge>
        <PONumber>12345</PONumber>
        <TermsRef>
          <FullName>Net 30</FullName>
        </TermsRef>
        <DueDate/>
        <SalesRepRef/>
        <FOB/>
        <ShipDate/>
        <ShipMethodRef/>
        <ItemSalesTaxRef/>
        <Memo/>
        <CustomerMsgRef/>
        <IsToBePrinted>0</IsToBePrinted>
        <IsToBeEmailed>0</IsToBeEmailed>
        <IsTaxIncluded>0</IsTaxIncluded>
        <CustomerSalesTaxCodeRef/>
        <Other/>
        <ExchangeRate>1</ExchangeRate>
        <SetCredit>
          <CreditTxnID>1</CreditTxnID>
          <AppliedAmount>0</AppliedAmount>
          <Override>1</Override>
        </SetCredit>
        <InvoiceLineAdd>
          <Desc>Interpreter</Desc>
          <Quantity>1</Quantity>
          <UnitOfMeasure/>
          <Rate>10</Rate>
          <ClassRef/>
          <Amount>10</Amount>
          <InventorySiteRef/>
          <InventorySiteLocationRef/>
          <SerialNumber/>
          <ServiceDate/>
          <SalesTaxCodeRef/>
          <OverrideItemAccountRef/>
          <Other1/>
          <Other2/>
          <LinkToTxn>
            <TxnID>0</TxnID>
            <TxnLineID>0</TxnLineID>
          </LinkToTxn>
        </InvoiceLineAdd>
      </InvoiceAdd>
    </InvoiceAddRq>
  </QBXMLMsgsRq>
</QBXML>

推荐阅读