
Buenas,
entre los detalles interesantes que nos podemos encontrar al momento de migrar un servidor de Team Foundation, siempre está el interesante caso de no poder procesar los cubos del mismo. Hoy me encontré con este problema, y me puse a investigar un poco al respecto.
Después de un par de pruebas, cuando llegué a Analysis Services y traté de procesar los datos del cubo a mano, me encontré con el siguiente error y supe que el problema no era de los “lindos”:
The member '[6/1/2008]' was not found in the cube when the string, [Date].[Week].[Week].[6/1/2008], was parsed.
Como muestra la imagen anterior todos los mensajes de error, se producían al momento de tratar de procesar la Measure <Work Item History> del cubo Team System.
Después de investigar un poco el porqué de este error, me encontré con que en varios de los diferentes usuarios que se utilizan para instalar y configurar Team Foundation Server 2008, existían diferentes configuraciones regionales … (en otras palabras, en algunos de estos usuarios las fechas se procesaban MM/DD/YYYY y en otros con DD/MM/YYYY)
Tras varios intentos fallidos por unificar la información en todas las bases de datos de TFS, en cada uno de los perfiles de usuarios, y en los servidores en general (aquí un ejemplo); y cuando estaba a punto de abandonar todo para irme a tomar unas cervezas pedir ayuda en las comunidades; recordé que como buen informático siempre tengo la opción de borrar la definición completa del cubo Team System y recrearla manualmente.
Para esto realicé una pequeña búsqueda y llegué a la excelente herramienta de comandos: SetupWareHouse. A continuación dejo el enlace a la documentación para las versiones 2005 y 2008:
Pues bien la solución al error consistió en eliminar la base de datos TFSWarehouse de Analysis Services y ejecutar la siguiente linea de comandos. De esta forma el cubo se creó nuevamente y los datos del mismo se procesaron correctamente:
setupwarehouse -rebuild -mturl http://TFSServer:8080 -s TFSServer -d TFSWarehouse -c wareHouseSchema.xml -a TFSService -ra TFSReports -edt TfsBuild
En la sentencia hay que tener especial atención con los parámetros:
- TFSServer: representa el nombre del servidor TFS
- TFSWarehouse: representa el nombre de la base de datos de Datawarehouse de TFS
- TFSService: el nombre de la cuenta de servicio, por lo general TFSService
- TFSReports: el nombre de la cuenta utilizada para los informes, por lo general TFSReports
Saludos @ Marron
El Bruno