我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面的微软最有价值专家(Microsoft MVP),欢迎关注我的微信公众号 MSFTDynamics365erLuoYong ,回复383或者20191202可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!
Dynamics 365 Customer Engagement中的视图分为公共视图和私有视图,分别对应视图savedquery 和 userquery ,有时候需要做些查询,这个和对普通实体进行查询没有多大区别,我这里做些简单的代码示例。
比如可以直接在浏览器中输入类似如下的URL查询,查询视图使用的fetchxml包括modifiedon字符,且视图针对的实体是 ly_workorder。
https://demo.luoyong.me/api/data/v9.0/userqueries?$filter=contains(fetchxml,‘modifiedon‘) and returnedtypecode eq ‘ly_workorder‘
效果如下:
如果我要对视图使用的FetchXml进行筛选以便知晓是哪个视图的性能有问题,这个在性能调试的时候常用到,我这里具个例子。就是如果公共视图配置了两个排序条件,我用代码将其搜索出来,当然啦,需要打开某个实体记录的窗体,然后按F12,输入如下代码:
var reg = /\<order attribute/ig; Xrm.WebApi.retrieveMultipleRecords("savedquery", "?$select=fetchxml,name,returnedtypecode&$filter=contains(fetchxml,‘modifiedon‘) and returnedtypecode eq ‘ly_workorder‘").then( function success(result) { if (result.entities.length >= 1) { result.entities.forEach(function (element) { console.log(element.fetchxml); var found = element.fetchxml.match(reg); if (found != null && found.length >= 2) { console.log(element.name + "," + element.returnedtypecode); } }); } }, function (error) { alert(error.message); } );
效果如下:
你可能会问可以搜索私有视图userquery实体吗?可以,只是那怕你具有系统管理员角色,也只能搜索到自己的私有视图和共享给自己的私有视图。