#quickbooks #qbxml
#quickbooks #qbxml
Вопрос:
Я ничего не могу найти о том, как quickbooks упорядочивает результаты при запросе с помощью qbXML. Кажется, что, по крайней мере, это было бы упомянуто в этом разделе:
Например, в этом разделе говорится:
«Чтобы продолжить просмотр объектов, соответствующих критериям запроса … если вы имеете дело со списком имен клиентов в алфавитном порядке, используйте NameRangeFilter:FromName»
Означает ли это, что благодаря использованию NameRangeFilter результаты гарантированно будут упорядочены по FromName? Если я использую ModifiedDateRangeFilter, гарантирует ли это, что результаты упорядочены по измененной дате?
Я пытаюсь выяснить, как узнать, где получать данные с момента последнего запуска транзакции соединителя, но, не зная, как упорядочиваются результаты, кажется, что я не могу с уверенностью знать.
Ответ №1:
Невозможно указать порядок результатов qbXML.
Если вы пытаетесь получить большое количество результатов, используйте итераторы — назначение итератора специально в том, чтобы вы могли просматривать большой набор результатов и не нужно было отслеживать, на чем вы остановились — итератор делает это за вас.
Комментарии:
1. Спасибо! Чего я добиваюсь, так это начальной синхронизации. У пользователя QB 4k клиентов и 50k счетов. Это создает нагрузку на начальную синхронизацию и блокирует соединитель. Я хочу сказать соединителю: «Хорошо, вы отправили 100 записей с помощью этого итератора, давайте остановимся сейчас, и мы отправим следующие 100 через 15 минут при следующем подключении». Именно здесь важно знать порядок. Я согласен, что как только внешняя служба и QB будут «обновлены», порядок больше не будет иметь значения.
2. Если вы используете итераторы, вам конкретно не нужно (и не может ) этого делать. Если вы столкнулись с проблемами производительности, то все, что вы можете сделать, это замедлить обработку ответа (например, добавить в некоторые
sleep()
инструкции, чтобы QuickBooks получал перерыв и использовал меньший фрагмент результата (например, 25 записей за раз). Итераторы гарантируют, что вы получите все записи — вам не нужно указывать порядок, потому что они отслеживают это для вас автоматически.