需要取消/无效/删除交易清单

时间:2014-01-27 16:24:45

标签: intuit-partner-platform

我设置了ETL,将SalesReceipts,Invoices和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());
    }
}

但是,我从未在此查询中遇到任何已取消/无效/已删除的交易,并且交易状态可能未在where过滤器中使用。

编辑#2。编辑#2 我相信我已经在Change Data Capture服务中找到了我需要的东西。 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 个答案:

答案 0 :(得分:1)

普雷斯顿,
如果您使用的是QuickBooks Desktop,则需要使用QBXML SDK v13来访问事务,如果您使用的是QuickBooks Online,则可以使用QBO v3 REST API。

QBO:
https://developer.intuit.com/docs/0025_quickbooksapi/0050_data_services

QBD:
https://developer.intuit.com/docs/0250_qb

的问候,
震动