jueves, 13 de octubre de 2011

Estadísticas de uso en CRM 2011

He desarrollado una solución muy sencilla que nos permite observar las estadísticas de uso del CRM.
Estas estadísticas nos permitirán ver la evolución por tiempo, por usuario, por entidades e incluso por mensajes ejecutados.
La idea es ver un panel como el siguiente:


Para la instalación de esta solución, simplemente se puede descargar del siguiente enlace y luego importarlo: CRMStats_1_0_0_0_managed.zip

Lo que contiene esta solución es lo siguiente:


Como se ve, simplemente contiene una nueva entidad "Estadistica", con un panel "Estadisticas CRM" y un Plugin con todos sus pasos ya registrados.
Como ejemplo, lo que estoy registrando son solamente los Mensajes de Cuenta y Contacto, pero dependiendo de lo que se desee, se pueden añadir otros mensajes, simplemente utilizando el pluginregistrationtool que viene en la SDK:
El plugin la verdad que no tiene mucha "ciencia" y es muy sencillo su código:

 namespace CRMStats_Plugin
{
public class CRMStats_Plugin:IPlugin
{
public void Execute(IServiceProvider serviceProvider)
{
ITracingService tracingService=null;
try
{
tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
if (context.Depth >= 2) return;
IOrganizationService service = serviceFactory.CreateOrganizationService(null);
Entity stat = new Entity("new_estadistica");
stat.Attributes["new_name"] = context.MessageName;
stat.Attributes["new_entidad"] = context.PrimaryEntityName;
stat.Attributes["new_systemuserid"] = new EntityReference("systemuser", context.UserId);
service.Create(stat);
}
catch (Exception ex)
{
tracingService.Trace("CRMStats_Plugin[Execute()]", "Execution Error: " + ex.Message + "-"+ex.StackTrace);
throw ex;
}
}
}
}

Como se ve, la idea es hacer un plugin muy sencillo que cree registros y luego "aprovecharnos" de las herramientos de gráficos y paneles que tiene CRM 2011 para explotar la información.

Espero les sirva!

abrazo

2 comentarios:

  1. Me parece genial esta solución por su sencillez y utilidad. Tomamos nota. Creo que será muy práctica. Muchas gracias.

    ResponderEliminar
    Respuestas
    1. Muchas gracias por tu comentario. a ver si puedo ir mejorandola....;)

      Eliminar