miércoles, 29 de julio de 2015

Tutorial – La forma mas rápida de Conectar con CRM 2015 con Visual Studio 2015

Hola, hoy intentaré explicar como conectar de una forma SUPER rápida con Dynamics CRM 2015 desde Visual Studio 2015, de una forma súper rápida y sencilla.

Esto puede ser el comienzo de tu nuevo desarrollo con Dynamics CRM, como empezar.

Primero abrimos VS2015 y vamos a nuevo proyecto:

SNAGHTML44a446e

Seleccionamos aplicación de consola:

SNAGHTML44ae0ed

Vamos a añadir referencias:

SNAGHTML44b7d3d

Seleccionamos desde la carpeta donde tengáis descargada la SDK estas tres.dlls (disponibles en la carpeta BIN de la sdk):

SNAGHTML45225e3

Añadimos los “usings” requeridos:

SNAGHTML454e14a

Luego con solo dos instrucciones, creamos el objeto de conexión a Dynamics CRM:

SNAGHTML45595a6

Listo! ya tenemos nuestro código listo para empezar a atacar a nuestro CRM, en este ejemplo es para un CRM Online.

Luego ya podemos hacer llamadas por ejemplo un WhoAmIRequest:

SNAGHTML4583a58

Con esto en Visual Studio, podemos calcular el tiempo transcurrido entre dos “breakpoints” o utilizar las nuevas herramientas de diagnóstico de Visual Studio 2015…

Espero les haya gustado.

abrazo

@Demian_rasko

lunes, 22 de junio de 2015

Utilizando el Registro de Seguimiento de ensamblados (TRACE)

En el desarrollo de ensamblados en Dynamics CRM en Plugins y Workflow Assemblies, existe una gran funcionalidad que sirve para dejar trazas en nuestra ejecución.

Normalmente, podemos acceder a estas trazas al momento de que nuestros ensamblados lanzan una excepción, y desde la misma interfaz de usuario, se puede descargar un fichero, que incluye en Stacktrace de la ejecución de nuestro código y además nuestras trazas incluidas.

Estas trazas ahora se pueden quedar almacenadas también en Dynamics CRM, de cara a no requerir que los usuarios tengan que descargarse estos ficheros y enviarlos.

Para activar las trazas, podemos activarlas en la Configuración del sistema como muestro a continuación:

image

En esta pantalla podemos seleccionar si queremos que se registre toda ejecución o solamente las Excepciones.

OJO: el activar “TODOS” puede ser una buena opción en un entorno de DES, pero cuidado porque quedará registro de cada ejecución de nuestros Plugins.

Una vez activado, cada plugin o actividad de workflow en donde utilicemos la interfaz “ITracingService” que nos da el contexto de CRM, quedará registrada en CRM aquí:

image

El registro que nos deja va dejando un listado con todas las ejecuciones:

image

Y en el formulario de detalle, podemos ver la información del Context, mas la información de nuestras trazas:

image

Esta nueva funcionalidad esta disponible con el Update 1, es simplemente genial y puede ser utilizada para muchas cosas.

Espero les haya gustado

Abrazo!

@demian_rasko

martes, 26 de mayo de 2015

Utilizando el Javascript en los Subgrids

El Update 1 de Dynamics CRM 2015 disponible solamente para online, tiene muchas mejoras en la SDK. Este tipo de mejoras son muy agradecidas por nosotros los desarrolladores, que nos aportan nueva y potentes funcionalidades que ofrecer a nuestros clientes.

Una de las mejoras que considero muy importantes, que no han sido muy publicadas, son las de las mejoras en código Javascript con el trabajo con los Subgrids.

Los Subgrids, son vistas que se pueden añadir en los formularios de CRM, por ejemplo para ver las actividades, contactos, o cualquier entidad relacionada de un registro.

Básicamente la idea es poder acceder a los Subgrids por código, y trabajar con el mismo, además de poder añadir código en el evento “OnLoad” de los Subgris (que se cargan de forma asíncrona).

El modelo de objetos de Javascript es el siguiente:


Aquí os dejo un pequeño (muy pequeño) código Javascript en donde he probado algunas de estas nuevas funcionalidades;
   1:  var onLoadSubGrid = function () { 
   2:      alert("Load subGrid");
   3:  };
   4:   
   5:  function onLoadForm()
   6:  {
   7:      var contactsSubgrid = Xrm.Page.getControl("Contacts");
   8:      contactsSubgrid.addOnLoad(onLoadSubGrid);
   9:  }
  10:   
  11:  function onChange()
  12:  {
  13:      var contactsSubgrid = Xrm.Page.getControl("Contacts");
  14:      alert ("Total de contactos: "+contactsSubgrid.getGrid().getTotalRecordCount());
  15:  }

  
Finalmente, lo que podemos hacer ahora es:
  • Acceder al Grid para ver la vista seleccionada, añadir eventos en el load, etc.
  • Acceder a los elementos de la vista, cuantos registros hay, cuales están seleccionados, etc
  • Acceder a los datos de los subgrids (GridEntity) con los campos entityType, id y name
  • Cambiar las vistas seleccionadas
El artículo de la SDK que ofrece mas detalles de estas mejoras está aquí: https://msdn.microsoft.com/en-us/library/dn932137.aspx y aquí con mas detalle: https://msdn.microsoft.com/en-us/library/dn932126.aspx
@demian_rasko

sábado, 16 de mayo de 2015

Como configurar Parature KB en Dynamics CRM Update 1

Dynamics CRM o la familia de Dynamics CRM sigue creciendo. Muchos ya conocen Dynamics Marketing o Social Engagement, pero también hay otro producto llamada Parature, que es una solución global enfocada al servicio al cliente.

Esta solución, está cada vez mas integrada con Dynamics CRM, y de hecho el Update 1 (solo online de momento), permite la integración de la KB de Parature, dentro de los formularios de CRM.

Hoy voy a explicar paso a paso como configurar y utilizar esta integración.

Lo primero que hay que hacer es configurar Parature dentro de Dynamics CRM en la zona de Administración de servicios:

image 

Y luego abre esta pantalla:

image

Allí debemos seleccionar:

  • Instancia de Parature (debe estar en la misma instancia de Office365)
  • Id del departamento
  • Dirección URL del portal

Para recoger el Id del departamento, debemos ir a Parature y copiar el número que pongo a continuación:

image

Y para la URL del portal la que enseño a continuación:

image

Luego de haber rellenado esos dos valores, damos a siguiente y nos aparecerá lo siguiente:

image

Luego vamos a crear un artículo nuevo en la KB de Parature:

image

image

La enviamos para revisión:

image

Y la aprobamos y publicamos:

image

Una vez aprobado el artículo, ya podemos crear casos en CRM y en el “Panel social” tener acceso al mismo:

image

Si hacemos click sobre el título, podemos previsualizar el artículo:

image

O en una ventana emergente:

image

Además podemos enlazar en artículo con el caso:

image

Los artículos relacionados aparecen aquí:

image

Mediante esta configuración tan sencilla nos permite añadir los artículos de KB de Parature dentro de CRM, con toda la potencia y versatilidad que da Parature, y con toda la trazabilidad y seguimiento que puede darnos Dynamics CRM.

Espero les haya gustado.

@demian_rasko

lunes, 11 de mayo de 2015

Como saber la edad de un Contacto con un Campo Calculado

Hoy vamos a usar los campos Calculados para determinar la edad de un contacto.

La idea es simple…desde una fecha de nacimiento, quiero tener un campo que vaya cambiando año tras año, diciéndome la edad del Contacto.

Antiguamente si nos enfrentábamos ante un desafío de esta envergadura, solo nos quedaba la opción de ponernos a desarrollar plugins, servicios externos, etc. para ir actualizando estos datos.

Hoy en día, podemos hacer estas cosas de forma mucho mas sencilla, simplemente utilizando funcionalidades nuevas de los campos calculados del Update 1 (solo para CRM Online).

La idea es simple, primero creamos un campo Edad en el contacto, de tipo entero y calculado:

image

En la regla del cálculo ponemos algo tan simple como: “DIFFINYEARS(birthdate,NOW())” pero lo que obtenemos es un error:

image

Por que? solamente queremos sacar la diferencia en años (nueva función de Update1) entre el birthdate y ahora (Now). Esto ocurre porque los formatos de ambos campos es diferente. la función “Now()” devuelve un campo con formato Fecha/Hora, y el Birthdate es solo fecha.

Entonces, se me ocurre ir al campo “birthdate” y cambiarle el formato. Pero resulta que no se puede cambiar el formato:

image

Entonces me creo un campo nuevo de formato Fecha y hora:

image

Vuelvo al campo calculado que se llama “Edad” y ahora:

image

Y lo añado en el formulario y ya lo tenemos:

image

Este campo ya lo podemos utilizar en vistas por ejemplo:

image

Espero les haya gustado!

@demian_rasko

martes, 28 de abril de 2015

Integración con OneNote con CRM 2015 Update 1

Unos de las nuevas funcionalidades que mas interés está levantando del Update 1 que viene en estos días, es la integración con OneNote.

Esta integración permite crear Blocs de OneNote Online, relacionado con registros de CRM (Cuentas, Contactos, etc.).

Para habilitar esta integración, lo primero que hay que hacer es habilitar la integración con Sharepoint del lado servidor, y luego habilitar que entidades queremos que puedan tener OneNote:

image

image

Una vez configurado, podremos utilizar el OneNote en el cliente de tablets o “moca” como se muestra a continuación. La primera vez que se accede a un registro, y aún no se ha creado el bloc de notas, aparece un mensaje como el siguiente:

image

El bloc de notas de un registro, se crea en el momento que se accede desde el cliente web al registro, y se seleciona OneNote desde la pestaña del panel social del registro:

image

Una vez creado, podemos ir al moca de nuevo y poder editar allí las notas:

image

Editamos las notas, y ya está.

image

Desde OneNote podemos añadir dibujos, imágenes o fotos con la cámara, entre otras muchas funcionalidades que nos da OneNote.

El bloc de notas esta almacenado en SharePoint Online, y queda relacionado con el registro de CRM, que se podrá acceder también desde el cliente web, en el formulario en el panel social.

Espero les haya gustado esta integración.

un saludo

@demian_rasko

viernes, 24 de abril de 2015

Utilización del “Update” para mensajes especiales con CRM 2015 Update 1

Hoy seguimos con temas nuevas en la nueva versión Update 1.

Esta es una de las versiones de Dynamics CRM con la que estoy mas entusiasmado, debido a todos los cambios en la SDK que nos permiten mejorar (y mucho) nuestros desarrollos.

Una de las nuevas funcionalidades de esta SDK, es las posibilidad de asignar registros y cambiar sus estados simplemente utilizando el método “Update”.

Antiguamente (hasta CRM 2015 o versión 7.0) para asignar un registro o actualizar un estado del mismo, se debían llamar a mensajes específicos para esto por ejemplo:

image

El tema es que si queríamos actualizar un registro y luego asignarlo y cambiarle un estado, debíamos hacer 3 llamadas al CRM (Update, Assign y SetState). Si intentabamos actualizar los campos de estado (statecode o statuscode)  o el del propietario (ownerid) simplemente no hacía nada, ni devolvía ningún error.

Con el nuevo Update 1 de CRM 2015, por fin podemos hacer asignaciones o cambios de estado, solamente con el método “Update”, lo que nos permite en una misma petición hacer lo que antes debíamos hacer en 3. Un ejemplo es lo que muestro a continuación:

image 

Este tipo de funcionalidades es clave de cara a minimizar las llamadas a web services de CRM, optimizar el código y reducir los tiempos de latencia al servidor (sobre todo para Online).

En relación con los mensajes que se disparan como mensajes de los Plugins se puede ver a continuación como cambian los mismos con este nuevo enfoque:

image

Si se llama al Assign, se dispara el Assign y el Update. Si se llama el Update, solamente se dispara ese mensaje.

espero les guste este análisis y puede serles útil.

un saludo

@demian_rasko