viernes, 21 de febrero de 2014

Informes SSRS CRM 2011 basados en FetchXML

Introducción

Microsoft Dynamics CRM soporta 2 tipos de reportes basados en SSRS (SQL Server Reporting Services)

FilteredViews:

Hasta la versión 4.0 de Dynamics CRM la única forma soportada se basaba en peticiones (Querys) a las vistas filtradas del sistema. (FilteredViews) Cabe mencionar que después de la versión 4.0 de Dynamics CRM se agregó una nueva funcionalidad de seguridad a nivel de base de datos.
Esto significa que para acceder a las vistas filtradas se requiere autenticación basada en credenciales de windows, que este dentro del dominio de la organización, y que tenga permisos de acceso al CRM.
Esta forma de obtención de datos, dependiendo los permisos que el usuario dentro de CRM serán los datos que la vista filtrada retorne.

FetchXML:

Desde la versión 2011 de Dynamics CRM, los CRMs Online y OnPremise comparten una característica de acceso a datos para la realización de reportes:
FetchXML
Recordemos que en Dynamics CRM Online esto sucede debido a que nuestra información se encuentra alojada en la nube de Microsoft. Debido a esto solo tenemos acceso a datos a través de un FetchXML. Caso contrario a un CRM OnPremise donde los datos son alojados en nuestros propios servidores, y podemos acceder a los datos directamente de SQL Server y también usando FetchXML.

¿Por qué usar FetchXML?

Microsoft ha incluido en Dynamics CRM 2011 una variedad de utilidades de extending para que nuestro CRM trabaje exactamente como lo necesitamos, fácilmente.
Una de estas utilidades es el FetchXML.


¿Qué es FetchXML y cómo usarlo para hacer reportes?

FetchXML es propiamente un query basado en el esquema de base de datos de Dynamics CRM, se usa fácilmente modelando el 'Query' de forma gráfica (Si usamos búsquedas avanzadas). Incluso usuarios más avanzados pueden modelar sus propios Querys basados en FetchXML desde código.



Aquí un ejemplo del FetchXML:



Usando FetchXML para generar Reportes en Visual Studio 2008

Pre requisitos:


En este blog, crearemos un ejemplo rápido y básico para demostrar como poder usar FetchXML como origen de datos de nuestro reporte.
Para esto usaré un CRM online (rollout 2013) donde obtendré las cuentas registradas en Dynamics CRM y sus contactos relacionados.


Pasos para generar el reporte:

1.- Obtener FetchXML mediante búsqueda avanzada:

Obtendremos el FetchXML a partir de una vista, para este ejemplo vamos a obtener los Contactos de una cuenta especifica. Simplemente modelamos nuestra búsqueda avanzada, corroboramos que los datos que arroja son los esperados y descargamos el archivo FetchXML.

2.- Nuevo proyecto en Visual Studio

Creamos un nuevo proyecto de Visual Studio de tipo 'Report Server'


Agregamos un reporte:


Agregamos una nueva fuente de datos con estos datos muy IMPORTANTES:
  • URL de conexión a nuestro CRM 
  • Tipo de conexión ( Microsoft Dynamics CRM Fetch)
  • Credenciales de conexión a Dynamics CRM 
Tal como se muestra en el ejemplo:




En este ejemplo usamos un CRM ONLINE, en el caso de OnPremise bastará con introducir los datos con los que acedemos al CRM
Ejemplo: 
  • *dominio*\*usuario*
  • Contraseña
Ahora, ya teniendo nuestra conexión vamos a agregar un nuevo conjunto de datos  (dataSet)


En este paso es importante seleccionar la opción 'Use a dataset embedded in my report' pues aqui es donde usaremos el FetchXML como se muestra en la imagen.


Si nuestra todo en nuestro proceso ha salido bien, ahora podremos ver los datos en nuestro panel, y podemos comenzar a modelar nuestro reporte.
Vale la pena mencionar que podemos agregar tantos dataSets como nos sea necesario. Siguiendo los pasos anteriores.


Ahora solo generamos nuestro reporte:



Y lo ejecutamos:



Ahora los reportes que generemos dependerán de la dificultad o complejidad requerida. Sin embargo esta es una buena herramienta que Microsoft Proporciona para facilitar la generación de reportes de CRM



No hay comentarios:

Publicar un comentario