Dynamic CRM 2015学习笔记(3)oData 查询方法及GUID值比较

本文将比较二种查询字符串在同一个oData查询方法中的不同,另外,还将介绍如何比较不同方法返回的GUID的值。

用同一个oData查询方法,如果传入查询的字符串不一样,返回结果的格式竟然完全不一样。

1. oData查询方法:

//OData查询

ODataRetrieve: function (oDataString) { var retrieveReq = new XMLHttpRequest(); retrieveReq.open("GET", encodeURI(Xrm.Page.context.getClientUrl() + "/XRMServices/2011/OrganizationData.svc/" + oDataString), false); retrieveReq.setRequestHeader("Accept", "application/json"); retrieveReq.setRequestHeader("Content-Type", "application/json;charset=utf-8"); retrieveReq.send(); return JSON.parse(retrieveReq.responseText).d; }

2. 第一种查询方法

查询参数如下:

var buValue = Xrm.Page.getAttribute(‘tm_businessunit‘).getValue() [0].id;var oDataString = ‘BusinessUnitSet?$select=tm_systemuser_businessunit_nltautosales/ParentSystemUserId&$expand=tm_systemuser_businessunit_nltautosales&$filter=BusinessUnitId eq guid\‘‘ + buValue + ‘\‘‘;

这里用到了filter

可以看到返回的结果格式如下:

我们必须用 retrievedOpp.results[0].tm_systemuser_businessunit_nltautosales.ParentSystemUserId  来获取结果

3. 第二种查询方法

查询参数如下:

var buValue = Xrm.Page.getAttribute(‘tm_businessunit‘).getValue() [0].id;var oDataString = ‘BusinessUnitSet(guid\‘‘ + buValue + ‘\‘)?$select=tm_systemuser_businessunit_nltautosales/ParentSystemUserId&$expand=tm_systemuser_businessunit_nltautosales‘;

这里没有用到filter,直接用的guid。

返回的结果如下:

我们可以用retrievedOpp.tm_systemuser_businessunit_nltautosales.ParentSystemUserId 来获取结果

4. GUID比较

如果guid都是从界面上用同一方法比如getValue()取的guid,我们可以直接用[0].id来比较它们的值,如果用oData返回的guid和界面上getValue()取的guid来比较,会发现用上面oData查询方法返回的guid值没有{},而且是小写的;而界面上用getValue()取的guid不仅用{},而且是大写。这时如果直接用==来比较,肯定是不行的。下面介绍了一种通用的比较方法。

//判断两个GUID是相同
    GuidsisEqual: function (guid1, guid2) {
        var isEqual = false;
        if (guid1 != null && guid2 != null) {
            isEqual = guid1.replace(/[{}]/g, "").toLowerCase() == guid2.replace(/[{}]/g, "").toLowerCase();
        }
        return isEqual;
    }

Dynamic CRM 2015学习笔记 系列汇总

Dynamic CRM 2013学习笔记 系列汇总 (46篇)

时间: 2024-10-20 18:17:52

Dynamic CRM 2015学习笔记(3)oData 查询方法及GUID值比较的相关文章

Dynamic CRM 2015学习笔记(5)CRM 2015 导入 OData Query Designer 解决方案

以前一直使用OData Query Designer来生成.验证odata查询字符串,本想把它导入到CRM 2015的环境里,但报错: 到MSDN上发现太老版本的solution确实不能再导入到crm 2015了: 因为这个工具是crm2011版本的,根据上面的图示,我们必须把它先导到crm 2013,再在crm 2013里导出成6.1version的,这时就可以导入到crm 2015里了.但我导到crm 2013里后,再想导出时问题来了,不能导出,因为是manage的solution.必须是u

Dynamic CRM 2015学习笔记 系列汇总

这里列出所有 Dynamic CRM 2015学习笔记 系列文章,方便大家查阅.有任何建议.意见.需要,欢迎大家提交评论一起讨论.QQ:121285904. 一. 安装配置 Dynamic CRM 2015学习笔记(1)Azure 上安装 CRM 2015 Dynamic CRM 2015学习笔记(2)更改系统显示语言 二. JS Dynamic CRM 2015学习笔记(3)oData 查询方法及GUID值比较 前面写了几十篇 Dynamic CRM 2013学习笔记 系列汇总 , 实际上里面

Dynamic CRM 2015学习笔记(4)修改开发人员资源(发现服务、组织服务和组织数据服务)url地址及组织名

在azure vm上安装了CRM 2015后 Dynamic CRM 2015学习笔记(1)Azure 上安装 CRM 2015, 发现了一个问题,那就是在设置 ->自定义项 –> 开发人员资源 里面的几个ulr(发现服务.组织服务和组织数据服务)都不对,显示的都是http://机器名/XRMServices/2011/ -, 但这个url是访问不了的,正确的url应该是 http://xxx.cloudapp.net/XRMServices/2011/ - 下面介绍如何修改成正确的url.

Dynamic CRM 2015学习笔记(1)Azure 上安装 CRM 2015

今天终于在Azure上安装成功了CRM 2015,下面简单介绍下安装过程,以及出现问题的解决: 一. 配置AD, 安装IIS 参考下面的link,里面有详细的配置步骤 http://www.c-sharpcorner.com/UploadFile/cd7c2e/how-to-create-domain-in-windows-server-2012/ 二. 安装Sql Server 2012 如果安装Sql server 2012过程中,出现类似下面的错误: The credentials you

Dynamic CRM 2015学习笔记(2)更改系统显示语言

默认装的是英文的系统,想换成中文的.下面列出操作步骤: 1. 下载并安装语言包 http://www.microsoft.com/en-US/download/details.aspx?id=45014 2. 添加语言 打开settings –> Administration –> Language 点击Apply后,出现下面的提示: 安装CRM安装程序下的 SrsDataConnector\SetupSrsDataConnector.exe 后,再设置语言即可.注意这个要花点时间. 3. 设

Dynamic CRM 2013学习笔记(九)CrmFetchKit.js介绍:Fetchxml、多表联合查询, 批量更新

CrmFetchKit.js是一个跨浏览器的一个类库,允许通过JavaScript来执行fetch xml的查询,还可以实现批量更新,分页查询等.目前已支持Chrome 25, Firefox 19 和 IE9/10 . 它的最大优势是可以通过fetchxml 来查询,这样我们就可以实现真正的多表联合查询,虽然可以用OData终结点的$expand来进行多表的联合查询,但这种方式没办法过滤多表的条件,它只能过滤主表的条件. 下面来看下简单的多表查询的例子: 1.首先定义一个fetchxml: 1

Dynamic CRM 2013学习笔记(十)客户端几种查询数据方式比较

我们经常要在客户端进行数据查询,下面分别比较常用的几种查询方式:XMLHttpRequest, SDK.JQuery, SDK.Rest. XMLHttpRequest是最基本的调用方式,JQuery和Rest的二种方式其实也是用的XMLHttpRequest,只不过是把它封装了一下 JQuery和Rest二种方式的接口一样,所以调用方式也一样 1. XMLHttpRequest 定义 1: function ODataRetrieve(oDataString) { 2: var ServerU

Dynamic CRM 2013学习笔记(八)过滤查找控件 (类似省市联动)

我们经常要实现类似省市联动一样的功能,常见的就是二个查找控件,一个选择了省后,另一个市的查找控件就自动过滤了,只显示当前省下的市,而不是所有的市.当然这是最简单的,实际工作中还有更复杂的功能要通过过滤查找控件来实现.本文主要介绍基本的查找控件过滤.多表关联的复杂过滤以及子表里实现查找控件的过滤.   一.简单的过滤 先看下需求: 按"Special GL Indicator" 来过滤 Posting 查找控件增加了preSearch事件.它发生在查找控件显示对话框供用户查找记录之前,与

Dynamic CRM 2013学习笔记(四十六)简单审批流的实现

前面介绍过自定义审批流: Dynamic CRM 2013学习笔记(十九)自定义审批流1 - 效果演示 Dynamic CRM 2013学习笔记(二十一)自定义审批流2 - 配置按钮 Dynamic CRM 2013学习笔记(三十二)自定义审批流3 - 节点及实体配置 Dynamic CRM 2013学习笔记(三十三)自定义审批流4 - 规则节点 -有分支的流程处理 Dynamic CRM 2013学习笔记(三十四)自定义审批流5 - 自动邮件通知 Dynamic CRM 2013学习笔记(三十