使用Consolibyte PHP Quickbooks DevKit,InvoiceServices查询返回false

时间:2017-04-12 22:54:51

标签: php quickbooks-online

我使用了以下过程:

  • 我创建了一系列发票,涵盖了从今天回到90天前的90天。
  • 我将这些发票转换为逗号分隔的字符串$invoiceString,每个数字周围都有单引号
  • 使用$InvoiceService = new QuickBooks_IPP_Service_Invoice();创建新的InvoiceService对象。
  • 创建以下查询以从我们的QB中检索一批发票: $invoices = $InvoiceService->query($Context, $realm, "SELECT * FROM Invoice WHERE DocNumber IN (" . $invoiceString . ") MAXRESULTS 1000");

这将返回false。但是,如果我将发票号码首次收集的时间范围限制在60天或更短时间内工作,但是61天或更长时间,则返回错误。查询返回的天数是否有硬限制?我在查询中遗失了吗?

提前感谢您的帮助!

修改

这是我在包含调试语句时收到的错误代码:

ERROR: 3100: [message=InternalServerError; errorCode=003100; statusCode=500, ]

RESPONSE: HTTP/1.1 500 Server Error Server: nginx Date: Thu, 13 Apr 2017 14:40:44 GMT Content-Type: text/xml Content-Length: 350 Connection: keep-alive Keep-Alive: timeout=5 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <IntuitResponse time="2017-04-13T07:40:44.030-07:00" xmlns="http://schema.intuit.com/finance/v3"> <Fault type="SERVICE"> <Error code="3100"> <Message>message=InternalServerError; errorCode=003100; statusCode=500</Message> </Error> </Fault> </IntuitResponse>

我不确定您要求的查询。我已经使用InvoiceServices对象包含了我发送的查询。以前的任何SQL查询都只用于创建我在InvoiceService批处理查询中使用的invoiceString。该查询只返回一个大约的数组。 368发票号,然后我用它来创建invoiceString,逗号分隔,每个发票编号用单引号括起来。

我找不到任何错误代码列表中的错误代码3100。

1 个答案:

答案 0 :(得分:0)

请查看示例,其中显示了如何调试此类问题:

具体来说,您可以像这样查看Intuit的原始响应:

print('RESPONSE: <code>' . htmlspecialchars($BillService->lastResponse()) . '</code><br><br><br>');

这样的最后一个错误:

print('ERROR: ' . $BillService->lastError());

此外,如果您发布了正在运行的SQL查询的实际示例,那么我们可以尝试重现该问题。