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 handler
 16:      }
 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 handler
 16:       }
 17:    );
 18: 
 
Dynamic CRM 2013学习笔记 系列汇总
 
 
posted @ 2014-10-15 09:41  疯吻IT  阅读(1844)  评论(3编辑  收藏  举报