XML Quickbooks не работает с QuantityOnHand

Я пытаюсь опубликовать следующий XML в SDK QB для настольных ПК. Когда я не включаю узел QuantityOnHand или PurchaseCost, вызов завершается успешно, но когда один или оба этих узла включены, вызов завершается ошибкой. Вот XML, который я генерирую:

<?xml version="1.0" encoding="utf-8"?>
<?qbxml version="12.0"?>
<QBXML>
  <QBXMLMsgsRq onError="continueOnError">
    <ItemInventoryAddRq>
      <ItemInventoryAdd>
        <Name>11200</Name>
        <IsActive>1</IsActive>
        <SalesDesc>R/C Glider.</SalesDesc>
        <SalesPrice>149.99000</SalesPrice>
        <PurchaseCost>124.99000</PurchaseCost>
        <QuantityOnHand>35</QuantityOnHand>
        <IncomeAccountRef>
          <FullName>Construction Income:Materials Income</FullName>
        </IncomeAccountRef>
        <COGSAccountRef>
          <FullName>Cost of Goods Sold</FullName>
        </COGSAccountRef>
        <AssetAccountRef>
          <FullName>Inventory Asset</FullName>
        </AssetAccountRef>
      </ItemInventoryAdd>
    </ItemInventoryAddRq>
  </QBXMLMsgsRq>
</QBXML>

person calmond    schedule 12.07.2013    source источник
comment
Я получаю сообщение об ошибке: Исключение из HRESULT: 0x80040400   -  person calmond    schedule 12.07.2013
comment
Что показывает файл журнала при подробном входе в систему?   -  person William Lorfing    schedule 12.07.2013


Ответы (1)


При использовании qbXML порядок узлов XML ВАЖЕН.

Итак, если Intuit XSD/QuickBooks OSR говорит вам, что порядок узлов должен быть следующим:

<SalesDesc >STRTYPE</SalesDesc> <!-- optional -->
<SalesPrice >PRICETYPE</SalesPrice> <!-- optional -->
<IncomeAccountRef> <!-- optional -->
<ListID >IDTYPE</ListID> <!-- optional -->
<FullName >STRTYPE</FullName> <!-- optional -->
</IncomeAccountRef>
<PurchaseDesc >STRTYPE</PurchaseDesc> <!-- optional -->
<PurchaseCost >PRICETYPE</PurchaseCost> <!-- optional -->
<COGSAccountRef> <!-- optional -->
<ListID >IDTYPE</ListID> <!-- optional -->
<FullName >STRTYPE</FullName> <!-- optional -->
</COGSAccountRef>
<PrefVendorRef> <!-- optional -->
<ListID >IDTYPE</ListID> <!-- optional -->
<FullName >STRTYPE</FullName> <!-- optional -->
</PrefVendorRef>
<AssetAccountRef> <!-- optional -->
<ListID >IDTYPE</ListID> <!-- optional -->
<FullName >STRTYPE</FullName> <!-- optional -->
</AssetAccountRef>
<ReorderPoint >QUANTYPE</ReorderPoint> <!-- optional -->
<QuantityOnHand >QUANTYPE</QuantityOnHand> <!-- optional -->

Затем вы ДОЛЖНЫ предоставить узлы в этом порядке.

В вашем случае вы отправляете QuantityOnHand до IncomeAccountRef, COGSAccountRef и т. д., которые будут отклонены. Также обратите внимание, что PurchaseCost идет после узла IncomeAccountRef.

Дополнительную информацию можно найти в вики по интеграции QuickBooks — раздел часто задаваемых вопросов и вики QuickBooks в целом.

Надеюсь, это поможет!

person Keith Palmer Jr.    schedule 12.07.2013