我正在尝试通过Zuora REST API执行一些ZOQL。
我已经提到了this doc,我正在使用REST端点v1 / action / query来执行ZOQL。
首先,我尝试了非常简单的请求并将结果返回
{
"queryString": "select AccountId, FirstName, LastName from contact"
}
现在我尝试使用下面的星号查询
{
"queryString": "select * from contact"
}
但是我得到了以下错误
{
"faultcode": "fns:MALFORMED_QUERY",
"faultstring": "You have an error in your ZOQL syntax",
"detail": {
"MalformedQueryFault": {
"FaultCode": "MALFORMED_QUERY",
"FaultMessage": "You have an error in your ZOQL syntax"
}
}
}
从here,我发现ZOQL支持星号。对于涉及多个对象的ZOQL,我甚至得到了相同的错误。像
SELECT Subscription.Name, Account.Name FROM Subscription WHERE Subscription.Status='Active' AND DefaultPaymentMethod.CreditCardType='Visa'
修改的 以上查询在Zuora SOAP API中也不起作用
如何在Zuora REST API或Zuora SOAP API中使用星号执行查询?
答案 0 :(得分:2)
在ZOQL中使用Asterix进行查询:
简而言之:您无法使用asterix。
更多信息:
来自Zuora KnowledgeCenter:
没有外卡支持
您不能使用带星号的星号通配符(*)作为字段名称 query()调用。您必须明确指定字段名称。
您提到的上述source声明可以使用asterix,不是ZOQL,而是约Export ZOQL。
Export ZOQL与ZOQ的不同,如上文docs中所述:
Zuora Export ZOQL(Zuora Object Query Language)是查询语言 用于在Zuora SOAP API中使用Export对象创建Export。 Zuora Export ZOQL类似于我们的一般ZOQL,有一些 差异。最大的区别在于使用Exports,你查询一个 Zuora数据源,而不是SOAP API对象。
希望这会对你有所帮助。
祝你好运!答案 1 :(得分:2)
在查询中使用*的原因是:
1)您希望所有字段可用
OR
2)您想找出可用的字段。
对于后一种情况,请使用REST服务的Describe函数,如下所示:
2 * N * log(2) N = N * (log(2) N
它将以以下方式返回发票(或任何其他)对象的XML描述:
https://{servicename}.zuora.com:####/v1/describe/Invoice