Silverlight+Excel 2010+Power Pivot= Análisis dinámico de datos

Power Pivot es un complemento que nos permite realizar el análisis de datos a través de Excel 2010, tomando como fuentes de datos un blog,un servidor, una base de datos, un sitio web público, otro libro de Excel… cualquier origen que pueda establecer una conexión remota.

Esta capacidad que otorga Power Pivot para poder trabajar con gran volumen de datos, es posible gracias al aprovechamiento de  las capacidades multi core de los nuevos equipos y toda la memoria RAM instalada en el sistema, sobre todo cuando contamos con equipos que corren versiones de 64 bits del sistema operativo Windows.

Una vez que hemos explicado que es Power Pivot, vamos a centrarnos en la utilización de este complemento tomando como fuente de datos una aplicación Silverlight 4. Para ello, tendremos que tener creada una aplicación de Silverlight 4 ,en el que utilicemos R.I.A. Services, como hemos podido el artículo que publicado con anterioridad. También deberemos tener instalado Excel 2010 y el complemento Power Pivot para dicha plataforma.

Una vez establecidos los requisitos vamos a meternos en materia.Vamos a utilizar el protocolo OData, para que los usuarios puedan tener acceso a los datos contenidos en la aplicación Silverlight y así poder analizarlos de forma sencilla y dinámica.  Para poder usar el protocolo lo podemos hacer de dos formas, la primera es, cuando añadimos un nuevo servicio de dominio, al establecer las directrices de los servicios R.I.A de Silverlight. En este caso debemos marcar la casilla de Expose OData EndPoint como podemos ver en la siguiente imagen:

image

De esta forma ya podríamos importar a Excel 2010  los datos de nuestra aplicación Silverlight.

El segundo caso es cuando ya tenemos creado el servicio de dominio, en este caso simplemente debemos acceder al archivo Web.config de nuestra aplicación Silverlight. En la sección <system.serviceModel> añadimos el siguiente fragmento de código:

  1. <domainServices>
  2.  
  3.       <endpoints>
  4.         <add name=«OData« type=«System.ServiceModel.DomainServices.Hosting.ODataEndpointFactory, System.ServiceModel.DomainServices.Hosting.OData, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35« />
  5.  
  6.       </endpoints>
  7.  
  8.     </domainServices>

 

De esta forma estamos permitiendo el acceso a las diferentes entidades contenidas en el servicio de dominio (NorthwindDomainService en mi caso). Seguidamente vamos asignamos las entidades del servicio de domino que queremos que tengan acceso los usuarios. Para ello nos situamos en el servicio de dominio (NorthwindDomainService.cs). Como queremos tener acceso a las entidades City,Customers, Employees y Orders que están contenidas en la más que conocida base de datos Northwind. Para ello precediendo a los métodos de las entidades nombradas con anterioridad debemos introducir la siguiente sentencia de código:

[Query(IsDefault = true)]

 

 

 

 

image

El paso siguiente es comprobar que tenemos acceso a los métodos nombrados con anterioridad. Para ello incluimos en el navegador la siguiente URL: http://Nombre_del_Servidor/Nombre_de_la_Aplicación-Web-Nombre_del_servicio_de_dominio.svc/OData/, en  mi caso esta es la url que utilizo para acceder a las distintas entidades del proyecto(http://localhost:52063/SilverlightBusinessApplication-Web-NorthwindDomainService.svc/OData/). Siendo el resultado el de la siguiente imagen:

image

Cómo podemos observar los datos devueltos del servidor son en formato XML, para que estos datos sean legibles por el usuario vamos abrir Excel 2010 y el complemento Power Pivot. En un nuevo libro de Excel 2010 acedemos a la pestaña Power Pivot, después presionamos en la sección Ventana de Power Pivot

image

Al realizar dicha acción emergerá una nueva ventana, que nos permitirá elegir la fuente de datos. Elegimos Fuentes de datos Externos image

image

La siguiente ventana que nos es presentada, nos pedirá la url o ubicación de la fuente de datos. Debemos introducir la url que hemos utilizado con anterioridad para interactuar con las diferentes entidades de la fuente de datos(http://Nombre_del_Servidor/Nombre_de_la_Aplicación-Web-Nombre_del_servicio_de_dominio.svc/OData/)

image 
En la siguiente ventana aparecen las diferentes entidades. Como podemos observar podemos seleccionar aquellas que creamos oportunas. En mi caso elegiré todas las entidades.

 

 

 

 

 

 

image

por otro lado también tenemos la posibilidad de editar los nombres por los que vamos a reconocer las diferentes entidades.

image

Por otro lado tenemos la posibilidad de vista previa y de filtrado.

image

 

 

Deseleccionamos los diferentes campos que creamos oportunos, presionamos Aceptar y Finalizar.

Como podemos observar se cargan las diferentes tablas, con sus respectivas filas:

image

Al presionar Cerrar, vemos como los datos son adquiridos, separando cada una de las tablas en una hoja.
De este modo podemos además de Importar Datos de nuestra aplicación presentarlos de una forma más dinámica y legible al usuario. 
Nos situamos en la hoja Pedidos y accedemos a la sección PivotTable y elegimos la opción Gráfico y tabla Horizontal.
image 
Seguidamente elegimos los campos que queremos que aparezcan en la tabla, para este apartado elegimos Freight en la entidad Pedidos y CityName en la entidad Ciudad.
Por último presionamos sobre crear y los datos serán importados en la tabla.
image 
Repetimos exactamente los mismos pasos en el gráfico y el resultado final es el siguiente:

image

 

 

 

En resumen , los usuarios pueden tener en todo momento acceso a los datos de la aplicación Silverlight, de una manera rápida y dinámica. Consiguiendo con ello, un mayor control de los datos, para realizar una gestión eficiente de las acciones llevadas a cabo en su empresa.. También podemos tener Business Intelligence, conectando Power Pivot con SharePoint 2010 o SQL Server 2010 siendo la actualización de datos en tiempo real, consiguiendo con ello una plena integración de las herramientas ofimáticas con las plataformas nombradas con anterioridad.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *