REST en CRM 2011 (Parte I)

Bueno, la idea era conseguir algunos valores de un cliente y luego de eso, mostrar o no algunas cosas. 
Inmediatamente después de esa conversación, mi mente pensó en JS pero algunas dudas entraron en mi terruño. ¿Como hacer un JS que me llame a un webservices/fetch para obtener algunos datos de la entidad?. Pues nada aca les muestro el primero de algunos post que estaré subiendo para aclarar mis dudas y no se si el de algunos de vosotros.

En realidad lo que ahora vamos a utilizar la arquitectura llamada REST (les dejo este interesante artículo donde explican un poco mas de esta arquitectura). 
Bueno, ahora veamos como se utiliza eso.

Lo primero que necesitamos es saber el REST Endpoint  de la entidad. Si no me equivoco (ya que últimamente estoy en racha) , para tener los endpoint solo basta con poner SET al final del nombre de la entidad.

Por ejemplo, ahora voy a mostrar el de Account

	
1.http://<Server>/<Organization>/XRMServices/2011/OrganizationData.svc/AccountSet

Si ponen esta dirección URL en el broswer debería de funcionar

Luego se deberá de construir un llamada a este servicio de la siguiente forma:

	
01.var oDataSelect = entity + "Set(guid'" + id + "')";
02.$.ajax({    type: "GET", //GET o POST   contentType: "application/json; charset=utf-8",  //Contenido que se enviaráal Servicio  datatype: "json", //formato de la data que se espera   
03.url: oXrm.Page.context.getServerUrl() + "/XRMServices/2011/OrganizationData.svc/" + oDataSelect, //Ubicación del Servicio   beforeSend: function (req) {
04.      req.setRequestHeader("Accept", "application/json");
05.}, 
06.success: function (data, textStatus, req) {    
07.          //Si todo anda bien      
08.         alert('Yeah!!!i');
09.}, 
10.error: function (req, textStatus, errorThrown) {
11.        //Si todo anda mal :(
12.        alert($.parseJSON(req.responseText).error.message.value);  
13.}});

Lo interesante de esto, es que en el Endpoint, le podemos enviar algunos parámetros, pero claro esto en los próximos artículos

Ahora solo estoy obteniendo todos los datos de un solo account. Pero ¿Donde veo eso?, eso se puede apreciar en la siguiente línea

1.var oDataSelect = entity + "Set(guid'" + id + "')";

Pues nada, ahora solo queda probar y jugar un poco con esto. 

Como por ahi lei y me gusto... 

Feliz CRMing o algo así. 

Saludos, 

Atilin