Neuigkeiten beim Webpart für Inhaltsabfragen

Hallo, mein Name ist Dustin Anglin, und ich bin Program Manager im Enterprise Content Management-Team. Heute möchte ich berichten, welche Neuigkeiten es bei einem der beliebtesten SharePoint-Webparts gibt, dem Webpart für Inhaltsabfragen, oder, wie es unter Akronymliebhabern besser bekannt ist, CQWP (Content By Query Web Part).

Falls Sie es noch nicht getan haben, sehen Sie sich die beiden Beiträge ECM-Übersicht von Jim Masson und WCM-Übersicht von Sangya Singh an.

CQWP für Einsteiger

Für diejenigen von Ihnen, die mit CQWP noch nicht vertraut sind, gebe ich eine kurze Einführung dazu, was das Webpart tut, und wofür es verwendet werden kann.

Das Webpart für Inhaltsabfragen ist ein Tool, das von Websitedesignern verwendet werden kann, um interessante und relevante Informationselemente auf einer Webseite zusammenzufassen, indem es die Erstellung von Abfragen über eine benutzerfreundliche Benutzeroberfläche und die anschließende Anzeige dieser Inhalte auf eindeutige und konfigurierbare Weise ermöglicht.

Abbildung

Das CQWP wurde entwickelt, um zusammengefasste Inhalte aus mehreren unterschiedlichen Bereichen zurückzugeben, aus einer einzelnen Liste oder Bibliothek oder aus allen Listen oder Bibliotheken einer gesamten Websitesammlung. in SharePoint 2010 wurde die CQWP-Abfrage für einzelne Listen dahingehend optimiert, dass sie mit großen einzelnen Bibliotheken arbeitet, wobei intelligente Indizes und weitere Tools verwendet werden, um die Abfrageleistung für große Dokumentbibliotheken zu verbessern.

Für eine umfassendere Übersicht über CQWP empfehle ich den Blogbeitrag zu SharePoint 2007 von George Perantatos.

Erstellen eines Webparts für verwandte Nachrichtenmeldungen mit CQWP

Die beste Möglichkeit, etwas zu lernen, erfolgt über ein Beispiel. Wir verwenden also ein typisches Szenario unter Verwendung von CQWP, das weitere Nachrichtenmeldungen zu der gerade gelesenen Meldung anzeigt. Da wir außerdem keine älteren Meldungen erhalten möchten, werden wir sicherstellen, dass unser Webpart nur aktuelle Meldungen anzeigt, also Meldungen, die innerhalb der letzten Woche entstanden sind.

Erstellen der Abfrage: Ausführen der Abfrage auf der Grundlage des Kontexts

Das Webpart für Inhaltsabfragen eignet sich hervorragend zur Anzeige von abgefragten Inhalten auf einer Seite, ich möchte jedoch nicht JEDES MAL, wenn ich eine neue Nachrichtenmeldung erstelle, ein neues CQWP zu einer Webpartzone hinzufügen, vor allem, wenn ich immer wieder das gleiche Webpart einrichten muss.

In SharePoint 2007 konnten Sie ein CQWP zu einem Seitenlayout hinzufügen, sodass es auf allen Seiten eines bestimmten Typs vorhanden war (beispielsweise könnten Sie in diesem Szenario ein Seitenlayout „Nachrichtenartikel“ erstellen), das Problem war jedoch, dass nur eine Abfrage für das Webpart festgelegt werden konnte, was bedeutet, dass jede Seite, die das Layout „Nachrichtenartikel“ verwendete, die gleichen Ergebnisse zurückgegeben hat.

Wir möchten jedoch, dass jede „Nachrichtenartikel“-Seite Artikel anzeigt, die zu dem aktuellen Artikel gehören, den ich gerade lese, beispielsweise verwandte Sportmeldungen, wenn ich gerade Sportartikel lese.

Wir benötigen auch ein Metadatenfeld, das beschreibt, welcher Art von „Nachrichtenartikel“ der aktuelle Artikel ist, beispielsweise Sport oder Wirtschaft, wir fügen daher ein neues Feld Verwaltete Metadaten (Managed Metadata) mit dem Namen „Nachrichtenkategorie“ hinzu, das mit dem Terminologiespeicher verknüpft werden kann, in dem eine verwaltete Taxonomie von Nachrichtenkategorien erstellt wird, aus der unsere Autoren auswählen können.

Das Folgende stellt eine konzeptuelle Übersicht des Seitenlayouts unserer „Nachrichtenartikel“-Seite dar:

Abbildung

Ich habe erwähnt, dass unser Webpart vom Kontext des aktuellen Artikels gesteuert werden soll, vor allem der „Nachrichtenkategorie“ des aktuellen Artikels. In SharePoint 2010 können wir das erreichen, indem wir unseren Abfragefilter mit zwei hilfreichen neuen Token einrichten:

PageFieldValue

Dieses Token ermöglicht die Festlegung eines Felds, das sich im aktuellen Seitenlayout befindet, und den Wert des Filters dynamisch durch den Feldwert der aktuellen Seite ersetzt.

Beispiel: Ich habe ein benutzerdefiniertes Feld Verwaltete Metadaten (Managed Metadata) mit dem Namen „Nachrichtenkategorie“ erstellt, das angibt, welcher Art meine „Nachrichtenkategorie“ ist (Wirtschaft, Politik, Welt, Sport usw.) und füge dieses dem Seitenlayout „Nachrichtenartikel“ hinzu. Durch die Verwendung des Tokens PageFieldValue ändert sich die Abfrage auf der Grundlage der Nachrichtenkategorie der aktuellen Seite. Wenn also die Kategorie der aktuellen Seite „Sport“ ist, werden mit „Sport“ gekennzeichnete Seiten zurückgegeben.

PageQueryString

Wie bei dem Token PageFieldValue kann auch in der URL-Abfragezeichenfolge nach einem in der Abfrage zu verwendenden Wert gesucht werden.

Beispiel: Sie könnten der URL einen Abfragezeichenfolgewert wie „&Nachrichtenkategorie=Sport“ hinzufügen und die Abfrage des CQWP so festlegen, das es Seiten zurückgibt, in denen das Feld „Nachrichtenkategorie“ gleich „Sport“ ist oder der Wert, der sich zurzeit in der Abfragezeichenfolge befindet.

Die Verwendung des Abfragezeichenfolgeparameters ist von Vorteil, wenn Sie in einem Webpart unterschiedliche Ergebnissätze anzeigen möchten, ohne für jeden einzelnen Ergebnissatz eine neue Seite erstellen zu müssen.

Abbildung

In diesem Beispiel verwenden wir das Token PageFieldValue, um unser CQWP für die Rückgabe von Nachrichtenartikeln einzurichten, deren Feld „Nachrichtenkategorie“ den gleichen Metadatenwert enthält wie das Feld „Nachrichtenkategorie“ des aktuellen Artikels. Und durch die Anpassung des benutzerdefinierten Layouts der Seite „Nachrichtenartikel“ ist das CQWP automatisch auf allen „Nachrichtenartikel“-Seiten vorhanden, die bereits eingerichtet wurden, und bereit, verwandte Artikel anzuzeigen.

Wenn Sie sich die Abfrage etwas näher ansehen, werden Sie feststellen, dass ich zwei weitere Filter hinzugefügt habe. Der erste Filter filtert alle Artikel aus, die den gleichen Namen besitzen wie der aktuelle Artikel (d. h., es wird sichergestellt, dass der aktuelle Artikel in den Abfrageergebnissen nicht dupliziert wird) sowie einen Filter, der nur Nachrichtenmeldungen zurückgibt, die innerhalb der letzten 7 Tage erstellt wurden, um sicherzustellen, dass die Ergebnisse immer aktuell sind.

Gleichzeitig ist das Metadatenfeld „Nachrichtenkategorie“ eines der neuen Verwalteten Metadaten-Felder (Managed Metadata), die von dem CQWP vollständig unterstützt werden, einschließlich der Einzel- und Mehrwertvarianten. Es wird in diesem Beispiel zwar nicht dargestellt, das CQWP unterstützt jedoch auch das Filtern über die Spalten Unternehmensschlüsselwörter sowie die Spalte Alle Kategorien, sodass Sie nach allen verwalteten Metadatenkategorien für ein abgefragtes Element suchen können, unabhängig davon, welches Metadatenfeld des Elements die Kategorie enthält.

Abbildung

Anzeigen der Ergebnisse: Zuordnen von Spalten aus dem Toolbereich

Einige Leute lieben es, XSLT zu schreiben, und denen sage ich, schreibt soviel XSLT wie ihr wollt und viel Spaß dabei. Der Rest von uns aber, und dabei handelt es sich vermutlich um die Mehrheit (wir mögen euch XSLT-Programmierer trotzdem), haben keine Lust, herauszufinden, wie sich Feld X, Y und Z mithilfe von XSLT anzeigen lässt.

In SharePoint 2010 ist eines der praktischsten neuen Features für das CQWP die Möglichkeit, direkt im Toolbereich der Benutzeroberfläche festzulegen, welche Felder angezeigt werden sollen. Nachdem die Abfrage definiert ist, öffnen wir jetzt den Abschnitt Präsentation und sehen uns diesen an:

Abbildung

Im Abschnitt Präsentation des Toolbereichs gibt es einen neuen Abschnitt mit dem Namen Anzuzeigende Felder, in dem die Felder eingegeben werden können, die für alle definierten XSL-Stile angezeigt werden sollen. Stellen Sie sich den Elementstil als leere Vorlage vor, die definiert, wie viele Elemente angezeigt werden können und wo, jedoch nicht, welche Felder angezeigt werden. Nachdem Sie Ihre Vorlage ausgewählt haben, brauchen Sie nur die Felder, die Sie anzeigen möchten, hinzufügen, indem Sie sie in die Platzhalter eingeben, die für einen bestimmten Elementstil angezeigt werden.

Ich habe einen Stil ausgewählt, der über eine Abbildung links verfügt, einen Link zu der Seite, die durch den Titel des Artikels dargestellt wurde und eine kurze Zusammenfassung des Artikels (ein benutzerdefiniertes Feld, das ich für mein Seitenlayout definiert habe). Indem ich in jeden dieser Platzhalter die Felder eingebe, die ich anzeigen möchte, erhalte ich die folgenden Ergebnisse:

Abbildung

Gesamtzeit für das Herumbasteln mit XSLT: 0,0 Sekunden! Glückwunsch!

Fassen wir zusammen

Zusammenfassend haben wir Folgendes erreicht:

  • Wir haben allen „Nachrichtenmeldung“-Seiten ein CQWP hinzugefügt, indem wir das Seitenlayout an einer Stelle angepasst haben.
  • Wir haben die Webpartabfrage so eingerichtet, dass sie dynamisch auf der Grundlage des Inhalts der aktuellen Seite gesteuert wird (Sportartikel geben verwandte Sportartikel und Wirtschaftsartikel weitere Wirtschaftsartikel zurück usw.).
  • Wir haben die Präsentation des Webparts für die Anzeige von benutzerdefinierten Feldern konfiguriert, ohne benutzerdefiniertes XSLT geschrieben zu haben.

Und so sieht das fertige Produkt aus:

Abbildung

Wenn meine Inhaltsautoren jetzt neue Meldungen verfassen, besitzt jeder Artikel ein Webpart, das die aktuellsten verwandten Artikel anzeigt. Und die Autoren müssen sich nicht mit Webparts und Abfragen auseinandersetzen.

Zusammenfassung

Dies ist nur ein Beispiel für einige der großartigen neuen Aufgaben, die Sie mit dem Webpart für Inhaltsabfragen ausführen können, indem Sie die Leistungsfähigkeit inhaltsgesteuerter Abfragen und die benutzerfreundliche, codelose Konfiguration der Inhaltsanzeige nutzen. Informieren Sie sich regelmäßig über das CQWP und weitere großartige ECM-Features in SharePoint 2010.

Es handelt sich hierbei um einen übersetzten Blogbeitrag. Sie finden den Originalartikel unter What’s New with the Content Query Web Part