Allgemein Für Administratoren Für Architekten Für Entwickler Für Projektleiter Für Tester News Produkte Publikationen
X
Sven Hubert

Sven Hubert

Zeiterfassung mit Team Foundation Server Teil 2/3 – Mit Anpassungen

Freitag, 15. März 2013

Update 13.03.2014 / thomas.ruemmler@aitgmbh.de: Die Erfahrungen aus den in dieser Blog-Reihe vorgestellten Möglichkeiten haben wir mittlerweile in unsere Erweiterung des Team Foundation Servers TFS ASAP einfließen lassen. Einen Einblick in die Möglichkeiten in Bezug auf Zeiterfassung gibt der Blog-Post Zeiterfassung mit Team Foundation Server Teil 4 – mit TFS ASAP.

Im ersten Teil der Blogserie haben wir vorgestellt, wie weit man mit TFS-Boardmitteln in punkto Zeiterfassung kommen kann. In diesem Beitrag soll es darum gehen, was sich mit Anpassungen an den TFS daran noch verbessern lässt…

Was wir erreichen wollen…

Die Standardlösung aus dem ersten Teil hatte den Nachteil, dass die Erfassung der Zeiten immer nur am heutigen Tag erfolgte. Ein Benutzer konnte keine Korrektur für einen vorangegangen Tag buchen. Die Lösung dafür werden wir im folgenden skizzieren.

Welche Anpassungen nötig sind…

Um es vorweg zu nehmen: Die Lösung funktioniert im Gegensatz zu Teil 1 nicht ohne Erweiterungen am TFS – kommt aber ohne Clientinstallation aus. Es handelt sich also lediglich um serverseitige Anpassungen ab der TFS-Version 2012. Wir haben die Erweiterungen für eine größere Kundenzahl bereits als Plattform erstellt und bieten Sie im Rahmen unserer Dienstleistungen auch neuen Kunden an.

Zum einen muss der Work Item Type – hier der Task – angepasst werden. Wir haben die neuen Felder “Current Work” vom Typ Double und “Current Work Date” vom Typ DateTime hinzugefügt. Im Formular des Task ist zunächst nur das Feld “Current Work” zu sehen:

image

Abbildung: Eintragen des Aufwandes

Sobald der Benutzer etwas in dieses Feld einträgt, erscheint das Feld Current Work Date:

 

image

Abbildung: Sobald die Zeit eingetragen ist, kann das Buchungsdatum eingetragen werden

Hier kann der Benutzer eintragen für welchen Tag der Wert in Current Work gebucht werden soll. Ein negativer Wert in Current Work korrigiert einen vorher eingetragenen positiven Wert.

Nun müssen die Zeiten nur noch automatisch auf die Felder Completed Work und Remaining Work umgerechnet werden. Dies erfolgt durch eine Hintergrundlogik die im TFS-Event-Prozess für das Work Item Changed Event angestoßen wird. Wir verwenden hierzu nicht die WebService-Schnittstelle von TFS, da diese nicht zuverlässig ist, sondern die In-Process-Variante welche allerdings wohlbedacht umgesetzt werden sollte, um nicht TFS-Prozesse zu blockieren. Bitte Fragen Sie uns unter dem Stichwort “Automation Service” nach der (kostenpflichtigen) Lösung! Das Plugin welches hier zum Einsatz kommt, löscht entsprechend den Wert aus dem Feld Current Work, damit dieses für den nächsten Eintrag verwendet werden kann. Neben diesem Anwendungsfall lässt sich der Automation Service auch für andere Szenarien einsetzen.

Für die Auswertung der eingetragenen Zeiten dient ein konventioneller SQL Report, der im Work Item über das Steuerelement “WebPageControl” eingebettet wird. Damit vereinfacht sich die Auswertung und Nutzung (“Habe ich denn die Zeiten für gestern schon eingetragen?”). Ein ergänzender Report lässt sich als Übersicht für mehrere Work Items – z.B. alle der aktuellen Iteration – erstellen. Alternativ kann auch Excel (siehe Teil 1 der Blogserie) verwendet werden.

image

Abbildung: Time-Sheet Tab im Task Work Item

Ein Nachteil der wegen des Reports entsteht ist es, dass die Daten in der Tabelle nur alle 2 Stunden durch das Warehouse-Update aktualisiert werden. Man kann das Interval zwar verkürzen, doch das geht nicht beliebig kurz, da sonst andere Jobs blockiert werden könnten. Daher muss hier bei Bedarf z.B. ein eigener WebService her, der eine direkte Verbindung zu den operativen Datenbanken des TFS hat und somit auf die “Live-Daten” zugreift.

Obwohl die Lösung einige Erweiterungen des TFS benötigt, kommt Sie doch ohne redundante Datenhaltung aus. Wir bieten Ihnen auf Anfrage gerne Hilfestellung beim Nachbau bzw. der Übernahme der hier gezeigten Lösung an.

Wie Sie Hilfestellung für diese Lösung erhalten…

Bei Kontaktaufnahme senden wir Ihnen gerne ein unverbindliches Angebot zu: Sven.Hubert@aitgmbh.de

Hinweis: Bei dieser Unterstützung handelt es sich um eine kostenpflichtige Dienstleistung.

Verwandte Artikel:

Benötigen Sie Unterstützung bei der Software-Entwicklung und Architektur von .NET basierten Lösungen oder bei Einführung und Anpassung von Visual Studio / Microsoft Test Manager / Team Foundation Server?

Wir stehen Ihnen unter info(at)aitgmbh.de gerne zur Verfügung.

Tags: , , , ,

2 Antworten zu “Zeiterfassung mit Team Foundation Server Teil 2/3 – Mit Anpassungen”

  1. Billy Nieto sagt:

    I came across your comments in the following post on Visual Studio:
    https://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2060101-tfs-needs-the-ability-to-track-hours-tied-to-a-wor

    And I came here, but I can only read English, sad face. Do you have a translated version of your blog I can access? I’m really interested in using this addon you developed.

    Thanks,
    Billy

  2. Le Hoang Giang sagt:

    Hey guys, this is exactly what we are looking for, can you guys share with us how can we integrate this solution to our TFS? thank you.

    Giang

Hinterlasse eine Antwort