Dynamics CRM 警惕Odata查询的陷阱
Dynamics CRM可以很方便的通过用Odata通过AJAX查询到数据。查询分为两种:精确查找和模糊查找。
精确查找是指通过GUID匹配得到一条数据,如:
模糊查找是通过filter的匹配得到数据
http://CRMURL/org/XRMServices/2011/XRMServices/2011/OrganizationData.svc/AccountSet?$filter=Name eq ‘张三'
Odata查找可以通过其他的查询选项优化查找结果,比如可以通过select指定要查询的子集,可以通过orderby进行排序等等
同时,精确查找的同时,也可以加filter来进行限制,比如需要过滤掉(状态)statecode为不可用(false)的的数据,那么查询应该这样写:
但事实真能如愿吗?
我们来把这条数据状态改成不可用,效果如下:
这是用浏览器直接演示的效果,在JS中运行你会很惊喜的发现:AJAX请求会返回错误。
所以请不要将精确查找和filter一起使用,但如果一定要用GUID和filter一起作为条件重么办?
很简单,把GUID加到Filter当中