【问题标题】:Need list of cancelled/voided/deleted transactions需要取消/作废/删除的交易清单
【发布时间】:2014-01-27 16:24:45
【问题描述】:

我设置了一个 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 我相信我已经在 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”:仅删除交易。

谢谢

【问题讨论】:

  • 这是用于 WINDOWS 的 QuickBooks 还是 QuickBooks ONLINE?您使用的是什么 API?您需要提供更多详细信息...
  • 我看到了一个类似的问题,即当我包含时区时才删除记录。通过在时间字符串中删除时区并确保结果为本地(直觉)太平洋标准时间,我得到了正确的结果。

标签: intuit-partner-platform


【解决方案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

问候,
震动

【讨论】:

    猜你喜欢
    • 2018-08-02
    • 2016-02-28
    • 2020-03-06
    • 2013-07-11
    • 1970-01-01
    • 1970-01-01
    • 2015-12-20
    • 2018-11-29
    • 2014-11-18
    相关资源
    最近更新 更多