vendredi 20 juillet 2012

Synchronisation bi directionnelle TFS / Microsoft Project

Par défaut, il n'est pas possible de synchroniser de manière bidirectionnelle les champs Dates (Début et Fin) d'une tache entre Microsoft Project et TFS. La mise en oeuvre de cette fonctionnalité est pourtant très utile et simple à mettre en oeuvre modulo un peu de configuration et pourra permettre par exemple à un développeur de mettre à jour les dates de début des taches sur lesquelles il travaille , avec une prise en compte automatique pour le chef de projet par un simple Refresh du planning connecté à TFS.
Cet configuration se fait à l'aide de l'utilitaire en ligne de commande tfsfieldmapping
Prérequis : Les champs Date dans le formulaire du work item type Task doivent être éditable et s'afficher sous la forme d'un contrôle Date Time Picker afin de permettre au développeur la mise à jour.
Si ce n'est pas le cas, utiliser le Process Template Editor pour modifier le Layout du Work Item Type Task comme suit :
Lancer le Process template Editor, choisir la commande Open WIT from Server, sélectionner la collection et le projet d'équipe cible, sélectionner le work item Task pour modification.
Lorsque l'éditeur est chargé, activer l'onglet Layout puis sélectionner successivement les champs Start Date et End Date et paramétrer la propriété Read Only à False et le Type en Date Time Control comme montré ci dessous. Sauvegarder.

L'affichage se présente alors comme suit : 

Pour la modification du mapping, la première étape consiste à télécharger le fichier de mapping MS Project - TFS du serveur TFS, pour cela entrer la commande suivante en remplaçant le nom de la collection et du projet d'équipe cible :
C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE>tfsfieldmapping download /collection:”http://serverName:8080/tfs/collectionname” /teamproject:”teamprojectname” /mappingfile:”c:\temp\fieldmapping.xml” 
Le fichier est stocké dans c:\temp dans notre exemple
Editer et mettre à jour à l'aide du notepad ou Visual Studio ce fichier comme illustré ci dessous, les champs à modifier sont Microsoft.VSTS.Scheduling.StartDate et Microsoft.VSTS.Scheduling.FinishDate avec les valeurs ci dessous :

finalement, sauvegarder le fichier, puis procéder à l'upload du fichier vers TFS à l'aide de la commande : 
C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE>tfsfieldmapping upload /collection:”http://serverName:8080/tfs/collectionname” /teamproject:”teamprojectname” /mappingfile:”c:\temp\fieldmapping.xml”

Tester et valider la modification du mapping