Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden

Benachrichtigungen für SharePoint-Listen einrichten und ein neues PnP Cmdlet

In neuen SharePoint-Räumen Benachrichtigungen automatisch aktivieren? Hier helfen uns PowerShell, CSOM und ein neues Cmdlet weiter.

Eine häu­fige Anforderung in mei­nen Office 365-Projekten ist die Bereitstellung von Vorlagen. Das kön­nen SharePoint-Sites sein, die als Projekt- oder Teamraum zum Einsatz kom­men. Das kön­nen aber auch Teams sein, die mit vor­kon­fi­gu­rier­ten Channels und Tabs erstellt wer­den. Wir nut­zen hier­bei inten­siv das dafür von Microsoft vor­ge­se­hene PnP Provisioning Framework.

Kürzlich gab es im Projekt die Anforderung, in neu ange­leg­ten SharePoint-Räumen Benachrichtigungen zu akti­vie­ren. Bestimmte Nutzer soll­ten über neu hoch­ge­la­dene Dokumente per E-Mail infor­miert wer­den; eine Standardfunktion von SharePoint. Solche Benachrichtigungen kön­nen wir aber lei­der noch nicht mit­tels PnP akti­vie­ren. Aber hier hel­fen uns PowerShell, CSOM und viel­leicht bald ein neues Cmdlet wei­ter. Die Details gibt es im Beitrag.

Benachrichtigungen für Listen einrichten

Die Benachrichtigungsfunktion ist ein SharePoint-Feature, das schon seit Ewigkeiten zur Verfügung steht. Sie ist in SharePoint Online wei­ter­hin ver­füg­bar und kann genutzt wer­den, um über Änderungen in Listen und Dokumentenbibliotheken auf dem neu­es­ten Stand zu bleiben:

Im Detail las­sen sich die Art der Änderung, das Intervall der Benachrichtigung, der Zeitpunkt etc. konfigurieren:

blank

Als Besitzer der SharePoint-Site ist es außer­dem mög­lich, Benachrichtigungen für andere Nutzer ein­zu­rich­ten. Dabei wird tech­nisch eine Kopie der Benachrichtigung für die ent­spre­chen­den Nutzer ange­legt. Die Nutzer könn­ten anschlie­ßend im Browser die Benachrichtigung bear­bei­ten und auch wie­der entfernen.

Wie las­sen sich nun sol­che Benachrichtungen auto­ma­tisch anlegen?

Benachrichtigungen per PowerShell anlegen

Leider gibt es noch kein PnP PowerShell Cmdlet für die Erzeugung von Benachrichtigungen (engl. Alert). Daher muss aktu­ell das Client Site Object Model (CSOM) zum Einsatz kom­men. Eine zen­trale Klasse dabei ist AlertCreationInformation.

Der benö­tigte Code sieht unge­fähr so aus:

Connect-PnPOnline "https://<tenant>.sharepoint.com/sites/Alert-Test"
$ctx = Get-PnpContext
$newAlert = New-Object Microsoft.SharePoint.Client.AlertCreationInformation;
$newAlert.List = $ctx.Web.DefaultDocumentLibrary();
$currentUser.Alerts.Add($newAlert);
$currentUser.Update();
$ctx.ExecuteQuery();

(Die PnP-Cmdlets Connect-PnPOnline und Get-PnPContext ste­hen nach Installation des ent­spre­chen­den PowerShell-Moduls zur Verfügung.)

Nun wäre es schön, auch für die Erstellung einer Benachrichtigung ein Cmdlet zur Verfügung zu haben. Ich habe dafür ein­fach mal ein Ticket auf Github geöff­net und mir das Cmdlet gewünscht. Und als Feedback kam das freund­li­che Angebot, doch sel­ber was zu implementieren.

Also los.

Ein neues Cmdlet: Add-PnPAlert

Die Erstellung eines neuen PnP Cmdlets ist erstaun­lich ein­fach. Und das PnP PowerShell-Projekt ermög­licht der SharePoint-Community, sich an der Evolution von PnP PowerShell zu betei­li­gen. Die Anleitung dazu fin­det sich auf Github.

Das Vorgehen sieht grob wie folgt aus:

  • 2 Repositories klonen
  • Visual Studio starten
  • Projekte bauen
  • PowerShell ISE starten

Und schon kann das Cmdlet getes­tet wer­den. Auch das Debugging per Visual Studio, inkl. Setzen von Breakpoints und Inspektion von Variablenwerten ist pro­blem­los möglich.

Dank Innovations- und Lernzeit, die wir bei Communardo zur Verfügung haben, konnte ich das Thema sau­ber zum Ende füh­ren und tat­säch­lich ein neues Cmdlet imple­men­tie­ren: Add-PnPAlert. Inklusive Unit Tests, die das etwas unin­tui­tive Verhalten der Alert-Schnittstelle sicht­bar macht und absi­chert. Weiterhin kap­selt das Cmdlet genau diese Interna weg und erlaubt es in Zukunft, hof­fent­lich schmerz­frei, Benachrichtigungen per PnP PowerShell zu erstel­len. Sofern der Pull Request akzep­tiert wird.

So oder so steht uns das Cmdlet Add-PnPAlert im nächs­ten Projekt zur Verfügung und macht uns das Leben ein Stück einfacher.

Related Posts

Pin It on Pinterest