Eine der vielen SharePoint-Standardfunktionalitäten ist die Aufgaben-App. Diese wurde in der Version von SharePoint 2013 um sinnvolle Features (z.B. Visualisierung der Tätigkeiten) erweitert, welche ein produktives Arbeiten erleichtern. Eines dieser Features ist die Ansicht „Meine Aufgaben“, das im Standard nur Aufgaben anzeigt, die dem aktuell angemeldeten Anwender zugewiesen sind. Wie diese Ansicht für bestimmte Anforderungen „nachgebessert“ werden kann, wird im Folgenden kurz vorgestellt.
Über die App können Aufgaben in einer Teamseite zentral gesammelt, Personen oder Gruppen als Bearbeiter zugewiesen und der Fortschritt der einzelnen Aufgaben verfolgt und dokumentiert werden. Im Standard bringt die App zahlreiche sinnvolle Features hierfür mit, z.B. einen vorgefertigten Satz an Metadaten zur Beschreibung einer Aufgabe oder eine Timeline zur Visualisierung aktueller und anstehender Tätigkeiten.
Eine weitere Standardfunktionalität sind die vorgefertigten Ansichten zur Auflistung der eingestellten Aufgaben, so kann man sich mit einem Klick beispielsweise alle abgeschlossenen oder anstehenden Aufgaben anzeigen lassen.
Eine weitere von unseren Kunden häufig eingesetzte Standard-Ansicht ist „Meine Aufgaben“: hierüber werden alle Tätigkeiten angezeigt, die dem aktuell angemeldeten Anwender zugewiesen sind. Ein einfaches und effektives Tool um einen schnellen Mehrwert für den Anwender zu schaffen.
In einem unserer Projekte hatten wir nun folgende Ausgangssituation: Die Anwender auf dem SharePoint werden nur über SharePoint-Gruppen gepflegt, welche bestimmten Rollen im Unternehmen entsprechen (z.B. Einkauf Leitung, Einkauf Assistenz, etc.). Auf den einzelnen Teamseiten der Abteilungen kommt die Aufgaben-App zum Einsatz, jedoch gab es die Anforderung, dass Aufgaben sowohl Personen direkt als auch Gruppen zugewiesen werden können, der Anwender aber trotzdem eine Ansicht zur Verfügung gestellt bekommen soll, in welcher alle seine Aufgaben dargestellt werden, unabhängig ob sie ihm direkt oder über eine Gruppe, in der er Mitglied ist, zugewiesen sind.
Hierfür bietet SharePoint im Standard keine direkte Lösung, jedoch konnte diese Anforderung relativ einfach durch die Erstellung einer neuen Ansicht und einer kurzen Bearbeitung im SharePoint Designer erreicht werden.
Erstellung einer neuen Ansicht „Meine Aufgaben (Gruppe und Person)“
Vorbemerkung: Alle beschriebenen Schritte sind im Kontext eines Websitesammlungs-Administrators ausgeführt.
Als Basis benötigen wir eine Ansicht mit mindestens einer Filterung. Da wir ungern die bestehenden Ansichten direkt bearbeiten wollen, erstellen wir uns einfach eine neue Ansicht, basierend auf der Ansicht „Meine Aufgaben“. Hierfür rufen wir aus der Aufgabenliste die Funktion „Ansicht erstellen“ auf.
Wir könnten uns nun eine komplett neue Ansicht zusammenstellen, da aber die Ansicht „Meine Aufgaben“ schon einen Teil unserer Anforderungen erfüllt (Filterung auf die Person) wählen wir diese als Grundlage für unsere neue Ansicht.
Im nun folgenden Dialog lassen wir alle Einstellungen wie vorgeschlagen und vergeben nur einen Namen, z.B. „Meine Aufgaben (Person oder Gruppe)“. Wichtig ist nur, dass die Ansicht mindestens eine Filterung enthält, was aber bei unserer ausgewählten Vorlage der Fall ist.
Bearbeitung der Ansicht im SharePoint Designer
Jetzt verlassen wir die gewohnte SharePoint-Umgebung und wechseln in den SharePoint Designer 2013 (kostenlos hier zum Download). Wir rufen unsere Seite mit der Aufgaben-App auf und wechseln über die linke Navigation direkt in die Liste.
Hier suchen wir uns jetzt unter „Views“ auf der rechten Seite unsere soeben erstellte Ansicht „Meine Aufgaben (Person oder Gruppe)“ und öffnen diese. Es wird uns nun die Code-Ansicht dargestellt, welche auf den ersten Blick für das ungeübte Auge ziemlich verwirrend wirkt. Uns interessiert hier aber nur der Abschnitt <Query>, welcher sich über eine einfache Suche (STRG+F) am schnellsten finden lässt. In dem Tag sollten wir folgende Zeile vorfinden:
<Query><Where><Eq><FieldRef Name=“Assigned To“/><Value Type=“Integer“><UserID Type=“Integer“/></Value></Eq>
Einfach übersetzt steht hier nur, dass alle Einträge angezeigt werden, bei denen im Feld „AssignedTo“ (der interne technische Name des zuvor erwähnten Feldes „Zugwiesen an“) der aktuell angemeldete Anwender eingetragen ist. Diesen Eintrag müssen wir jetzt nur um eine Abfrage auf die Gruppen erweitern. Der notwendige Eintrag, der oben genannte Zeile ersetzt, sieht dann folgendermaßen aus:
<Query><Where><Or><Membership Type=“CurrentUserGroups“><FieldRef Name=“AssignedTo“/></Membership><Eq><FieldRef Name=“AssignedTo“/><Value Type=“Integer“><UserID Type=“Integer“/></Value></Eq></Or>
Abschließend speichern wir unsere Änderungen und können den SharePoint Designer schon wieder verlassen um uns das Ergebnis direkt anzuschauen. Auf unserer Teamseite steht über unsere neue Ansicht „Meine Aufgaben (Person oder Gruppe)“ die gewünschte Ansicht zur Verfügung.
Diese Lösung kann in größeren Szenarien mit mehrstufigen Systemen natürlich auch über Visual Studio in entsprechende Pakete zur Sicherstellung eines konsistenten Roll-Outs verpackt werden. Der gewählte Weg, SharePoint Designer oder Visual Studio, hängt jedoch immer von den Rahmenbedingungen des aktuellen Projekts bzw. der gestellten Anfrage ab.
Fazit: SharePoint bietet im Standard bereits eine sehr hohe Bandbreite an sinnvollen Funktionalitäten. Jedoch treten immer wieder Anforderungen in Projekten auf die hierdurch nicht abgedeckt sind. Hier kann und will SharePoint nicht das Ziel verfolgen, diese alle direkt zu bedienen, vielmehr wird ein Framework bereitgestellt, in welchem auch individuelle Anpassungen zur Produktivitätssteigerung erreicht werden können.