QuickBooks v3 .NET API:如何检索有余额的发票 < TotalAmt

问题描述 投票:0回答:1

以下代码用于检索已付款发票和部分付款发票:

List<Invoice> paidInvoices = invoiceQueryService.ExecuteIdsQuery("SELECT * FROM Invoice WHERE Balance < TotalAmt AND DocNumber IN ('1123', '1124') MAXRESULTS 1000").ToList();

该行抛出以下异常:

'BadRequest. Details: QueryParserError: Encountered " "<" "< "" at line 1, column 69.
Was expecting one of:
    <EOF> 
    "." ...
    <AND> ...
    "between" ...
    "contains" ...
    "=" ...
    "in" ...
    "iterator" ...
    "like" ...
    "maxresults" ...
    "!=" ...
    <NOT> ...
    <OR> ...
    "order" ...
    "orderby" ...
    "startposition" ...
    "=" ...
    "!=" ...
    "=" ...
    "!=" ...
    "=" ...
    "!=" ...
    "." ...
     , '

有什么方法可以检索此发票,而无需将所有发票都记入内存然后过滤它们?

我想在 QuickBooks API 上进行过滤。

.net quickbooks quickbooks-online
1个回答
0
投票

API 不允许您使用其他字段作为值参数。 value 参数必须是文字,即

'true', 'false', '0.0'

因此,如果您想获得所有已付款发票,您应该使用:

List<Invoice> paidInvoices = invoiceQueryService.ExecuteIdsQuery("SELECT * FROM Invoice WHERE Balance = '0.0' AND DocNumber IN ('1123', '1124') MAXRESULTS 1000").ToList();

尝试使用 API 浏览器:https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/invoice

您可以在此处运行查询以查看语法是否正确。

以下是有关如何构建查询的更多信息: https://developer.intuit.com/app/developer/qbo/docs/learn/explore-the-quickbooks-online-api/data-queries

© www.soinside.com 2019 - 2024. All rights reserved.