Luego yo como manager del equipo llevo registro en un Google Spreadsheet los proyectos sus deadlines, estado, costos, facturación y ganancia por proyecto.
Y me encontre con la necesidad de acceder a datos almacenados en un SQL Server 2008 del TFS desde un Google Spreadsheet y paso a explicarles como lo resolví.
- Cree un usuario y un rol en el SQL Server 2008 (donde esta instalado el TFS) que tenga acceso solamente a la vista WorkItemsAreUsed
- Instale el SQLXML 3 en el servidor
- Cree un virtual directory llamado myvirtual con el SQLXML donde accede con el usuario creado en el paso 1 y que permita hacer querys desde la url
- Luego me fui a mi planilla de Google Spreadsheet y puse la siguiente formula: =ImportXML(A1,A2)
Donde en A1 contiene: ="http://mydomain.com/myvirtual?sql=select+%27%3CWorkItems%3E%27;select+*+from+WorkItemsAreUsed+FOR+XML+AUTO,ELEMENTS;select+%27%3C/WorkItems%3E%27"&"+'"&MINUTE(NOW())&"'"
Que significa que me trae todo los WorkItems (aca podemos agregarle WHERE clause si queremos traer solo algunos)Donde en A2 contiene: /WorkItems/WorkItemsAreUsed/Microsoft.VSTS.Scheduling.RemainingWorkQue significa que trae solo el campo RemainingWork de todos los WorkItems
Web Services de TFS
Primero quise utilizar el servicio de Web Services del TFS que estan ubicados en:
http://mydomain:8080/WorkItemTracking/v1.0/ExternalServices.asmx
y que hay muy poca documentación y me encontré con varios problemas, primero que no te aceptaba parámetros por URL por default, entonces le modifique el web.config ubicado en:
\\servidortfs\c$\Program Files\Microsoft Visual Studio 2008 Team Foundation Server\Web Services\WorkItemTracking\web.config
y le agregue en la sección de protocols dentro de webServices lo siguiente para que acepte parametros GET y POST:
Como les comentaba en el punto anterior no hay una manera de refrescar, simplemente hay que esperar que google refresque.
Un workaround que encontre es agregarle al final de la url basura que cambia cada un minuto.
Por lo tanto google se piensa que la url cambia entonces fuerza el refresco de la url cada 1 minuto
Flickr/arormoser
Facebook/Andres Rormoser
Linkedin/arormoser
Twitter/arormoser
Last.fm/arormoser