2015-02-06 2 views
0

Используя QuickBooks PHP DevKit, я заметил, что существует множество типов запросов, и большинство из них сопоставляются с конкретными запросами в API qbXML. Однако два запроса выделяются, и я не уверен, в чем разница. Вот пример:В чем разница между запросами запросов и импорта?

QUICKBOOKS_QUERY_INVOICE 
QUICKBOOKS_IMPORT_INVOICE 

И еще

QUICKBOOKS_QUERY_DELETEDTXNS 
QUICKBOOKS_IMPORT_DELETEDTXNS 

В чем разница между этими двумя? Они соответствуют InvoiceQuery и TxnDeletedQuery в qbXML соответственно ... так зачем их дифференцировать?

+0

Функция 'priorityForAction' в классе' QuickBooks_Utilities' в строке 738. Я думаю, может частично ответить на вопрос: '' Query' выше в списке приоритетов, чем 'Import', поэтому, если оба' InvoiceQuery' и 'InvoiceImport' находятся в очереди 'Query' произойдет первым ... – brazilianldsjaguar

ответ

1

Они предоставляются только в качестве констант удобства, если вам нужно различать массовые данные импорта и запросы для конкретной записи/набора записей.

Например, рассмотрите сценарий, в котором вы выполняете полную двустороннюю синхронизацию клиентов QuickBooks с вашим приложением - всякий раз, когда что-то меняется в QuickBooks, вы получаете изменения, и всякий раз, когда что-то меняется в вашем приложении, вы перейдите в QuickBooks.

Это требует, чтобы быть в состоянии:

  1. Poll QuickBooks каждый так часто за все, что изменения («импорт» данные из QuickBooks)
  2. Для изменения клиента в QuickBooks, вы в первую очередь необходимо запросить для этого индивидуального клиента, чтобы получить последние QuickBooks EditSequence значение («запрос» для конкретного клиента, чтобы получить, что EditSequence)

таким образом, мы предлагаем две отдельные константы для удобства, так что вы можете d гасят эти два разных типа запросов друг от друга.

Осознайте, что все константы только там для удобства - это действительно не имеет значения, какое значение/константа используется, до тех пор, как то, что вы имеете в $ карте соответствует тому, что вы в очереди с $Queue->enqueue($action, $id, ...). Например, это будет прекрасно работать тоже:

$map = array(
    'YourMommyWearsArmyBoots' => array('your_request_callback', 'your_response_callback') 
); 

... 

$Queue->enqueue('YourMommyWearsArmyBoots', $id); 

Все рамки делает совпадает параметр $action к ->enqueue(...) на соответствующий ключ в $map.

+0

Полезно знать! И если я не сказал этого раньше, спасибо и отлично поработаем на деките :) – brazilianldsjaguar

Смежные вопросы