小编典典

DataService类的findAll方法仅返回100个实体

java

我们已经成功地将v2
QBO迁移到v3,在生产之后,我们从一位客户那里遇到了问题。他们在QBO帐户中拥有超过100个客户。他们想将它们复制到我们的应用程序中。我们实现了这样的导入:

    DataService service = getDataService(owner);  // obtain DataService via Access Keys
    List<com.intuit.ipp.data.Customer> customers = 
         service.findAll(new com.intuit.ipp.data.Customer()); 
    for (com.intuit.ipp.data.Customer customer : customers) {
        createCustomer(customer, owner);  // this is our internal method to create
    }

如《类库参考》中所述 -方法findAll是一个

    Method to retrieve all records for the given entity.

但是我们的客户从其QBO v3帐户中 获得 前100个实体 (客户)。如果他执行相同的导入操作-
他将再次获得相同的前100个实体。此方法不允许使用任何分页选项。

所以问题是,如何获得 所有 实体?


阅读 324

收藏
2020-11-30

共1个答案

小编典典

您应该将查询端点与页面过滤器一起使用。

以下查询获取客户1-10:

String query = select($(customer)).skip(0).take(10).generate();

输出- SELECT * FROM Customer STARTPOSITION 1 MAXRESULTS 10

以下查询使客户21-25:

String query = select($(customer)).skip(20).take(10).generate();

参考-https:
//developer.intuit.com/docs/0025_quickbooksapi/0055_devkits/0201_ipp_java_devkit_3.0/0011_query_filters#Pagination

最后

QueryResult queryResult = service.executeQuery(query);

谢谢

2020-11-30