Как изменить счет в быстрых книгах, используя qbxml и qbsdk13?
Это мой запрос QBXML
<?xml version="1.0" ?>
<?qbxml version="6.0"?>
<QBXML>
<QBXMLMsgsRq onError="stopOnError">
<InvoiceModRq requestID="1">
<InvoiceMod>
<TxnID>85-1442639879</TxnID>
<EditSequence>1442639879</EditSequence>
<CustomerRef>
<ListID>80000005-1442639850</ListID>
<FullName>Bruce Banner</FullName>
</CustomerRef>
<TxnDate>2015-09-19</TxnDate>
<RefNumber>5462</RefNumber>
<InvoiceLineMod>
<ItemRef>
<ListID>8000000A-1442469770</ListID>
<FullName>Item 1</FullName>
</ItemRef>
<Quantity>1</Quantity>
<Rate>1100.00</Rate>
</InvoiceLineMod>
</InvoiceMod>
</InvoiceModRq>
</QBXMLMsgsRq>
</QBXML>
Я получаю сообщение об ошибке QuickBooks обнаружил ошибку при разборе предоставленного потока текста XML.
пожалуйста помоги
1 ответ
Если вы ссылаетесь на QuickBooks OSR:
Вы заметите, что в пределах <InvoiceLineMod>
элемент, этот узел требуется:
<TxnLineID>
OSR также дает вам немного больше информации:
TxnLineID
Идентификационный номер строки транзакции. (TxnLineID поддерживается начиная с версии 2.0 SDK. При использовании qbXML v1.0 и v1.1 TxnLineID всегда возвращается как ноль.)
Если вам нужно добавить новую строку транзакции в запрос мод транзакции, вы можете сделать это, установив TxnLineID в -1.
Итак, вам нужно добавить в <TxnLineID>
узел. Если это новая позиция, поставьте -1
для контента внутри узла. Если вы пытаетесь обновить существующую строку, поставьте TxnLineID
значение существующей линии там.
Пример:
...
<InvoiceLineMod>
<TxnLineID>-1</TxnLineID>
<ItemRef>
<ListID>8000000A-1442469770</ListID>
<FullName>Item 1</FullName>
</ItemRef>
<Quantity>1</Quantity>
<Rate>1100.00</Rate>
</InvoiceLineMod>
...