miércoles, 16 de mayo de 2012

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:
   1:  var oDataSelect = entity + "Set(guid'" + id + "')";
   2:   
   3:      $.ajax({
   4:          type: "GET", //GET o POST
   5:          contentType: "application/json; charset=utf-8",  //Contenido que se enviará al Servicio
   6:          datatype: "json", //formato de la data que se espera
   7:          url: oXrm.Page.context.getServerUrl() + "/XRMServices/2011/OrganizationData.svc/" + oDataSelect, //Ubicación del Servicio
   8:          beforeSend: function (req) { req.setRequestHeader("Accept", "application/json"); },
   9:          success: function (data, textStatus, req) {
  10:                           //Si todo anda bien
  11:                           alert('Yeah!!!i');
  12:          },
  13:          error: function (req, textStatus, errorThrown) {
  14:               //Si todo anda mal :(
  15:               alert($.parseJSON(req.responseText).error.message.value);
  16:          }
  17:      });

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
Share this post
  • Share to Facebook
  • Share to Twitter
  • Share to Google+
  • Share to Email
  • More...

0 comentarios

 
© 2011 Dynamics CRM Rulez !!!!!!
Designed by BlogThietKe Cooperated with Duy Pham
Released under Creative Commons 3.0 CC BY-NC 3.0
Posts RSSComments RSS
Back to top