domingo, 27 de enero de 2008

Cómo crear un reporte nuevo para Team Foundation Server

Vamos a ver cómo crear un reporte nuevo, desde cero, para usar en un proyecto de Team Foundation Server 2005 o 2008.

Para ello debe estar instalado el SQL Server Business Intelligence Development Studio de SQL Server 2005. Cabe aclarar que esta herramienta funciona con Visual Studio 2005 (no 2008 aún) aunque los reportes que se realicen aquí podrá utilizarse perfectamente en proyectos de Team Foundation Server 2008.

Para una introducción a la arquitectura de reportes en Team Foundation Server ver la entrada de mi blog: http://gabrielparadelo.blogspot.com/2007/11/reportes-en-team-foundation-server.html

Este ejemplo es para un reporte para ver el Esfuerzo Estimado, el Trabajo Restante y el Tiempo Insumido de las tareas de cada persona, filtrado por Proyecto e Iteración. Aunque las ideas pueden utilizarse para crear cualquier tipo de reporte.

  • Debemos comenzar en Visual Studio 2005. Crear un nuevo proyecto de tipo
    Business Intelligence Projects, Template
    Analysis Services Project.
  • Vamos a agregar un data source para trabajar con la información del cubo que mantiene TFS:
  1. Hacer click con el botón derecho en la carpeta
    Shared Data Sources y elegir la opción
    Add New Data Source.
  2. En la solapa
    General, en el campo Name escribir el nombre "TfsOlapReportDS". Es importante respetar este nombre ya que muchos reportes de TFS lo esperan.
  3. En el combo Type elegir Microsoft SQL Server Analysis Services.
  4. Hacer click en el botón
    Edit del connection string para editarlo.
  5. Elegir la base de datos
    TFSWarehouse y dar OK.

(Si quisiéramos trabajar con información de la base relacional habría que usar el nombre "TfsOlapReportDS" en el paso 2 y elegir el tipo Microsoft SQL Server en el paso 3).

  • Ahora vamos a agregar un reporte nuevo. Para ello:
    1. Hacer click con el botón derecho en la carpeta Reports y elegir la opción
      Add New Item.
    2. Elegir Report y hacer click en Add. Escribir el nombre del reporte, por ejemplo "Tiempos de Tareas por Recurso".
    3. El reporte aparecerá en la carpeta Reports y se abrirá. Veremos tres solapas: Data, Layout y Preview.

  • Vamos a preparar los datos que se utilizarán en el reporte:
  1. Crear un dataset dsEjemplo usando el dataset TfsOlapReportDS.
  2. Elegir la perpectiva (característica de la versión Enterprise de SQL Server) Current Work Item (datos actuales) en lugar de Build. (con Work Item History podría centrarme en los datos históricos)
  3. En el árbol de Metadata expandir la rama Measures.
  4. Abrir la carpeta
    Work Item.
  5. Arrastrar la medida (measure) Current Work.Item Count al área de resultados.
  6. Arrastrar la dimension
    Team Project al área dimension/filter y seleccionar el proyecto que quiero ver.
  7. Arrastrar la dimension
    Work Item.Work Item Type al área dimension/filter y seleccionar "Sprint Backlog Item". Para que se vean sólo los WI de este tipo.
  8. Arrastrar la dimension
    Iteration al área dimension/filter elegir … .
  9. Arrastrar la dimension
    AssignedTo.Person al área de resultados. Esto nos mostrará el detalle de personas.
  10. Arrastrar las medidas (measure) Estimated Effort, Work Remaining y Tiempo Insumido al área de resultados.
  • Tenemos listos los datos necesarios para presentar en el reporte pero todavía no veríamos nada si fuéramos a la solapa Preview. Tenemos que diseñar el reporte:
  1. Elegir la solapa
    Layout.
  2. Arrastrar un Table de la toolbox (a la izquierda) al centro de la página.
  3. Arrastrar al área Detail de la tabla los campos del Dataset (también a la izquierda. Si no está visible ir al menú View -> Datasets): Person, Title, State, Estimated_Effort__Scrum_, Work_Remaining__Scrum_ y Tiempo_Insumido.
  4. Cambiar los nombrede los títulos (en el área Header) por "Responsable", "Tarea", "Estado", "Esfuerzo Estimado", "Trabajo Restante", "Tiempo Insumido".
  5. Ir a la solapa
    Preview para ver el reporte.
  • Con esto el reporte está terminado y ahora sí podemos probarlo en la solapa Preview.
    Vamos ahora a subir el reporte a un proyecto de Team Foundation Server:
  1. En Visual Studio, Team Explorer, expandir un proyecto (a dónde subiremos el reporte).
  2. Hacer click con el botón derecho en la carpeta
    Reports y elegir Show Report Site.
  3. Hacer click en el elemento
    Upload File de la toolbar.
  4. Hacer click en el botón
    Browse y elegir el archivo ".rdl" del reporte elaborado. El reporte se agregará a la lista de reportes del proyecto.
  5. Hacer click en el nombre del reporte recién subido. Como aún no está seteado el dataset a utilizar, aparecerá el mensaje de error "The report server cannot process the report. The data source connection information has been deleted. (rsInvalidDataSourceReference)"
  6. Hacer click en la solapa
    Properties y después en el panel
    Data Sources, a la izquierda.
  7. En la página que se abre, seleccionar "A shared data source" (si aún no lo está) y después hacer click en el botón
    Browse.
  8. Elegir el dataset
    TfsOlapReportDS.
  9. Al final de la página, hacer click en Apply.
  10. Hacer click en la solapa
    View para ver el reporte.

Con esto vimos cómo realizar un reporte con datos del cubo OLAP mantenido por TFS. Recuerden que este cubo contiene información pre-agregada que permite realizar consultas con mínimo tiempo de espera.

3 comentarios:

Cristopher Alejandro dijo...

Hola lei el articulo y eso yo lo realizaba sin problemas hasta que alguien formateo el servidor de reporting services, reinstalo todas las aplicaciones y el justamente el reporting services quedo inestable, al presionar el boton Upload File no realiza ninguna accion, a todo esto ingreso al reporting con usuario y contraseña de administrador del dominio, espero veas el mensaje y me puedas ayudar a solucionar este problema.

Muchas Gracias, por si acaso mi correo es cristopher.vargas@gmail.com

Anónimo dijo...

Ola, what's up amigos? :)
Hope to receive some assistance from you if I will have some quesitons.
Thanks in advance and good luck! :)

Anónimo dijo...

Thanks for sharing the link, but unfortunately it seems to be offline... Does anybody have a mirror or another source? Please reply to my post if you do!

I would appreciate if a staff member here at gabrielparadelo.blogspot.com could post it.

Thanks,
Alex