Dynamic CRM 2013学习笔记(十)客户端几种查询数据方式比较
我们经常要在客户端进行数据查询,下面分别比较常用的几种查询方式:XMLHttpRequest, SDK.JQuery, SDK.Rest.
XMLHttpRequest是最基本的调用方式,JQuery和Rest的二种方式其实也是用的XMLHttpRequest,只不过是把它封装了一下
JQuery和Rest二种方式的接口一样,所以调用方式也一样
1. XMLHttpRequest
- 定义
1: function ODataRetrieve(oDataString) {
2: var ServerUrl = Xrm.Page.context.getClientUrl();
3: if (ServerUrl.match(/\/$/)) {
4: ServerUrl = ServerUrl.substring(0, ServerUrl.length - 1);
5: }
6: var retrieveReq = new XMLHttpRequest();
7: retrieveReq.open("GET", ServerUrl + "/XRMServices/2011/OrganizationData.svc/" + oDataString, false);
8: retrieveReq.setRequestHeader("Accept", "application/json");
9: retrieveReq.setRequestHeader("Content-Type", "application/json;charset=utf-8");
10: retrieveReq.send();
11: return JSON.parse(retrieveReq.responseText).d;
12: }
- 调用方法:
1: var retrievedContact = ODataRetrieve("ContactSet(guid'" + ContactAttribute.getValue()[0].id + "')?Select=JobTitle,MobilePhone");
2: if (retrievedContact != null) {
3: ContactJobAttribute.setValue(retrievedContact.JobTitle);
4: ContactPhoneAttribute.setValue(retrievedContact.MobilePhone);
5: }
2. SDK.JQuery
- SDK.JQuery.js 位于SDK\SampleCode\JS\RESTEndpoint\JQueryRESTDataOperations\JQueryRESTDataOperations\Scripts下
1: retrieveRecord: function (id, type, select, expand, successCallback, errorCallback)2: retrieveMultipleRecords: function (type, options, successCallback, errorCallback, OnComplete)
- 调用方法:
1: SDK.JQuery.retrieveRecord(
2: AccountId,
3: "Account",
4: null, null,
5: function (account) {
6: writeMessage("Retrieved the account named \"" + account.Name + "\". This account was created on : \"" + account.CreatedOn + "\".");
7: updateAccount(AccountId);
8: },
9: errorHandler
10: );
11:
1: SDK.JQuery.retrieveMultipleRecords(2: "Contact",3: "$select=ContactId,FullName&$top=1",4: function (results) {5: var firstResult = results[0];6: if (firstResult != null) {7: primaryContact = results[0];8: }9: else {10: writeMessage("No Contact records are available to set as the primary contact for the account.");11: }12: },13: errorHandler,14: function () {15: //OnComplete handler16: }17: );18:
3. SDK.Rest
- SDK.Rest.js 位于SDK\SampleCode\JS\RESTEndpoint\JavaScriptRESTAssociateDisassociate\JavaScriptRESTAssociateDisassociate\Scripts下
1: retrieveRecord: function (id, type, select, expand, successCallback, errorCallback)2: retrieveMultipleRecords: function (type, options, successCallback, errorCallback, OnComplete)
- 调用方法:
1: SDK.REST.retrieveRecord(
2: AccountId,
3: "Account",
4: null,null,
5: function (account) {
6: writeMessage("Retrieved the account named \"" + account.Name + "\". This account was created on : \"" + account.CreatedOn + "\".");
7: updateAccount(AccountId);
8: },
9: errorHandler
10: );
11:
1: SDK.REST.retrieveMultipleRecords(2: "Contact",3: "$select=ContactId,FullName&$top=1",4: function (results) {5: var firstResult = results[0];6: if (firstResult != null) {7: primaryContact = results[0];8: }9: else {10: writeMessage("No Contact records are available to set as the primary contact for the account.");11: }12: },13: errorHandler,14: function () {15: //OnComplete handler16: }17: );18:
Dynamic CRM 2013学习笔记 系列汇总
Dynamic CRM 2013学习笔记(十)客户端几种查询数据方式比较的更多相关文章
- Dynamic CRM 2013学习笔记(二十)字段改变事件的二种实现方法
CRM里有二种方式实现字段change事件,一种是在form里,一种完全通过js来实现.本文介绍下二者的用途及区别. 1. Form里用法 这种方式估计其实也是添加一个js的function. 这种方 ...
- Dynamic CRM 2013学习笔记(二十五)JS调用web service 实现多条记录复制(克隆)功能
前面介绍过如何克隆一条当前的记录: Dynamic CRM 2013学习笔记(十四)复制/克隆记录 , 主要是通过界面上加一个字段,单击form上的clone 按钮时,改变这个字段的值以触发插件来实现 ...
- Dynamic CRM 2013学习笔记(二十六)报表设计:Reporting Service报表 动态参数、参数多选全选、动态列、动态显示行字体颜色
上次介绍过CRM里开始报表的一些注意事项:Dynamic CRM 2013学习笔记(十五)报表入门.开发工具及注意事项,本文继续介绍报表里的一些动态效果:动态显示参数,参数是从数据库里查询出来的:参数 ...
- Dynamic CRM 2013学习笔记(二十九)报表设计:reporting service 报表开发常见问题
在报表开发过程中,经常会遇到各种各样的问题,比如The report cannot be displayed. (rsProcessingAborted),一点有意义的提示都没有:再就是分页问题,经常 ...
- Dynamic CRM 2013学习笔记(三十二)自定义审批流3 - 节点及实体配置
上次介绍了<Dynamic CRM 2013学习笔记(十九)自定义审批流1 - 效果演示> 以及如何配置自定义审批流的按钮:<Dynamic CRM 2013学习笔记(二十一)自定义 ...
- Dynamic CRM 2013学习笔记(四十六)简单审批流的实现
前面介绍过自定义审批流: Dynamic CRM 2013学习笔记(十九)自定义审批流1 - 效果演示 Dynamic CRM 2013学习笔记(二十一)自定义审批流2 - 配置按钮 Dynamic ...
- Dynamic CRM 2013学习笔记(十二)实现子表合计(汇总,求和)功能的通用插件
上一篇 Dynamic CRM 2013学习笔记(十一)利用Javascript实现子表合计(汇总,求和)功能 , 介绍了如何用js来实现子表合计功能,这种方法要求在各个表单上添加js方法,如果有很多 ...
- Dynamic CRM 2013学习笔记(十四)复制/克隆记录
经常有这样的需求,一个单据上有太多要填写的内容,有时还关联多个子单据,客户不想一个一个地填写,他们想从已有的单据上复制数据,克隆成一条新的记录.本文将介绍如何克隆一条记录,包括它的子单据以生成一条新的 ...
- Dynamic CRM 2013学习笔记(二十二)插件里调用WCF服务
1. 添加service: 2.调用WCF BasicHttpBinding myBinding = new BasicHttpBinding(); myBinding.Name = &q ...
随机推荐
- 第五百八十天 how can I 坚持
一定要稳住啊,怎么感觉心神不宁呢.哎.越是这种情况越能考验一个人吧. 说都会说,做起来真的好难啊. 今天上班一天都感觉心神不宁的.到底是哪出了问题,事情太多了.好吧,是挺多的,考研.上班,还得考虑结婚 ...
- ITop
iTop,即IT运营门户(IT Operation Portal),是一个开源web应用程序,用于IT环境的日常运营.它基于ITIL最佳实践,而又不拘泥于任何具体流程.它很灵活,可以适应不管是非正 式 ...
- MySQL的数据库无法插入中文是怎么回事?
插入中文就报错: Incorrect string value: '\xE7\x8F\xBD\xE7\x8F\xBA' for column 'name' at row 1 用set names ut ...
- information_schema系列之字符集校验(CHARACTER_SETS,COLLATIONS,COLLATION_CHARACTER_SET_APPLICABILITY)
1:CHARACTER_SETS 首先看一下查询前十条的结果: root@localhost [information_schema]>select * from CHARACTER_SETS ...
- C++/MFC如何启动另一个应用程序并获取其进程 ID
ShellExecute( hWnd: HWND; {指定父窗口句柄} Operation: PChar; {指定动作, 譬如: open.runas.print.edit.explore.find[ ...
- 三天没有写题了,罪过!--Hash Table Start
(1)Island Perimeter 解题思路: 在矩阵上循环并记录岛(1)的个数;如果当前节点是岛,则检查其是否具有任何右邻居或下邻居,有的话邻居计数加1 ;岛的周长结果为islands * 4 ...
- 计算机病毒实践汇总二:bufferzone沙盘使用体验
在尝试学习分析的过程中,判断结论不一定准确,只是一些我自己的思考和探索.敬请批评指正! 1. 安装bufferzone及其简单使用 (1)安装BufferZone BufferZone的msi安装文件 ...
- Unsupported major.minor version
by: java.lang.UnsupportedClassVersionError: com/dayang/product/pubinfo/dao/ProPubInfoDAO : Unsupport ...
- jsp学习---mvc模式介绍和el表达式,jstl标签库的使用入门
一.mvc模式介绍 下图是常用的mvc分层模式: 项目中的包命名规则,一般如下: com.amos.domain 封装JavaBean,一般我喜欢用model命名这个包com.amos.dao 封装d ...
- NSDictionary to jsonString
NSDictionary to jsonString [self DataTOjsonString:dic] -(NSString*)DataTOjsonString:(id)object { NSS ...