time 
设为首页】【收藏本站
当前位置: 主页 > ERP > CRM > 【Dynamics CRM客户端程序开发教程】3、准备知识之三

【Dynamics CRM客户端程序开发教程】3、准备知识之三

时间:2014-10-21 14:28 点击:599次 字体:[ ]




本博文主要摘译自 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客户端程序开发教程】3、准备知识之三_www.fengfly.com

 

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

【Dynamics CRM客户端程序开发教程】3、准备知识之三_www.fengfly.com

 

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. 日期(日期时间)字段的值读取,设置和查询需要注意,后面博文有实例说明。


本文地址 : http://www.fengfly.com/plus/view-215444-1.html
标签: Dynamics CRM 开发教程 客户端程序
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码: