首页 > 其他分享 >Dynamics CRM - 如何获取 Entity 的 ObjectTypeCode

Dynamics CRM - 如何获取 Entity 的 ObjectTypeCode

时间:2023-04-21 11:35:10浏览次数:49  
标签:req setRequestHeader Entity 获取 ObjectTypeCode Dynamics CRM

一、应用场景:

      在平时的CRM开发中,偶尔需要用到 Entity ObjectTypeCode 来校验 Entity,在这里简单介绍下获取 Entity ObjectTypeCode 的几种手段。

二、获取方式:

      a.通过 SQL Server 查询

      在 SQL Server 中,我们可以通过EntityView获取ObjectTypeCode,查询语句如下:

SELECT Name,ObjectTypeCode FROM EntityView

      b.在 Plugin 中查询

      在 Plugin 中,我们可以使用 QueryExpression(不限于使用此方式,也可以使用 Linq 等方式) 从 StringMap 表里获取对应的 Entity Name 以及 ObjectTypeCode,在此不再列出 sample 代码,关于 QueryExpression 的使用可以查看我前面的博客。

      c.在 JS 中查询

      通常情况下,在 Plugin 能查询到的表,在 JS 中也能查到,但是这次比较特殊的是,CRM Web Resource 中没有提供 StringMap 这个数据集,因此我们只能另寻他路来获取 ObjectTypeCode,这里大概列举一下方法:

      1)在CRM Setting 目录下查看 Developer Resource,拿到 API 链接

      

      2)通过以下链接可以获取到所有Entity以及它们的ObjectTypeCode:

http://{IPAddress}/{OrganizationName}/api/data/v9.0/EntityDefinitions?$select=LogicalName,ObjectTypeCode

     

      3)实际上就是从OData拿数据,可以给链接添加查询条件来获取想要的ObjectTypeCode:

http://{IPAddress}/{OrganizationName}/api/data/v9.0/EntityDefinitions?$select=LogicalName,ObjectTypeCode&$filter=LogicalName%20eq%20%27account%27

      

      4)代码示例:

 1 var req = new XMLHttpRequest();
 2 req.open("GET", Xrm.Page.context.getClientUrl() + "/api/data/v9.0/EntityDefinitions?$select=ObjectTypeCode&$filter=LogicalName eq 'account'", false);
 3 req.setRequestHeader("OData-MaxVersion", "4.0");
 4 req.setRequestHeader("OData-Version", "4.0");
 5 req.setRequestHeader("Accept", "application/json");
 6 req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
 7 req.setRequestHeader("Prefer", "odata.include-annotations=\"*\"");
 8 req.onreadystatechange = function () {
 9     if (this.readyState === 4) {
10         req.onreadystatechange = null;
11         if (this.status === 200) {
12             var results = JSON.parse(this.response);
13             if (results.value.length > 0) {
14                 var entityCode = results.value[0].ObjectTypeCode;
15             }
16         } else {
17             Xrm.Utility.alertDialog(this.statusText);
18         }
19     }
20 };
21 req.send();

 

标签:req,setRequestHeader,Entity,获取,ObjectTypeCode,Dynamics,CRM
From: https://www.cnblogs.com/Sunny20181123/p/17339781.html

相关文章

  • Dynamics CRM - 安装 SSRS CRM Reporting Extensions 时报错:Action Microsoft.Crm.Set
    一、问题场景:   在安装CRM2016的SSRSReportingExtensions时遇到以下报错:    二、解决方案:   a.根据提示,访问对应路径的文件夹:C:\ProgramFiles\MicrosoftSQLServer\MSRS13.MSSQLSERVER\ReportingServices,可以看到ReportManager文件夹并不存在; ......
  • Dynamics CRM - 如何修复安装CRM 2016时出现SQL Native Client 下载失败的问题
    一、问题场景:   近日,为了测试DynamicsCRM8.2到9.17的升级,重装了CRM2016,过程中发现存在SQLNativeClientDownloadFailed导致安装无法继续进行。在此记录一下问题的解决办法:二、查找原因:   a.首先通过访问安装日志目录查看原因,路径为:SystemDrive:\Users\U......
  • 接口请求413 Request Entity Too large问题处理
     刚看到这个问题时,发现是请求接口时传递的参数过大,于是就在度娘上搜索了关于这个问题的处理方法;参考了好几篇文章,基本都说是配置问题最终,参考了知乎上的这篇文章:https://zhuanlan.zhihu.com/p/76679642关于上篇文章中的前端配置参数:bodyParser在express4版本中已经被弃用......
  • VO、DTO、Entity的区别
    只能说从实际用法的一般习惯上进行区分:1、entity里的每一个字段,与数据库相对应,注意:entity与对应的实际数据库表的字段没有强制要求但是一般建议保持一致(包括字段数据类型),当然,从实际使用中,entity也可以比对应的实际数据库表的字段少但是一定不能多2、vo里的每一个字段,是和你前......
  • PayloadTooLargeError: request entity too large错误解决
    这个错误通常是由于你正在尝试上传大于服务器最大允许大小的文件或数据导致的。这通常可以通过在服务器端进行一些配置更改来解决。如果您使用的是Node.js,您可以使用body-parser中间件来增加请求体的限制。例如,以下代码将允许请求体的最大大小为10MB:varbodyParser=require('body......
  • Springboot使用RestTemplate发送Post请求postForEntity (application/json)的坑
    当使用RestTemplate进行http请求时,的确很方便,但是当需要进行post请求时遇到了坑1POST传递参数:采用LinkedMultiValueMap,不能使用HashMapStringurl='http://posturl';MultiValueMap<String,String>map=newLinkedMultiValueMap<String,String>();map.add(......
  • Dynamics 365 安装插件注册工具 PluginRegistration
    1.创建文件夹,例:D:\Dynamics_365_Development_Tools\pluginsTool2.powershell进入D:\Dynamics_365_Development_Tools\pluginsTool3.运行下面指令(直接复制粘贴到PowerShell即可),运行完成后按回车[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::T......
  • 导入 Microsoft Dynamics 365 解决方案时发生 LocalizedNames 错误,元素 savedquery 的
    尝试在Dynamics365中导入解决方案时,会收到以下错误:“无法导入此解决方案包,因为它包含无效的XML。可以尝试使用架构验证错误中找到的信息手动编辑XML内容来修复文件,也可以联系解决方案提供商。错误代码8004801a。如果选择“技术详细信息”,则会看到以下消息以及其他......
  • NETCORE - IdentityServer4 密码验证模式
    NETCORE-IdentityServer4密码验证模式                    引用:(60条消息)IdentityServer4密码模式(ResourceOwnerPasswordCredentials)_ids4hybridpassword_哀莫离裳的博客-CSDN博客 ......
  • 2023-04-11 使用react-draft-wysiwyg插件进行图片插入后编写文字时抛出错误:Unknown Dr
    前言:react+antd+react-draft-wysiwyg文本编辑业务场景,当我点击插入图片时,在该图片上一行或下一行进行文字输入会报如下错误:报错:UnknownDraftEntitykey:null.未知的DraftEntitykey:null。原因:当你插入图片时,新的图片img需要被包裹在一个块级元素内就不会报错(这看起来并不是原......