Ошибка добавления InventorySite в счета Quickbooks в QBSDK 12

У меня есть приложение QBFC, написанное на C#, которое автоматически запускается из планировщика и, помимо прочего, вставляет счета от удаленного клиента в QB.

Недавно я обновил его, чтобы добавить «InventorySite» для выставления счетов за товары для клиентов с помощью модуля «Расширенный инвентарь» QB. Я обновился до QBFC 12 в то же время.

Теперь программа выдает ошибку при попытке вставить счет, говоря, что элемент InventorySiteLocationRef не распознан. Все остальные функции работают как обычно.

Ниже приводится выдержка из QBSDKLog.txt:

20130712.143859 I   736 QBSDKProcessRequest Application named 'IOS Briefcase Sync' starting requests (process 1264).
20130712.143859 W   736 QBNInvoiceAdd::HandleAggregate  unexpected tag 'Memo'.
20130712.143859 E   736 XercesSAXErrorHandler   Unknown element 'InventorySiteLocationRef' -- error at line 19, column 26 in XML data.
20130712.143859 I   736 MsgSetHandler   Parser error, finishing.
20130712.143859 I   736 QBSDKProcessRequest Application named 'IOS Briefcase Sync' finishing requests (process 1264), ret = 1.
20130712.143859 E   1264    RequestProcessor    Process Request error = 80042500, There was an error when parsing the provided XML file.
20130712.143937 I   1264    RequestProcessor    Connection closed by app named 'IOS Briefcase Sync'
20130712.143937 I   1264    RequestProcessor    ========== Ended Connection ==========

Клиент работает под управлением Quickbooks Enterprise Solutions Manufacturing and Wholesale Edition 12.

Я установил QBFC12_0 и QBXMLRP2 с помощью установщиков, поставляемых с SDK. HostQuery возвращает 11 в качестве самой высокой поддерживаемой основной версии QBXML, и это версия, которую я использую при создании запросов.

Я не удалял версию QBFC7, которая ранее использовалась на этом клиентском сайте, потому что мне нужна была возможность отката (что я и сделал). Может ли это быть проблема?

Мне нужно установить или удалить что-то еще? Поможет ли перезагрузка? Я еще не смог заставить кого-либо на клиентском сайте перезагрузиться.


person AndyL    schedule 12.07.2013    source источник


Ответы (1)


В моем случае проблема заключалась в том, что я использовал не то поле. Я должен был использовать «InventorySiteRef», а не «InventorySiteLocationRef», который относится к номеру ячейки на сайте. Как только я сделал это исправление, все заработало.

Однако проблема с «InventorySiteLocationRef» остается. Это законное поле в QBFC, и якобы всезнающая экранная ссылка от Intuit не указывает на то, что оно может дать сбой. Однако это происходит для многих, если не для всех версий QB. Наконец я нашел в примечаниях к выпуску QBFC 12 довольно обширный список полей, которые кажутся законными, но на самом деле не работают. Вот как Intuit описывает их. Вы можете выполнить поиск по этому тексту, чтобы найти список в примечаниях к выпуску:

ПРИМЕЧАНИЕ. Большинство этих изменений НЕ были реализованы в QuickBooks. Это изменения спецификации только для реализации в будущем выпуске QuickBooks.

person AndyL    schedule 16.07.2013
comment
Это было большим подспорьем для меня. Я ценю ваше понимание. - person Perry Tew; 07.10.2016