Die Anforderung des Kunden war in diesem Projekt sehr klar formuliert. Ein Mitarbeiter soll auf einen Blick den Status der Aufgaben in einer Baumstruktur aggregiert nach Meilensteinen, Teilprojekten und Arbeitspaketen angezeigt bekommen. Diese Anzeige sollte aber nur die Aufgaben eines bestimmten Typs betreffen. Für die Aufgaben soll bei der Erstellung die Eingabe der Meilensteine, Teilprojekte und Arbeitspakete möglich sein.
Eine weitere Anforderung bestand darin, dass der Status der Aufgaben automatisiert einmal pro Tag neu berechnet werden soll.
Zur Erfüllung dieser Anforderungen erstellten wir einen Inhaltstyp, der den Standard Inhaltstyp „Aufgabe“ um zusätzliche Felder erweitert. Die Felder für die Auswahl von Meilenstein, Teilprojekt und Arbeitspaket wurden mit kaskadierenden Auswahllisten ausgerüstet, um die bedingte Auswahl der Feldwerte sicherzustellen. Mit Hilfe eines zusätzlich eingeführten Statusfeldes wird die Ampelfunktion umgesetzt.
Das zusätzliche Statusfeld wird periodisch von einem entwickelten Timerjob gesetzt. Dieser prüft einmal pro Tag den Zustand der Aufgabe (offen oder geschlossen) und vergleicht das aktuelle Datum mit dem Fälligkeitsdatum, so dass das Statusfeld auf den entsprechenden Wert (OK, Warnung oder kritisch) gesetzt wird.
In einem von uns entwickelten Webpart wird die eigentliche Ampel dargestellt. Das Webpart sammelt die Daten aller Aufgaben zusammen und stellt die Meilensteine, Teilprojekte und Arbeitspakete in einer Baumstruktur dar.
Damit diese Lösung auf unterschiedlichen Sites eingesetzt werden kann, wurde sie mit einer Konfigurationsoberfläche ausgestattet, die es einem Administrator erlaubt diverse Einstellungen vorzunehmen. So kann z.B. ausgewählt werden, welche Felder für den Vergleich im Timerjob herangezogen werden sollen und bei welchen Wertegrenzen die unterschiedlichen Status der Aufgabe gesetzt werden sollen.