各位小伙伴们,今天是博主2016年发的第一篇文章。首先祝大家新年快乐。工资Double,哈哈。今天我们来看一个比較重要的Feature--使用Web API运行FetchXML查询!

对的,各位。你们没有听错,使用Web API运行FetchXML查询。在过去我们做这种事情但是要花九牛二虎之力哟,拼接大量的SOAP消息体并且还easy出错。

如今好了,我们自己能够在URL里面加上我们想要运行的FetchXML就可以,系统则会乖乖的把我们想要的数据返回回来。是不是非常美好呢!

言归正传,Web API的数据查询方式还是比較轻量级的。还是做不了复杂的查询,比如:聚合查询。分组查询。但是我们却能用FetchXML来轻松实现这些功能,接下来呢,博主就给大家演示一个简单的小样例:用Web API查询当前客户实体的记录总数。

首先呢。我们要构造一个FetchXML,例如以下:

<fetch aggregate="true">
<entity name="account">
<attribute name="accountid"/>
<attribute name="name" aggregate="count" alias="ct"/>
</entity>
</fetch>

然后我们要把这个FetchXml拼接到Web API的请求URL中,例如以下:

https://ghostbear.api.crm6.dynamics.com/api/data/v8.0/accounts?fetchXml=%3Cfetch%20aggregate=%22true%22%3E%3Centity%20name=%22account%22%3E%3Cattribute%20name=%22name%22%20aggregate=%22count%22%20alias=%22ct%22/%3E%3C/entity%3E%3C/fetch%3E

最后我们通过以下的代码对它进行调用,并将结果返回:

            HttpRequestMessage accCountReq = new HttpRequestMessage(HttpMethod.Get, webApiUrl + "/accounts?

fetchXml=%3Cfetch%20aggregate=%22true%22%3E%3Centity%20name=%22account%22%3E%3Cattribute%20name=%22name%22%20aggregate=%22count%22%20alias=%22ct%22/%3E%3C/entity%3E%3C/fetch%3E");
accCountReq.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessCode); HttpResponseMessage accCountResp = await client.SendAsync(accCountReq);
if (accCountResp.IsSuccessStatusCode)
{
JObject result = JsonConvert.DeserializeObject<JObject>(await accCountResp.Content.ReadAsStringAsync());
Console.WriteLine(result.ToString());
}

返回结果

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

Dynamics CRM 2015/2016 Web API:聚合查询的更多相关文章

  1. Dynamics CRM 2015/2016 Web API:新的数据查询方式

    今天我们来看看Web API的数据查询功能,尽管之前介绍CRUD的文章里面提到过怎么去Read数据,可是并没有详细的去深究那些细节,今天我们就来详细看看吧.事实上呢,Web API的数据查询接口也是基 ...

  2. Dynamics CRM 2015/2016 Web API:Unbound Custom Action 和 Bound Custom Action

    今天我们再来看看Bound/Unbound Custom Action吧,什么是Custom Action?不知道的小伙伴们就out了,Dynamics CRM 2013就有了这个功能啦.和WhoAm ...

  3. Dynamics CRM 2015/2016 Web API:Unbound Function 和 Bound Function

    今天我们来看看Dynamics CRM Web API Function 吧, 这是一个新概念,刚接触的时候我也是比較的迷糊.这种命名确实是和之前的那套基于SOAP协议的API全然联系不上.好了,不说 ...

  4. Dynamics CRM 2015/2016 Web API:Unbound Action 和 Bound Action

    上篇文章介绍了Bound/Unbound Function.今天我们来看看Action吧.像我之前说的:Function和Action之前的差别能够简单理解为.Function不改动数据,可是Acti ...

  5. 控制台程序(C#)不弹出登录窗口连接到Dynamics CRM Online的Web API

    微软动态CRM专家罗勇 ,回复331或者20190505可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me! 我之前的文章 控制台程序(C#)不弹出认证窗口连接到Dynami ...

  6. Dynamics CRM 2015/2016新特性之三十二:新增乐观并发处理

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复215或者20160328可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...

  7. Dynamics CRM 2015/2016新特性之三十三:有了ExecuteTransactionRequest,再也不用担心部分成功部分失败了

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复216或者20160329可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...

  8. 控制台程序(C#)不弹出认证窗口连接到Dynamics CRM Online的Web API

    摘要: 本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复271或者20180602可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyon ...

  9. Dynamics CRM 2015/2016新特性之三十四:有了插件日志,调试插件so easy!

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复217或者20160330可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...

随机推荐

  1. [转] lua 获取本地当月天数

    亲测,无误. 原文传送门:lua 获取本地当月天数 开发中有用到,记录一下. local year,month = os.date("%Y", os.time()), os.dat ...

  2. EntityFramework Model有外键时,Json提示循环引用 解决方法

    正文之前先说两句,距离上篇博客已将近两个月,这方面的学习和探索并没有停止,而是前进道路上遇上了各种各样的问题,需要不断的整理.反思和优化,这段时间的成果,将在最近陆续整理发出来. 个人感觉国内心态太浮 ...

  3. asp.net基于StateServer的二级域名共享session

    备注:亲自试验有效,如果网友有通过下面的教程未实现session共享的,欢迎留言说明你遇到的问题.必有回复. 最近为实现的二级域名共享session纠结好久.网上的很多实现的方法试了都不行,查了很久才 ...

  4. js+jquery检测用户浏览器型号(转)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. java你可能不知道的事(2)--堆和栈<转>

    在java语言的学习和使用当中你可能已经了解或者知道堆和栈,但是你可能没有完全的理解它们.今天我们就一起来学习堆.栈的特点以及它们的区别.认识了这个之后,你可能对java有更深的理解. Java堆内存 ...

  6. Go Revel - Filter(过滤器)源码分析

    在 Go Revel - server.go 源码分析 http://www.cnblogs.com/hangxin1940/p/3265538.html 说到revel框架很多重要的东西都Filte ...

  7. 如何在Linux下Redis安装

    转载出于:http://blog.csdn.net/jiangguilong2000/article/details/8114740 redis作为NoSQL数据库的一种应用,响应速度和命中率上还是比 ...

  8. QButton

    Button.h #pragma once // QButton class QButton : public CButton { DECLARE_DYNAMIC(QButton) // Constr ...

  9. mac安装docker,显示无效的命令

    mac安装完docker后,显示无效的命令. 在应用程序中找到docker安装的路径,将该路径写到/etc/paths里面

  10. IntelliJ: Maven projects need to be imported: Import Changes Enable Auto-Import

    upon creating a new maven project I get the popup box saying "Maven projects need to be importe ...