Ошибка добавления 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, производство и оптовая продажа, выпуск 12

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

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

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

1 ответ

Решение

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

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

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

Другие вопросы по тегам