我正在使用 Quickbooks XML API 导入销售订单、项目和客户。一切都很好,但我还没有弄清楚如何处理 Quickbooks 中删除的内容。在我的系统中查询导入的数据不是一个选项,因为我有 20,000 多个销售订单。我的问题是,Quickbooks 是否查询已删除的项目?
最佳答案
Windows 版 QuickBooks:
如果您使用的是 Windows 版 QuickBooks,那么您可以执行 TxnDeletedQueryRq
请求来获取最近删除的交易列表。
例子:
<?xml version="1.0" encoding="utf-8"?>
<?qbxml version="9.0"?>
<QBXML>
<QBXMLMsgsRq onError="stopOnError">
<TxnDeletedQueryRq>
<!-- TxnDelType may have one of the following values: ARRefundCreditCard, Bill, BillPaymentCheck, BillPaymentCreditCard, BuildAssembly, Charge, Check, CreditCardCharge, CreditCardCredit, CreditMemo, Deposit, Estimate, InventoryAdjustment, Invoice, ItemReceipt, JournalEntry, PayrollLiabilityAdjustment [PRIVATE], PayrollPriorPayment [PRIVATE], PayrollYearToDateAdjustment [PRIVATE], PurchaseOrder, ReceivePayment, SalesOrder, SalesReceipt, SalesTaxPaymentCheck, TimeTracking, TransferInventory, VehicleMileage, VendorCredit -->
<TxnDelType>Invoice</TxnDelType>
<TxnDelType>ReceivePayment</TxnDelType>
</TxnDeletedQueryRq>
</QBXMLMsgsRq>
</QBXML>
这里的例子:
- http://www.consolibyte.com/docs/index.php/QbXML_for_Querying_for_Deleted_Objects
- http://www.consolibyte.com/docs/index.php/Example_qbXML_Requests
您可以在 QuickBooks OSR 中找到包含您可以设置的所有选项/标志的完整语法:
在线 QuickBooks:
如果您使用的是 QuickBooks Online,则可以使用 CDC 请求轮询最近更改的数据,包括已删除的内容。
https://quickbooks.api.intuit.com/v3/company/1234/cdc?entities=Class,Item,Invoice&changedSince=2012-07-20T22:25:51-07:00
将返回如下内容:
<IntuitResponse xmlns="http://schema.intuit.com/finance/v3" time="2013-04-03T10:36:19.393Z">
<CDCResponse>
<QueryResponse>
<Customer>...
</Customer>
...
其中一些可能具有 status="Deleted"
属性,让您知道它已被删除。
关于Quickbooks API 和检测已删除的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24810814/