zurück zum Artikel

Datenquellen im Griff mit SharePoints DataFormWebPart

Marc Humpert

Ob Listen, Bibliotheken, Datenbanken, RSS-Feeds, XML-Dateien, andere WebParts oder Webdienste, mit dem DataFormWebPart in SharePoint 2010 und SharePoint Online lassen sich Daten über beliebige Quellen hinweg zusammenstellen, filtern, sortieren, gruppieren und nach Bedingungen formatieren.

Ob Listen, Bibliotheken, Datenbanken, RSS-Feeds, XML-Dateien, andere WebParts oder Webdienste, mit dem DataFormWebPart in SharePoint 2010 und SharePoint Online lassen sich Daten über beliebige Quellen hinweg zusammenstellen, filtern, sortieren, gruppieren und nach Bedingungen formatieren.

Aufgrund der großen, umfassende Bücher füllenden Komplexität [1] und der exklusiven Verfügbarkeit im SharePoint Designer (SPD) nimmt das DataFormWebPart (DFWP) eine Sonderstellung in der SharePoint-Entwicklung ein. Da der im Bearbeitungsmodus einer WebPart-Seite eingeblendete WebPart-Eigenschafteneditor nicht ansatzweise den erforderlichen Umfang an Einstellungsdialogen bereitstellt, gibt es für das DataFormWebPart auch keine Weboberfläche. Daher ist zum Nachvollziehen der hier dargestellten fiktiven Beispiele neben SharePoint 2010 unbedingt der SharePoint Designer 2010 [2] nötig.

Mehr Infos

Tipps & Tricks der SharePoint-Entwicklung

SharePoint hat sich zunehmend zu einer zentralen Plattform für Collaboration, Enterprise Content Management und Geschäftsprozesse entwickelt. Das damit verbundene Potenzial ist mit der Version 2010 sicherlich gewachsen. Viele Unternehmen schöpfen dieses jedoch nicht voll aus, obgleich es viele Schnittstellen gibt, mit denen Entwickler ihre Erweiterungen umsetzen können. Die SharePoint-Experten von Computacenter starten mit diesem Beitrag eine Artikelserie zu hilfreichen Features der SharePoint-Entwicklung.

Das DataFormWebPart zeigt sämtliche Datenquellen an, konvertiert eingehende Daten in XML und wandelt sie mit XSLT (Extensible Stylesheet Language Transformations) in HTML um. Das finale XSLT lässt sich außerdem direkt im Browser ohne Designer bearbeiten, doch das ist recht umfangreich und komplex. DataFormWebPart ist nicht auf WebPart-Zonen angewiesen, sondern kann auch innerhalb eines eingebetteten FormField-Steuerelements oder einfach auf einer Seite stehen. Innerhalb einer WebPart-Zone unterstützt es private und öffentliche Ansichten. Zusätzlich zu den Basiseigenschaften kann man im SharePoint Designer spezielle Eigenschaften bearbeiten.

Der SharePoint Designer 2010 erzeugt das DataFormWebPart automatisch, wenn man der WebPart-Seite Daten zur Anzeige hinzufügt. Sind Listen darzustellen, wählt man das ListViewWebPart. Um das DFWP aufzurufen, gibt es die Option Empty Data View (Abb. 1).

Ein leeres DataFormWebPart manuell einfügen (Abb. 1)

Nachdem das DataFormWebPart einer WebPart-Zone hinzugefügt wurde, ist es via Click here to select a Data Source zu konfigurieren. Als Datenquelle fungiert zum Beispiel die SharePoint-Liste "Produkte" mit Lagerbeständen eines Supermarkts. Nach Bestätigung über OK öffnet sich im SharePoint Designer der Dialog für die Details zur Datenquelle. Hier lassen sich mit gedrückter Strg-Taste alle Felder der SharePoint-Liste markieren, die der Anwender dem DataFormWebPart hinzufügen will. Die Ansicht wählt er über die Option Multiple Item View im Drop-down-Menü aus.

Nach Markierung des DataFormWebPart erfolgen weitere Anpassungen über das Menüband (Ribbon). Einfach einzustellen ist beispielsweise die Anzahl der gleichzeitig darzustellenden Elemente im DataFormWebPart. Aber Achtung: Der SharePoint Designer nennt die Sektion im Menüband "Data View Tools", das WebPart selbst aber "DataFormWebPart". Neben voreingestellten Optionen lassen sich in weiteren Schritten ein eigener Wert festlegen, alle Elemente auf einmal ausgeben oder die Anzahl auf einen Maximalwert begrenzen.

Häufig sollen bei der Datenpräsentation berechnete Felder dargestellt werden. Dabei sind einfache Operationen auf den Datenbestand anzuwenden, um die Anzeige für bestimmte Zwecke zu modifizieren. Nach dem Anlegen einer oder mehrerer Spalten (Abb. 2) ist der automatisch erzeugte Name der Spalte zu ändern.

Einfügen einer berechneten Spalte (Abb. 2)

Zur Modifikation der Anzeige auf Zeilenebene dient im DataFormWebPart die "bedingte Formatierung" (Conditional Formatting). Hierbei sind zum Filtern der Werte benutzte Bedingungen zu definieren. Abbildung 3 zeigt, wie sich diese Abfragen in den Dialogen einstellen lassen. Den von der Auswahl betroffenen Werten kann man dann eine andere Formatierung zuordnen. Beispielsweise lassen sich so alle positiven Zahlen grün und alle negativen rot formatieren. In der Abbildung sind Produkte, von denen weniger als fünf im Lager sind, orangefarben markiert.

Bedingte Formatierungen (Abb. 3)

Für komplexere Aufgabenstellungen bietet das DataFormWebPart weitreichende Unterstützung. Sollen etwa die Daten einer SharePoint-Liste "Firmen" angezeigt werden, in der die Lieferanten der Firma aus dem vorherigen Beispiel gespeichert sind, markiert man die gewünschten Felder "Titel", "Adresse", "PLZ", "Ort", "Ansprechpartner" und "Telefonnummer" mit gedrückter Strg-Taste und fügt sie dem DataFormWebPart anschließend als "Single Item View" hinzu. Neben dieser Ansicht stehen "Multiple Item View", "Single Item Form" und "Multiple Item Form" zur Verfügung. Darauf lässt sich ein anderer Stil wählen oder das Ergebnis in einem HTML-Editor beliebig bearbeiten. Zudem sind über Browse for more View Styles from Office.com weitere Vorlagen verfügbar. Allerdings sollten Entwickler und Designer ihrer Phantasie nicht zu freien Lauf lassen, denn schließlich müssen die Anwender mit dieser Darstellung täglich arbeiten. So sollten nicht nur die Benutzeroberfläche übersichtlich gestaltet sein, sondern auch die Daten auf eine sinnvolle, erfassbare Größe komprimiert werden. Dazu dient das Element Gruppierung.

Die Option Sort & Group befindet sich im Menüband unter Data View Tools. Damit lässt sich das DataFormWebPart der SharePoint-Liste "Produkte" nach dem Feldwert "Typ" sortieren und gruppieren. Es handelt sich um ein Auswahlfeld (Choice) der SharePoint-Liste für die Produktart. Damit stehen bislang drei DataFormWebParts auf der Seite. Das obere DataFormWebPart zeigt das LinkTitle-Feld der SharePoint-Liste "Firmen", das unten links stehende jeweils einen kompletten Datensatz der gleichen Liste. Rechts unten befindet sich ein DataFormWebPart für die Liste "Produkte", das nach Produkttyp gruppiert ist und eine bedingte Formatierung besitzt (Abb. 4).

Drei DataFormWebParts mit Detailinformationen (Abb. 4)

DataFormWebParts können Informationen auch verbinden, austauschen und weiterverarbeiten. Dazu sollen nach Auswahl eines Firmennamens im oberen DataFormWebPart die Firmendetails in der Single Item View des DataFormWebPart links unten erscheinen. Das DataFormWebPart der Produktliste rechts unten soll nur noch solche Produkte darstellen, die das Unternehmen über die gewählte Firma bezieht. Über das Feld "FirmenID" werden die Datensätze der SharePoint-Liste "Firmen" eindeutig identifiziert. Es ist zudem in der Liste "Produkte" vorhanden, um diese der Lieferfirma zuzuordnen.

Das Hinzufügen einer WebPart-Verbindung erfolgt in den Optionen des DataFormWebPart für die Detailansicht der Firmendaten über die Schaltfläche Add Connection (Abb. 4, links). Über Get Filter Values from wird als Quelle das DataFormWebPart mit den Namen aller Firmen (oben) gewählt. Die Aktion Send Row of Data to ist nun festzulegen, zum Beispiel werden die in beiden DataFormWebParts übereinstimmenden Felder bestimmt. Das Feld "ID" enthält die eindeutige Identifikationskennzeichnung der Firma. Da sich Verknüpfungen über Hyperlinks verfolgen lassen, ist in der Folge das Feld zu wählen, dessen Wert der Link anzeigt. Dafür steht das Feld "Title" zur Verfügung. Entsprechend wird das DataFormWebPart der Liste "Produkte" unten rechts verbunden.

Die Optionen für das Hinzufügen, Editieren und Löschen von Elementen eines DataFormWebPart befinden sich unter dem Punkt Inline Editing im Menüband (Abb. 5). Bei aktivierter Option Show Edit Item Link lassen sich Elemente direkt über die WebPart-Seite bearbeiten. Das geht zudem mit HTML-Befehlen. SharePoint bietet in der Tabellenansicht automatisch Links für das Speichern oder Abbrechen der Bearbeitung an.

Link-Eingabe für neue Datensätze und die generierte Maske (Abb. 5)

Das Absenden des Form und das Empfangen der aktualisierten Daten ist jedoch nicht mehr zeitgemäß. Benutzer erwarten auch bei Webapplikationen, dass in der Quelle geänderte Daten sofort in der Benutzeroberfläche sichtbar werden. Das geht mit AJAX, bei dem der Client regelmäßig nachfragt, ob sich Daten auf dem Server geändert haben. Das Intervall lässt sich im Menüband auf 15, 30 oder 60 Sekunden einstellen. Bei 4500 Clients entspricht das 15-Sekunden-Intervall aber schon 300 Anforderungen pro Sekunde, die der SharePoint-Server zusätzlich zu verarbeiten hat. Alternativ kann man die Aktualisierung auch dem Benutzer überlassen. Der entsprechende Refresh-Link erscheint als Symbol mit zwei kreisenden Pfeilen rechts oben.

Das DataFormWebPart kann die Werkzeugleisten und Kontextmenüs von SharePoint erweitern, damit der Nutzer bekannte Funktionen wie Filtern und Sortieren erhält. Dazu gibt es zwei Werkzeugleisten: Mit der SharePoint Toolbar lässt sich die SharePoint-Liste bearbeiten, um zum Beispiel neue Elemente hinzuzufügen, Ansichten und Spalten zu erstellen oder die Einstellungen der Liste zu verändern. Mit der Grouping-Toolbar kann der Anwender angezeigte Daten filtern, sortieren und gruppieren (Abb. 6).

Werkzeugleisten mit typischen Bearbeitungsfunktionen (Abb. 6)

Mehr Möglichkeiten bieten Parameter, die das Verhalten der Anwendung modifizieren. Das kann bis auf Benutzerebene herunter erfolgen, um bestimmte Anforderungen ohne erneuten Aufbau einer weiteren WebPart-Seite zu erfüllen. Allerdings dürfen von außen gesendete Parameter keine sicherheitsrelevanten Funktionen steuern.

Der für das DataFormWebPart erstellte Parameter lässt sich als Filterkriterium verwenden. Dazu ist im Menüband die Funktion Filter aufzurufen und auf Basis des Parameters ein Filter zu definieren (Abb. 7). Zum Beispiel existiert in der SharePoint-Liste "Firmen" das Boolesche Feld "IstAktiv" mit dem Standardwert "False". Bei Aufruf der WebPart-Seite mit dem Query-String http://...Overview.aspx?IsActive=1 werden über "Hinzufügen" (Insert) gespeicherte Firmen nicht in der Datenausgabe aufgeführt, solange der Anwender den Wert des Felds "IstAktiv" nicht manuell auf "True" setzt. Der Aufruf der WebPart-Seite über http://...Overview.aspx?IsActive=0 erreicht das Gegenteil.

Externe Parameter, die im DFWP Filteroperation auslösen (Abb. 7)

Es lassen sich noch zahlreiche weitere Funktionen bereitstellen. Zum Beispiel kann man den Bestellprozess für solche Artikel einrichten, deren Lagerbestand kleiner als fünf ist, die also im ersten Beispiel orangefarben markiert waren. Dazu muss man eine neue Spalte für die Form Action über das Menüband hinzufügen. Damit die Funktion nicht auf jeder Zeile der Produktliste erscheint, wird im Assistenten [Custom Action] gewählt und die Auswahl über den Button Add >> übernommen. Der SharePoint Designer erstellt daraufhin einen "Form Action Workflow". Mit Browse to and open the workflow to define its behavior lassen sich der erstellte Workflow öffnen und die weiteren Aktionen festlegen. Ein Klick auf den Button Form Action legt ein neues Element in der SharePoint-Liste "Bestellungen" an. Die Details der Bestellung stammen aus den Feldern der Liste "Produkte".

Zudem lassen sich weitere Datenquellen ergänzen. Um eine XML-Datei in das Root-Verzeichnis der Site oder in die Bibliothek "Site Assets" zu kopieren, gibt es im Designer den Menüpunkt Data Sources. Im Menüband befinden sich Optionen, um weitere Datenquellen mit dieser SharePoint-Site zu verwenden, zum Beispiel "XML File Connection". Auf ähnliche Weise kann der Nutzer Datenbanken sowie SOAP- und REST-Webservices anbinden. Mit dem SharePoint Designer 2010 verknüpft er diese Quellen zu einer einzigen Verbindung. Allerdings muss er alle Datenquellen zuerst anlegen, sofern es sich nicht um SharePoint-Listen oder Dokumentbibliotheken handelt. Anschließend lassen sie sich durch ein DataViewWebPart oder DataFormWebPart genauso verwenden wie eine herkömmliche SharePoint-Liste.

Das DataFormWebPart ist leistungs- und anpassungsfähig und kann viele andere WebParts ersetzen. Zudem ist es in Microsofts Cloud-Anwendung Office 365 verfügbar, falls ohne eigenen Code komplexere Formatierungen umzusetzen sind. Die Markup-Ansicht lässt sich zwar nutzen, doch nur mit umfangreichem Code. Auch für C#-Nutzer gibt es entsprechende Varianten [3].

Marc Humpert
arbeitet seit dem Abschluss seiner Diplomarbeit zum Thema "Microsoft Office SharePoint Server 2007" als Softwareentwickler und Trainer für SharePoint bei Computacenter.

Mit WebPart-Seiten lassen sich Inhalte einer SharePoint-Website dynamisch anpassen. Das ermöglichen Bausteine, sogenannte WebParts, aus denen der Inhalt zusammengestellt wird. Ein WebPart ist eine in sich abgeschlossene Einheit von Programm- und Darstellungslogik, die nicht auf die Einstellungen einer WebPart-Seite angewiesen ist, da sie selbst den gesamten Programmcode für ein korrektes Funktionieren enthält. WebParts umfassen eine breite Palette von Funktionen und lassen sich – anders als vergleichbare Techniken – flexibel einsetzen und wiederverwenden. Für das Hinzufügen eines WebParts definiert die Seite spezielle Zonen. Eine Seite kann mehrere Zonen enthalten, von denen wiederum jede eine Vielzahl an WebParts aufnehmen kann. In SharePoint 2010 kann man WebParts und reine HTML-Inhalte (Texte, Tabellen, Grafiken etc.) gleichzeitig einfügen. (ane [8])


URL dieses Artikels:
https://www.heise.de/-1383056

Links in diesem Artikel:
[1] http://bobmixon.com/wp-content/uploads/2010/08/Getting-to-know-the-Data-Form-Web-Part.pdf
[2] http://sharepoint.microsoft.com/en-us/product/related-technologies/pages/sharepoint-designer.aspx
[3] http://wicklunddataformwp.codeplex.com/
[4] http://bobmixon.com/wp-content/uploads/2010/08/Getting-to-know-the-Data-Form-Web-Part.pdf
[5] http://wicklunddataformwp.codeplex.com/
[6] http://sharepoint.microsoft.com/en-us/product/related-technologies/pages/sharepoint-designer.aspx
[7] https://www.heise.de/hintergrund/SharePoint-Entwicklung-mit-Application-Lifecycle-Management-unterstuetzen-1221691.html
[8] mailto:ane@heise.de