如何通过javascript检索报价的所有产品(=报价明细)?
我尝试过以下代码,但这不起作用:
id = quoteid
var options = "$select=ProductId&$filter=QuoteId eq (guid'"+ id + "'";
SDK.REST.retrieveMultipleRecords("QuoteDetail", options, ebcont.crm.quote._successQuoteDetailMultiRetrieve, function(error) {alert(error.message);}, ebcont.crm.quote._multiRetrieveQuoteComplete);
我总是得到以下信息:
Error: 400: Bad Request: operator 'eq' is no compatible with operatortyp 'Microsoft.Crm.Metadata.ComplexTypeInstance'1 ... and 'System.Guid'
有人知道出了什么问题吗?
提前致谢!
答案 0 :(得分:5)
尝试将ID添加到QuoteId
:
id = quoteid
var options = "$select=ProductId&$filter=QuoteId/Id eq (guid'"+ id + "'";
SDK.REST.retrieveMultipleRecords("QuoteDetail", options, ebcont.crm.quote._successQuoteDetailMultiRetrieve, function(error) {alert(error.message);}, ebcont.crm.quote._multiRetrieveQuoteComplete);
它区分大小写,所以要小心。我建议首先使用XrmToolBox的FetchXmlBuilder插件来测试REST oData调用。它可以选择查看其余网址。只要您的javascript生成确切的网址,您就应该很好。
使用新的(2016年)CRM WebAPI端点我还推荐Jason Lattimer的CRM Rest Builder:https://github.com/jlattimer/CRMRESTBuilder/releases