News Teaser-Workflow und Aggregation mit Nintex und MatchPoint

Eine immer wieder von Kunden gewünschte Funktionalität im Rahmen eines Intranet-Projektes ist die Darstellung von News auf der Startseite. Auf SharePoint basierend sollen die Meldungen aus einer bestehenden News Website angezogen und zentral verwaltet werden können. Im folgenden Beispiel wurde dies mit Nintex Workflow und mit MatchPoint umgesetzt.

Die Anforderungen

Auf der Startseite sollen als Teaser ausgewählte Top News aus den verschiedenen Bereichen angezogen und dargestellt werden. Die News befinden sich in einer eigenen SiteCollection, wo die Meldungen erstellt und abgelegt werden.
Auf der Startseite sollen drei News Elemente platziert sein:

  • Ein Artikel Prominent mit grossem Bild zuoberst
  • Eine kleine Anzahl weiterer Newsteaser darunter
  • Zusätzlich aufklappbar weitere (ältere) Newsteaser

Alle Meldungen, die als Teaser auf der Startseite ersichtlich sein sollen, durchlaufen einen Workflow und können dadurch zentral verwaltet und freigegeben werden.

Die Umsetzung – Genehmigungs Workflow

Für die Newsmeldung wird in der entsprechenden SiteCollection eine News Seite erstellt, mit Inhalt befüllt und veröffentlicht. Diese Meldung ist damit in der News-Applikation ersichtlich und zugänglich. Soll nun die News ebenfalls auf der Startseite des Intranets dargestellt werden, so kann man über einen Button im Ribbon die Veröffentlichung auf der Startseite beantragen.

Durch diesen Vorgang wird ein Eintrag in einer Liste erstellt, auf welcher mit Nintex ein Workflow entwickelt wurde, welcher den Genehmigungs-Prozess abwickelt und somit die zentrale Verwaltung der Top News sicherstellt. Über das Startdatum kann der Zeitpunkt der Veröffentlichung auf der Startseite beeinflusst werden.

Die Verwaltungsstelle erhält eine E-Mail mit den Informationen zur News-Meldung. Sie hat nun die Möglichkeit, die News abzulehnen und nicht auf der Startseite anzeigen zu lassen, oder die Meldung als Top News zu genehmigen, entweder gepinnt und prominent zuoberst auf der Startseite ersichtlich, oder als normale Top News in der Liste unterhalb der gepinnten Nachricht. Durch den Nintex Workflow wird der erstellte Listeneintrag verändert und als Top News markiert.

WebParts – gepinnte News

Auf der Startseite wurden insgesamt vier Webparts mit MatchPoint erstellt. Für die gepinnte Top News wurde ein Composite Webpart verwendet, welches über einen ExpressionDataProvider den markierten Eintrag aus der Top News Liste anzieht und mit Hilfe des PatternTransformers darstellt.
Expression Code:

In der abgebildeten Methode wird die gepinnte Top News per CAML Query aus der Liste ausgelesen und mittels der URL mit Hilfe der MatchPoint API geladen und zurückgegeben.
Im PatternTransformer des MatchPoint Composite WebParts wird mit HTML das, aus der GetPinnedTopNews() Methode erhaltene, ListItem auf der Startseite dargestellt.

PatternTransformer – RowTemplate Code:

Aggregations WebParts

Da die Performance gerade auf der Startseite des Intranets sehr entscheidend ist, sollte für die Aggregation der neuen weiteren Meldungen jeweils nur einen Aufruf pro Meldung abgesetzt werden. Dies wird durch ein verstecktes MatchPoint Composite WebPart erreicht, welches ebenfalls mit einem ExpressionDataProvider und CAML-Query die Seiten aggregiert und lädt, jedoch nicht darstellt.
Expression Code:

Auszug aus dem DeveloperDashboard:

Weitere News WebParts

Anschliessend kann in den weiteren WebParts ebenfalls per ExpressionDataProvider über die ConnectionData auf die Daten des „Aggregations“-WebParts zugegriffen werden. Dadurch ist pro Meldung nur noch ein Zugriff notwendig und sowohl das Caching wie auch die Sortierung kann zentral gelöst werden.

Expression für die ersten vier News:
ConnectionData.NewsList.Count() > 3 ? ConnectionData.NewsList.ToList().GetRange(0, 4) : ConnectionData.NewsList.ToList().GetRange(0, ConnectionData.NewsList.Count())

Expression für die weiteren fünf Beiträge:
ConnectionData.NewsList.Count() > 4 ? ConnectionData.NewsList.ToList().GetRange(4, ConnectionData.NewsList.Count()-4) : null

Das „Aggregations“-WebPart wird per jQuery ausgeblendet, damit dieses für den Benutzer nicht sichtbar ist. Das Aufklappen des WebParts mit den fünf weiteren News wurde ebenfalls per jQuery gelöst.

Fazit

Mit Hilfe von Nintex, MatchPoint und einigen Tricks können dem Kundenwunsch entsprechende News Teaser in SharePoint gebaut werden, welche sowohl performant wie auch einfach zu verwalten sind. Dank des Workflows kann auch ein komplexer Genehmigungsprozess abgebildet und integriert werden.

MatchPoint (Teil 1): Entwicklung komplexer SharePoint-Lösungen

Mit diesem Blog-Post beginnen wir eine Serie zum Thema Entwicklung von komplexen SharePoint-Lösungen. Es stellt sich zuerst die Frage: ab wann ist eine SharePoint-Lösung komplex? Nun, leider ist man schneller in diesem Bereich als allgemein angenommen, denn das Produkt selbst ist aufgrund seines Funktionsumfangs und den vielen möglichen Wegen, wie eine Lösung aufgebaut werden kann, komplex genug.

SharePoint sollte als Framework betrachtet werden (es ist keine fixfertig Anwendung wie Microsoft Word das installiert wird und dann ist gut). Es ist ein Baukasten, der viele verschiedene Elemente und Funktionen enthält, mit denen ein Benutzer “arbeiten” kann. Die Stärke liegt darin, wenn kleinere Teams/Arbeitsgruppen sich komplett selbst organisieren und es zur Zusammenarbeit anwenden. Sobald dies in etwas grösserem Zusammenhang betrachtet werden muss, besteht oft der Drang, dass eine gewisse Vereinheitlichung, Steuerung und auch übergreifende Funktionalitäten anzubieten.

Und hier beginnt die eigentliche Komplexität: das alles muss gut und sauber geplant und konzipiert werden. Und leider sind dank der Hochglanz-Broschüren des Produktes oft die Erwartungshaltungen wesentlich höher, als was dann mit Standardmitteln effektiv möglich ist. Ich habe als Berater schon sehr oft den Satz gehört “ich erwarte aber von einem Produkt wie SharePoint, dass es das einfach standardmässig kann”. Und hier lässt sich meist mit “ja, das geht…. ABER….” antworten.

Es bleibt die Frage, mit welchen Mitteln baue ich denn überhaupt eine richtig gute SharePoint-Lösung? Diese soll exzellente Personalisierungsmöglichkeiten bieten, hoch dynamisch sein und natürlich völlig unterschiedliche Fragestellungen auf einmal lösen. Folgende Möglichkeiten stehen zur Verfügung:

  • Fokus auf Out-of-the-Box-Mitteln: ja, eine SharePoint-Lösung kann rein auf Basis von OOB-Mitteln realisiert werden. Das kann aber nur dann funktionieren, wenn Sie das Produkt und seine Funktionen so akzeptieren, wie es ist und Ihre Anforderungen sich am Produkt ausrichten. Und dies ist so in der Realität nicht anzutreffen, denn die Funktionen mögen für eine Firma wie Microsoft passen — aber ticken alle Firmen weltweit genau gleich wie Microsoft? Hier ist oft entsprechendes Frustpotential vorherzusehen (auf längere sichtweise)
  • Zusätzliche Eigenentwicklungen: SharePoint ist ein Framework und bietet somit eine weitere klare Stärke: das Teil kann praktisch unendlich mit allen sich erdenklichen Funktionalitäten erweitert werden. Hier steht im Prinzip die gesamte Funktionsfülle von Visual Studio und dem .NET-Framework zur Verfügung. Nachteil dieser Variante sind die hohen Kosten, erhöhte Projektrisiken, höhere Wartungsaufwände, komplexeres Change Management, Upgrade-Fähigkeiten etc.
  • Einsatz von Add-Ons: der Markt für Add-Ons/Erweiterungen zu SharePoint ist massiv am Wachsen. Dies zeigt, dass SharePoint nur Basis-Instrumente anbietet, aber nicht einfach alles damit gelöst werden kann. Betrachten wir die verschiedenen Kategorien von Add-Ons:
    • Ersatz von Standardfunktionen: diese Kategorie von Add-Ons zielt darauf ab, ganze Funktionen SharePoint mit mächtigeren Instrumenten zu ersetzen. Beispiel hierfür sind Workflow-Lösungen, Search-Lösungen, Analytics-Lösungen etc.
    • Erweiterungen mit neuen Funktionen: dies sind oft spezifische WebParts oder ganze Lösungen, die komplett neue Funktionen für SharePoint bereitstellen. Dies sollte jeweils genauer betrachtet werden, bevor ein individuelles WebPart entwickelt wird. Auf der Website “Codeplex” findet sich eine Vielzahl von Open-Source-WebParts und Funktionen, die dies untermauern.
    • Funktionale-Frameworks: diese gehen weit über einzelne WebParts etc. hinaus. Diese umfassen eine Vielzahl von Funktionen / Möglichkeiten die sich ideal vernetzen und sich mit den Standardfunktionen von SharePoint kombinieren lassen. Ein solches Framework ist MatchPoint.

In unserer Serie wollen wir uns auf das SharePoint-Framework MatchPoint fokussieren und aufzeigen, welche Stärken und Vorteile es bei der Entwicklung komplexer Lösungen bringt.

Die Serie besteht aus den folgenden Artikeln:

Namics an den X.DAYS im März 2010

Am 17. und 18. März findet in Interlaken der nationale Business & ICT Event X.DAYS statt, an dem sich das “Who is Who” der ICT-Branche einfindet.

Wir freuen uns auf Ihren Besuch an den X.DAYS. Sie finden uns während dieser Zeit an den folgenden Orten:

Ihre Ansprechpartner bei Namics an den X.DAYS sind Mischa Mundwiler und Troy Lüchinger.

Wir freuen uns auf Ihren Besuch an den X.DAYS!

MatchPoint goes SharePoint 2010 – Nachtrag

Im ersten Teil meines Blogeintrags habe ich diverse Infos nicht korrekt wiedergegeben. Hier also der Nachtrag um die korrekten Infos nachzuliefern:

Was SharePoint kann:

  • Zentrale Verwaltung und Vererbung: Vererbung gibt es nicht in dem Sinne, sondern es werden nur Defaults auf Grund des Document Sets/Ordners auf die darin enthaltenen Dokumente gesetzt. Im Gegensatz zur Vererbung bleiben diese Defaults auch dann gesetzt, wenn ich z.B. ein solches Dokument in einen anderen Ordner ziehe, wo keine solche Regel gilt. Unter Umständen werden dadurch die Metadaten ungültig resp. sind falsch. Bei der MatchPoint Vererbung wird tatsächlich vererbt, d.h. wenn ich ein Dokument von einem Ordner in einen anderen ziehe, ändern sich auch die Metadaten entsprechend dem Kontext und sind somit stets korrekt.
  • Change Management ‘sollte’ zukünftig auch bei SharePoint 2010 funktionieren. Der Termstore von SP 2010 ist wie bei MatchPoint ID-basiert. Nichts desto trotz hat der Test auf der Beta in Las Vegas trotz ID nicht funktioniert. Das Metadatum wurde erst aktualisiert, als das Dokument noch einmal editiert wurde. Hoffen wir, das SP 2010 diesen Bug bis zum Release kommenden Sommer noch korrigiert.

Wo braucht man MatchPoint:

  • Relations: MatchPoint verwaltet eine Ontologie, d.h. es verwaltet auch die Relationen zwischen den einzelnen Taxonomien und Metadatenkategorien. Das hat den Vorteil, dass man z.B. „Projekt 1″ als Tag setzen kann und MatchPoint über im Modell abgebildete Relationen automatisch auch noch „Kunde A”, „Zürich” (als Standort des Kunden), „Peter Müller” (Als Kundenverantwortlichen), „Renate Meier” (Als Projektleiterin), „Pharma” als Branche des Kunden als weitere Tags setzt, nach denen ich ebenfalls suchen kann. Ausserdem kann ich über Relationen über mehrere Stufen Dinge herausfinden (in der Suche, in Sichten, in Reports), weil MatchPoint nicht nur Metadaten, sondern auch alle damit getaggten Daten (Dokumente, Sites, Listeneinträge, Web Pages etc.) in vielfältige Relation zu einander bringt.
  • Site Tagging: MatchPoint kann auch Sites und Site Collections taggen und Metadaten über die ganze Site Struktur bis hinunter auf Inhalte vererben, das kann SP2010 nicht.

Danke Patrick für das Update!