• 可以设置实体在Dynamics 365高级查找中不显示吗?


    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面的微软最有价值专家(Microsoft MVP),欢迎关注我的微信公众号 MSFTDynamics365erLuoYong ,回复371或者20191017可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!

    Dynamics 365的高级查找是个很好用的功能,某些特殊情况下,有需求要求实体不要在高级查找中出现,可以吗?

    通过 MetadataBrowser 可以看到实体有一个属性叫做 IsValidForAdvancedFind ,默认是True,改成False可以吗?

    顺着这条思路,我用Web API来更改该实体的元数据看下,主要参考官方文档 Create and update entity definitions using the Web API .

    我这里利用POSTMAN来调用Web API,方法参考我前面的博文:配置Postman通过OAuth 2 implicit grant获取Dynamics 365 CE Online实例的Access Token

    首先找到要更改实体的 MetadataId,可以通过类似这样的URL来找到。

    https://crm867953.api.crm5.dynamics.com/api/data/v9.1/EntityDefinitions?$select=MetadataId&$filter=LogicalName eq 'cr051_testentity'

    然后我用POSTMAN发起请求,截图如下:

    注意请求的方法是PUT,请求的URL是:https://crm867953.api.crm5.dynamics.com/api/data/v9.1/EntityDefinitions(32398015-4ce4-e911-a996-000d3aa0f3aa) ,请求的内容是JSON格式,我用的是:

    {
        "IsValidForAdvancedFind":false
    }

    截图如下:

    可以看到发起请求后没有报错,执行成功,返回的HTTP 状态码是204,代表执行成功,没有返回内容。但是再去看该实体的元数据,发现这个属性还是true,没有改过来,实体也还是显示在高级查找中。

    是这种更改实体元数据的方法不好用吗?我用下图来更改另外一个属性- IsQuickCreateEnabled ,执行后是可以更改成功的。

     若有人知道可以让实体不出现在高级查找中的方法请留言告知我。

    下面代码是查询哪些实体启用了Audit。

        var clientURL = Xrm.Page.context.getClientUrl();
        var req = new XMLHttpRequest()
        req.open("GET", encodeURI(clientURL + "/api/data/v9.1/EntityDefinitions?$select=LogicalName,DisplayName&$filter=IsAuditEnabled/Value eq true&$count=true"), true);
        req.setRequestHeader("Accept", "application/json");
        req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
        req.setRequestHeader("OData-MaxVersion", "4.0");
        req.setRequestHeader("OData-Version", "4.0");
        req.onreadystatechange = function () {
            if (this.readyState == 4) {
                req.onreadystatechange = null;
                if (this.status == 200) {
                    var responseJSON = JSON.parse(this.responseText);
                    Xrm.Utility.alertDialog("本次查询返回符合条件的记录条数:" + responseJSON["@odata.count"]);
                    if (responseJSON.value != null && responseJSON.value.length >= 1) {
                        for (var i = 0; i < responseJSON.value.length; i++) {
                            console.log(responseJSON.value[i].LogicalName + "," + responseJSON.value[i].DisplayName.UserLocalizedLabel.Label);
                        }
                    }
                }
                else {
                    var error = JSON.parse(this.responseText).error;
                    Xrm.Utility.alertDialog("查询出错." + error.message);
                }
            }
        };
        req.send();
  • 相关阅读:
    PC逆向之代码还原技术,第三讲汇编中加法的代码还原
    PC逆向之代码还原技术,第二讲寻找程序入口点
    C++STL模板库适配器之优先级队列
    C++STL模板库适配器之queue队列
    C++STL模板库适配器之stack容器
    iBinary C++STL模板库关联容器之map/multimap
    C++STL模板库关联容器之set/multiset
    C++STL模板库序列容器之deque
    C++STL模板库序列容器之List容器
    C++STL模板库序列容器之vector
  • 原文地址:https://www.cnblogs.com/luoyong0201/p/Dynamics_365_Hide_Entity_In_Advanced_Find.html
Copyright © 2020-2023  润新知