dynamics-crm - Crm 2016 创建选项集表示所有实体

标签 dynamics-crm dynamics-crm-2016 dynamics-365

我已经创建了一个实体,并且我想要一个在创建表单中显示所有实体的选项,我该怎么做? 类似于流程形式中的选项集:

enter image description here

最佳答案

这里有一些用于检索所有实体的 JavaScript 代码

以下是有关代码的一些要点

  • 使用下划线 (_),它在顶部框架上可用,但在其他上下文中可能不可用
  • 仅选择 ($select) EntityTypeCodeDisplayName 属性
  • 应用一系列过滤器来尝试减少结果数量。过滤器包括以下内容
    • 不得是业务流程实体
    • 不能是 Intersect 实体(即 N:N 关系中的联接表)
    • 不得是一项事件
    • 不得是 ActivityParty
    • 必须在高级查找中可用
    • 必须能够触发工作流程

代码:

var underscore = top["_"];
var entityMetadata = (function(_) {

    return { retrieve: queryMetadata };

    function buildEntityList(data)
    {
        var entities = _.chain(data.entities)
            .map(function(entity) { 
                return { 
                    "Name": entity.DisplayName.UserLocalizedLabel.Label, 
                    "ETC": entity.ObjectTypeCode 
                }; 
            })
            .sortBy("Name")
            .value();

        return entities;
    }

    function queryMetadata()
    {
        var select = "$select=DisplayName,ObjectTypeCode";

        var filter = "$filter="
        filter += "IsBPFEntity eq false";
        filter += " and IsIntersect eq false";
        filter += " and IsActivity eq false";
        filter += " and IsActivityParty eq false";
        filter += " and CanTriggerWorkflow eq true";
        filter += " and IsValidForAdvancedFind eq true";

        var p = Xrm.WebApi.retrieveMultipleRecords("EntityDefinitions", "?" + select + "&" + filter).then(buildEntityList);
        return p;
    }

})(underscore);

此代码返回一个 promise,其中所有实体都符合上述条件。以下是如何调用它,并将结果写入浏览器控制台:

entityMetadata.retrieve().then(console.log);

这会将所有显示名称和实体类型代码输出到控制台,如下所示:

enter image description here

StackOverflow 上的其他答案展示了如何使用 options 构建 select 控件,因此我不会在此处包含该内容。

关于dynamics-crm - Crm 2016 创建选项集表示所有实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51491115/

相关文章:

javascript - 使用 MSAL 获取 token 而不使用 MSAL 登录

c# - GET 请求在浏览器中有效,但在使用 Postman 时我得到了 Unauthorized

c# - 使用 ADAL C# 作为 secret 用户/守护程序服务器/服务器到服务器 - 401 未经授权

azure - 从 Dynamics 365 插件通过应用程序服务身份验证访问 Function App

javascript - 覆盖 CRM 网格中双击事件调用的标准方法。

dynamics-crm - MS Dynamics CRM 中电子邮件实体的奇怪自定义行为

asp.net-web-api - Dynamics CRM Web API - 分配记录/更新所有者字段

asp.net-web-api - CRM Web api 与过滤器一起扩展 - 内连接还是左连接?

azure - 如何为 Dynamics 365 中的所有实体启用更改跟踪?

javascript - MS Dynamics 事件响应 POST : 500 Internal Server Error