我有一個ETL設立拉SalesReceipts,發票和CreditMemos到我們自己的數據倉庫的名單。但是,如果過去的交易已被廢除/刪除,這將導致我們的號碼關閉。我還沒有找到一種方式來獲得無效交易的名單,我不希望有拉的所有交易的所有時間ETL的每次調用。需要取消/作廢/刪除交易
更多詳細信息:
我們的數據在QBO中,我使用的是由Intuit提供的Java API。
我已經查閱了API(包括在線端點API,以及Java API的),我還沒有發現太多的工作。
這裏是發票數據查詢的例子:
<page loop>
{
Invoice invoice = GenerateQuery.createQueryEntity(Invoice.class);
String query = select($(invoice)).skip(page * PAGE_SIZE).take(PAGE_SIZE).generate();
QueryResult result = dataService.executeQuery(query);
for (IEntity entity : result.getEntities())
{
Transaction t = (Transaction) entity;
System.out.println(t.getStatus());
}
}
不過,我從來沒有遇到任何我們取消/作廢/刪除的交易與此查詢交易情況可能不會在這裏過濾器使用。
編輯#2 我相信我已經找到了我需要在變更數據捕獲服務。 https://developer.intuit.com/docs/0025_quickbooksapi/0050_data_services/020_key_concepts/00600_changedata_operation
一些代碼:
List<IEntity> entities = new ArrayList();
entities.add(new SalesReceipt());
entities.add(new Invoice());
entities.add(new CreditMemo());
List<CDCQueryResult> cresult = dataService.executeCDCQuery(entities, "2011-12-01T00:00:00Z");
...
這將返回已更改的所有交易(修改,添加,刪除),因爲指定的日期,但什麼是很奇怪對我來說,如果我使用日期「2011-12-01T0:0:0Z」我只收到DELETED狀態的交易。
僅供參考: 「2011-12-01T00:00:00Z」:所有添加,修改,刪除的交易。 「2011-12-01T0:0:0Z」:只刪除交易。
感謝
這是QuickBooks的爲Windows,或QuickBooks的在線?你在使用什麼API?您需要提供更多詳細信息... –
我看到一個類似的問題,只有獲得被刪除的記錄,當我包括時區。我通過在時間字符串中刪除時區並確保結果在本地(以intuit)太平洋標準時間獲得正確的結果。 –