Team Foundation Server, MS Project und Ich

Vor ein paar Wochen war ich gezwungen, jeden Tag einen MS Project 2010 Projektplan mit Team Foundation Server 2010 Work Items zu synchronisieren. Jeden Tag mindestens zehn Minuten arbeit für die Katz’, vergleichen, aktualisieren, neue Work Items hinzufügen etc.. Nach dem Abschluss des vergangenen Sprints habe ich mir die Integration zwischen TFS und MS Project einmal genauer angeschaut und so eingerichtet, dass es für mich passt.

Bestehende Konfiguration auslesen

Der erste Schritt bestand darin zu verstehen, warum nur ein Teil der wichtigen Felder nach MS Project übertragen und warum noch weniger Felder wieder nach TFS geschrieben werden. Dazu gibt es mit Visual Studio ein kleines Tool “tfsfieldmapping.exe” mit der Operation “download”.

image

Das Ergebnis ist eine XML Datei mit dem aktuellen Mapping der internen Felder von TFS auf MS Project.image

Im nächste Schritt war zu definieren, welche Spalte vom TFS wie auf MS Project gemappt werden soll. Und schon gingen die Probleme weiter.

TFS Work Items anpassen

Das nächste Problem waren die verfügbaren Felder in den beiden Work Item Typen “Bug” und “Task”. Nicht alle Felder waren in beiden Work Items verfügbar. Manche nur in Task, manche nur im Bug, und “% Completed” in keinem der Work Item Typen. Damit MS Project alle Felder wieder in den TFS schreiben kann, müssen die Work Items so bearbeitet werden, dass beide Work Items alle Felder für das Mapping enthalten. Hierbei helfen die Visual Studio Power Tools mit dem Process Editor.

image

Mir dem Process Editor lassen sich zudem die internen Namen für die Felder sehr schnell ablesen, aber wie ist das mit MS Project.

MS Project interne Feldnamen

Nach langem Suchen habe ich endlich ein Seite gefunden, auf der alle MS Project aufgelistet werden. Mit dieser Liste konnte ich die Mapping-Datei endlich anpassen.

Mapping anpassen

Bei dem Mapping selber gibt es nur wenige Besonderheiten. Wenn man erst einmal ein paar Hürden wie “Datentypen” oder “Was mappe ich wohin” genommen hat, ist es relativ einfach. Es gibt nur wenige Tipps.

SNAGHTML30b5733

1) Gibt es kein Feld für einen Wert in MS Project, nimmt man einfach ein Reserve-Feld (“pjTaskText19”) und gibt ihm einen Namen (“ProjectName”)

2) Bei manchen Feldern kann man die Einheit, hier ob eine Dauer in Tagen, Stunden oder Wochen angegeben werden soll

3) Neue Felder werden ganz normal gemappt. Ich hatte zwar etwas Probleme mit dem richtigen Datentyp (int statt double), aber irgendwann funktioniert auch das

Im original Mapping sind noch Optionen zum Synchronisieren zu finden wie “PublishOnly” oder “IfSummaryRefreshOnly”. Da ich die Daten immer nach TFS speichern und aus TFS lesen wollte, entfallen diese Optionen in meinem Mapping.

Und wie Hochladen

Der letzte Schritt ist das Hochladen der Mapping-Datei in den TFS. Das funktioniert wie das Runterladen, nur das statt “download” der Operator “upload” verwendet wird. Und voilà, das Mapping steht und die Daten werden wunderbar Synchronisiert.

image

About these ads

Über Thomas Mentzel
C#, SharePoint, .NET

2 Responses to Team Foundation Server, MS Project und Ich

  1. Matej sagt:

    Das TFS-Feld “Microsoft.VSTS.Scheduling.PercentCompleted2″ ist bei mir nicht vorhanden. Ich konnte auch kein vergleichbares Feld finden. Muss man da noch etwas installieren um dieses Feld benutzen zu können?

  2. @Matej: Wie beschrieben gehört “Percent Complete” zu den Feldern die man ganz neu anlegen muss. Dadurch, dass ich “PercentComplete” mit dem falschen Datentyp angelegt hatte, musst ich ein “PercentComplete2″ mit dem richtigen Datentypen anlegen.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ photo

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

Follow

Erhalte jeden neuen Beitrag in deinen Posteingang.

%d Bloggern gefällt das: