Dynamics 365利用Web API对视图进行查询

我是微软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").then(
    function success(result) {
        if (result.entities.length >= 1) {
            result.entities.forEach(function (element) {
                if (element.fetchxml != null) {
                    var found = element.fetchxml.match(reg);
                    if (found != null && found.length >= 2) {
                        //console.log(element.fetchxml);
                        console.log(element.name + "," + element.returnedtypecode);
                    }
                }
            });
        }
    },
    function (error) {
        alert(error.message);
    }
);

效果如下:

 你可能会问可以搜索私有视图userquery实体吗?可以,只是那怕你具有系统管理员角色,也只能搜索到自己的私有视图和共享给自己的私有视图。

原文地址:https://www.cnblogs.com/luoyong0201/p/Dynamics_365_Query_View_By_Web_API.html