通过Zuora REST API执行ZOQL

时间:2016-11-07 11:02:49

标签: rest zuora zuora-soap

我正在尝试通过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中使用星号执行查询?

2 个答案:

答案 0 :(得分:2)

在ZOQL中使用Asterix进行查询:

简而言之:您无法使用asterix。

更多信息:

来自Zuora KnowledgeCenter

  

没有外卡支持

     

不能使用带星号的星号通配符(*)作为字段名称   query()调用。您必须明确指定字段名称。

您提到的上述source声明可以使用asterix,不是ZOQL,而是约Export ZOQL

Export ZOQLZOQ不同,如上文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