注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

微软MVP罗勇的博客

微软MVP罗勇,www.luoyong.me

 
 
 

日志

 
 

Dynamics CRM 客户端程序开发:准备知识之三  

2014-02-17 08:53:12|  分类: CRM客户端开发 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

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

本博文主要摘译自 Dynamics CRM 2013 Update Rollup 1对应的英文版SDK,主要是关于OData部分,遗憾的是,虽然Dynamics CRM 从2011版本升级到2013版本,但是支持的OData版本似乎没有变化,还是不完全支持1.0。

OData是Open Data Protocol的缩写,使用的是Open Data协议,它继承了RESTful的设计模式,REST代表的是Representational State Transfer 的缩写。REST的架构风格是所有的资源都可以通过一个唯一的URI来寻址。在Dynamics CRM中,资源可以是实体的记录集或者一条记录。

在CRM中,OData终结点被称之为组织数据服务(Organization Data Service),它的根地址可以在CRM中导航到 设置 > 自定义项 > 开发人员资源 中看到,如下图所示,一般是类似 [Your Organization Root URL]/xrmservices/2011/organizationdata.svc 格式。

Dynamics CRM 客户端程序开发:准备知识之三 - 罗勇 - 罗勇的博客

 

组织数据服务的元数据是通过OData 实体数据模型(简称OData EDM)来描述,它的URL是组织数据服务后面加上 $metadata,如下图所示:

Dynamics CRM 客户端程序开发:准备知识之三 - 罗勇 - 罗勇的博客

 

OData一般用于实体数据的增删改查,当然也可以用于关联(associate)和取消关联(disassociate),其他的需要Execute来执行的实体的消息则无法通过OData终结点来处理。OData终结点并没有完全实现OData 1.0的标准,没有实现的查询选项包括 $linecount ,$count,$format ,实现的查询选项包括 $expand,$filter,$orderby,$select,$skip,$top。最后一个局限性是如果自定义实体还不存在的时候你无法使用晚绑定(late binding)。

在实际操作中有如下问题需要注意,这是我个人的总结:

1. OData语法需要略懂,但也不一定需要强记,因为有工具可以生成OData使用的URI,后面博文会介绍,敬请期待。

2. 一次OData查询返回的最多记录数是50,应该是不可以自行更改(若哪位看官知道怎么修改可以留言告知),你不能用OData查询返回的记录数来确定符合查询条件的记录就是这么多,而且Dynamics CRM目前实现的OData也不支持$count 查询选项,所以用OData来计算符合条件的有可能超过50行的记录的数量是非常不明智的,当然,可以通过执行JavaScript执行FetchXML来计算,但是这个默认也是最多能计算20,000行吧,可以更改。

3.OData中使用的实体名称及属性名称全部都是架构名称,大小写混合的。

4.当OData涉及到复杂数据类型时要特别注意,具体请参考SDK的 Query Microsoft Dynamics CRM data using the OData endpoint 章节,复杂数据类型包括 查找(EntitiyReference),选项集(OptionSet),货币(Money)等等,后面的博文会以实例操作说明。

5. 日期(日期时间)字段的值读取,设置和查询需要注意,后面博文有实例说明。

素格格新疆特产店--做最好新疆特产的搬运工。
本店由博主的新疆老婆开设,搬运各种最好的新疆特产,是自用,送礼,年货,孝敬长辈特别是(岳)父母的首选!
Dynamics CRM 客户端程序开发:准备知识之三 - 罗勇 - 罗勇的博客
 
  评论这张
 
阅读(423)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017