Quickbooks Online API:创建帐户步骤显示“名称已存在”,但在报告零结果之前检查名称

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

我有一个与 QBOnline 集成的解决方案,并将发票导出到 QBO。这个过程已经存在了一段时间,通常效果很好。但这一次,它给出了一个奇怪的错误。

它在到达行项目之前检查了很多东西:客户、生产、项目等。然后对于这张发票,当它开始处理行项目时,它也会预先检查一些东西。如果 QBO 中不存在事物,那么它将创建它们。

在这种情况下,它会尝试检索“帐户”,看看它是否已经存在。查询:

    ?query=select * from account where Name = 'Audio:Film:Editorial'

结果:

None found

因此此过程然后尝试创建一个帐户(提交的数据位于 cURL 选项的底部):

cURL选项:

-D $dump_header 
-X POST 
-H "Authorization: Bearer eyJl...VGE4w" 
-H "Accept: application/json" 
-H "Content-Type: application/json" 
-d {"AccountType":"Income","Name":"Audio:Film:Editorial"}

结果:

{"Fault":{"Error":[{"Message":"Duplicate Name Exists Error","Detail":"The name supplied already exists. : Id=345","code":"6240"}],"type":"ValidationFault"},"time":"2023-02-13T16:36:44.868-08:00"}

所以对这个查询的响应是该帐户已经存在......但它不是只是测试并被告知该帐户不存在吗?

有关导致错误消息的原因的任何提示?或者我需要深入了解哪些现有值可能会导致它出错?

api quickbooks-online
1个回答
0
投票

QuickBooks API 的默认行为是不返回非活动对象

我敢打赌,当你对 API 进行查询时,你只是在请求一个帐户列表......并且只取回 Active 的帐户。你应该做的是询问 all 帐户的列表,无论状态如何。

我不知道这是什么,因为这不是您可以发送给 QuickBooks 的 API 调用(检查您的代码 - 您可能将其转换为 QuickBooks 可以在代码中的其他地方理解的内容):

 {"api":"QuickBooks","companyID":"1 - MyCompany, Ltd","query":{"fieldName":"accountName","object":"account","searchValue":"Audio:Film:Editorial"},"username":"Test Dev"}

但是您应该发送给 QuickBooks 的是这样的查询,以获取活动和非活动帐户:

  SELECT * FROM Account WHERE Active IN (true, false)
© www.soinside.com 2019 - 2024. All rights reserved.