2014-01-27 43 views
0

我有一個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」:只刪除交易。

感謝

+1

這是QuickBooks的爲Windows,或QuickBooks的在線?你在使用什麼API?您需要提供更多詳細信息... –

+0

我看到一個類似的問題,只有獲得被刪除的記錄,當我包括時區。我通過在時間字符串中刪除時區並確保結果在本地(以intuit)太平洋標準時間獲得正確的結果。 –

回答