In einem Microsoft Team Foundation Server 2010 gepflegte Arbeitsaufgaben können mit Excel oder Project geöffnet werden. Voraussetzung dafür ist eine Abfrage, die Arbeitsaufgaben auflistet. In Excel lassen sich Arbeitsaufgaben schnell erfassen und hochladen und in Project können sie komfortabel geplant werden.

01 Project-Plan mit TFS Aufgaben

Nachdem in Project Arbeitsaufgaben zeitlich eingeplant und die Änderungen zum TFS hochgeladen wurden, werden dort alle Aufgaben wie erwartet angezeigt. Die Abfrage können Sie jetzt wiederum in Excel und Project öffnen. Was jetzt passiert, hat sich mir noch nicht erschlossen: In Project werden die Anfangs– und Enddaten der Arbeitsaufgaben NICHT mit heruntergeladen. Alle anderen Eigenschaften werden richtig angezeigt. Ohne Anfangs- und Enddatum führt sich aber jede Planung ad absurdum.

Nach etwas Recherche stellt sich heraus, dass die Felder für Anfangs- und Enddatum für Project nur-Veröffentlichen eingestellt sind: Klar, dass sie nicht mit angezeigt werden.

Gut, zunächst die Frage: Fällt mir ein guter Grund ein, dass meine Planung in Project mit Anfangs- und Enddatum vom TFS aus nicht aktualisiert werden soll? Ja, vielleicht ändern Kollegen die Daten einfach. Allerdings können die Kollegen ebenso alle anderen Felder verändern, auch wenn sie es nicht tun sollen. Ich stelle fest: Das Vertrauen zu meinen Kollegen ist da und weitere Gründe für eine einseitige Datumsaktualisierung fallen mir nicht ein.

Daraus folgt für mich die Frage: Wie kann ich das Verhalten des TFS in meinem bestehenden Projekt verändern?

Für jedes TFS-Projekt werden die Eigenschaften erzeugt, welche beschreiben, wie Felder nach Project abgebildet werden sollen. Mit Hilfe des Werkzeugs für die Befehlszeile TFSFieldMapping.exe kann ich mir eine XML-Datei mit der Beschreibung erzeugen lassen. Dieses Werkzeug wird zusammen mit dem Team Foundation Explorer mitgeliefert und befindet sich für Visual Studio 2012 standardmäßig unter:

C:Program FilesCommon Filesmicrosoft sharedTeam Foundation Server11.0

Der Befehl lautet dann:

TFSFieldMapping.exe download /collection:”http://<TFS Server>/tfs/<Teamprojektauflistung>” /teamproject:<Teamprojekt> /mappingfile:C:mappingfile.xml

Wenn ich jetzt in die Datei sehe, ist sie sehr übersichtlich. Ich kann schnell meine gefragten Felder wiederfinden:

<Mapping WorkItemTrackingFieldReferenceName=”Microsoft.VSTS.Scheduling.FinishDate” ProjectField=”pjTaskStart” PublishOnly=”true”/>
<Mapping WorkItemTrackingFieldReferenceName=”Microsoft.VSTS.Scheduling.StartDate” ProjectField=”pjTaskStart” PublishOnly=”true”/>

Keines der anderen Feldabbildungsdefinitionen enthält die Eigenschaft PublishOnly=“true“, nur die Felder für Anfangs- und Enddatum. Nur veröffentlichen? Nein, ich möchte, dass Anfangs- und Enddatum in Project auch aktualisiert werden können. Also weg damit!

Die gespeicherte Mapping-Datei muss dann wieder dem Projekt zur Verfügung gestellt werden, was wiederum mit TFSFieldMapping.exe in der Befehlszeile passiert:

TFSFieldMapping.exe upload /collection:”http://<TFS Server>/tfs/<Teamprojektauflistung>” /teamproject:<Teamprojekt> /mappingfile:C:mappingfile.xml

Ab diesem Moment kann ich geplante Arbeitsaufgaben in Project laden und sehe auch deren Start- und Enddaten. Endlich!

Die Änderung der Datei ist nur für das jeweilige Projekt gültig. Für neue Projekte können die TFS-Projektvorlagen angepasst werden. Auch hier gibt es die Abbildungsbeschreibung zu Project.

02 TFS process template

Wie Sie diese öffnen und verändern können, finden Sie im MSDN.