IPP Java DevKit 2.0.9(2.0.6でも試してみました)を使用して、顧客IDによってQBO内の特定の請求書を検索し、特定の日付より前に発生するラッパーメソッドを実装しました。〜16か月間に65の請求書がある特定の顧客でテストしていますが、クエリは常にdateFinish(endTransactionDate)の前に発生する10の「最新の」請求書を返します。私もさまざまな順列を試しました。顧客ID基準のみを含め、endTransactionDateのみを含め、「本当に早い」startTransactionDate、開発バージョン、および製品バージョンを追加しました。これは、APIが結果リストを切り取って、最初の10レコードのみを含めているかのようですが、正当な理由はないようです。
public static List<QBInvoice> findInvoices(PlatformSessionContext context, String dataSource, Calendar dateFinish, List<String> customerIds) throws QBInvalidContextException, Exception {
QBInvoiceService invoiceService = QBServiceFactory.getService(context, QBInvoiceService.class);
QBInvoiceQuery invoiceQuery = new QBInvoiceQuery(context);
invoiceQuery.setEndTransactionDate(QuickbooksUtil.dateToQbDate(dateFinish));
if (!customerIds.isEmpty()) {
IdSet idSet = QuickbooksUtil.stringListToIdSet(context, dataSource, customerIds);
invoiceQuery.setContactIdSet(idSet);
}
return invoiceService.getInvoices(context, invoiceQuery);
}