2015-02-06 49 views
0

使用QuickBooks PHP DevKit,我发现有很多类型的请求,其中大部分都映射到qbXML API中的特定请求。然而,两个要求脱颖而出,我不确定有什么不同。这里有一个例子:查询和导入请求有什么区别?

QUICKBOOKS_QUERY_INVOICE 
QUICKBOOKS_IMPORT_INVOICE 

而另一

QUICKBOOKS_QUERY_DELETEDTXNS 
QUICKBOOKS_IMPORT_DELETEDTXNS 

什么是这两者之间的区别?他们分别映射到InvoiceQueryTxnDeletedQuery qbXML ...所以为什么区分它们?

+0

第738行的QuickBooks_Utilities类中的'priorityForAction'函数我猜可能部分回答这个问题:'Query'在优先级列表中高于'Import',因此如果'InvoiceQuery'和'InvoiceImport'在队列中查询将首先发生...... – brazilianldsjaguar 2015-02-06 05:18:06

回答

1

如果您需要区分大量导入数据和查询特定记录/记录集,它们只是作为便利常量提供。

例如,考虑一种情况,即您正在与您的应用程序进行QuickBooks客户的完全双向同步 - 只要QuickBooks中的某些内容发生更改,即可获取更改,并且每当应用程序发生变化时,更改为QuickBooks。

这就需要你能够:

  1. 投票的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

很高兴知道!如果我以前没有说过,谢谢你在devkit上做得很好:) – brazilianldsjaguar 2015-02-06 16:16:16

相关问题