Dynamics CRM 2011 用Javascript 通过Odata 获取Entity

本文介绍如何在CRM 2011中利用JavaScript获取特定实体的数据,通过构造OData查询并发送HTTP请求来实现。文章详细展示了从获取客户GUID到设置返回实体值的全过程。

原文:http://stackoverflow.com/questions/7874562/crm-2011-getting-entity-with-javascript

 第一步:获取GUID

var customerItem =Xrm.Page.getAttribute("customerid").getValue();var customerID = customerItem[0].id;

 

 

第二步:获取oDataPath...

var oDataPath =Xrm.Page.context.getServerUrl()+"/xrmservices/2011/organizationdata.svc";

 

第三步:创建OData query
var filter ="/new_vehicleSet?"+"$select=new_vehicleId,new_Registration"+"&$filter=new_PrimaryDriver/Id eq (guid'"+ customerID +"')"+"&$orderby=new_LastAllocationDate desc"+"&$top=1";

 

 

第四步:获取数据

var retrieveRecordsReq =newXMLHttpRequest();
retrieveRecordsReq.open("GET", oDataPath + filter,true);
retrieveRecordsReq.setRequestHeader("Accept","application/json");
retrieveRecordsReq.setRequestHeader("Content-Type","application/json; charset=utf-8");
retrieveRecordsReq.onreadystatechange =function(){if(this.readyState ==4){if(this.status ==200){var retrievedRecords = JSON.parse(retrieveRecordsReq.responseText).d;if(retrievedRecords.results.length >0){var vehicle = retrievedRecords.results[0];SetLookup("new_replacedvehicle", vehicle.new_vehicleId, vehicle.new_Registration,"new_vehicle");}}}};
retrieveRecordsReq.send();

 

 第五步:对返回的Entity进行赋值操作

functionSetLookup(fieldName, idValue, textValue, typeValue){var value =newArray();
    value[0]=newObject();
    value[0].id = idValue;
    value[0].name = textValue;
    value[0].typename= typeValue;Xrm.Page.getAttribute(fieldName).setValue(value);}
 

 

转载于:https://www.cnblogs.com/laser8000/p/3337020.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值