© best_vector/Shutterstock.com
Kolumne: SharePoint ganz praktisch

Ereignisempfänger für SharePoint Online (Teil 3)


In der letzten Ausgabe der Kolumne wurde ausführlich erläutert, wie Ereignisempfänger für SharePoint realisiert werden. In der aktuellen Ausgabe wird nun demonstriert, wie Ereignisempfänger für SharePoint Online umsetzbar und verwendbar sind.

Viele Unternehmen nutzen mittlerweile SharePoint Online, um sich unter anderem die Kosten für den Betrieb einer eigenen hausinternen SharePoint-Farm zu sparen. Der Einsatz von SharePoint Online stellt Administratoren und Entwickler jedoch auch vor neue Herausforderungen. So müssen sich zum Beispiel Administratoren bei hybriden Farmlösungen um die korrekte Anbindung der einzelnen Systeme kümmern, und SharePoint-Entwickler können keine Farmlösungen mehr umsetzen. SharePoint-Entwicklern steht bei SharePoint Online nur das SharePoint-Add-in-Modell (vormals Apps für SharePoint) für die Realisierung eigener Erweiterungen zur Verfügung. Die Bereitstellung von SharePoint-Farm-Lösungen ist nicht möglich, da kein eigener Code in Form von DLL-Bibliotheken auf dem SharePoint-(Online-)Server installiert werden kann. Jede eigene (Code-)Erweiterung muss daher über ein SharePoint-Add-in bereitgestellt werden. Dies gilt auch für Ereignisempfänger, die auf bestimmte Aktionen wie z. B. auf das Löschen eines Listeneintrags reagieren sollen. Die generelle Arbeitsweise von Ereignisempfängern wurde bereits in den vorherigen Ausgaben dargelegt. Nun liegt der Schwerpunkt auf der Umsetzung eines „entfernten Ereignisempfängers“ (engl.: „Remote Event Receiver“, kurz: RER).

Remote Event Receiver (RER)

Bevor ein konkreter entfernter Ereignisempfänger realisiert wird, soll zunächst die generelle Funktionsweise dargestellt werden. Im Gegensatz zu Ereignisempfängern, die per Farmlösung bereitgestellt werden, kann ein entfernter Ereignisempfänger nicht direkt an ein serverseitiges Ereignis gebunden werden. Bei farmbasierten Ereignisempfängern wird der eigene Code in Form einer Bibliothek (DLL) bereitgestellt und zu einem bestimmten Zeitpunkt von SharePoint direkt aufgerufen. Bei entfernten Ereignisempfängern sieht dies etwas anders aus: SharePoint ruft in diesem Fall ein vom entfernten Ereignisempfänger bereitgestellten WCF-basierten Endpoint (Windows Communication Foundation) auf. Das bedeutet, dass der eigene entfernte Ereignisempfänger einen Webdienst bereitstellen muss. Dies ist nur möglich, wenn ein eigenes Web für den Betrieb (Hosting) des Diensts zur Verfügung steht. Aus diesem Grund können entfernte Ereignisempfänger nur über eine vom Provider gehostete App bereitgestellt werden, von SharePoint gehostete Apps sind nicht geeignet. Die gesamte Kommunikation verläuft über einen Webdienst. Tritt ein registriertes Ereignis in SharePoint auf – zum Beispiel, wenn ein Listeneintrag neu erstellt wird – ruft SharePoint über den Webdienst den entfernten Ereignisempfänger auf. Konkret werden die folgenden drei wesentlichen Schritte durchlaufen (Abb. 1):

  • Der Benutzer führt eine Aktion aus, für die ein entfernter Ereignisempfänger registriert wurde; z. B. Listeneintrag wird geändert oder ein Eintrag wird gelöscht usw.

  • SharePoint prüft, ob ein entfernter Ereignisempfänger registriert wurde.

Wenn 2. zutrifft, wird der Ereignisempfänger über die Webschnittstelle aufgerufen und die eventuellen Ergebnisse werden verarbeitet. Damit aber eine Verarbeitung überhaupt möglich ist, wird der Access Control Service einbezogen und über ein signiertes Token für den Zugriff abgerufen.

zhou_1.tif_fmt1.jpgAbb. 1: Ausführungsschritte eines entfernten Ereignisempfängers

Vorbereitung der Projektmappe in Visual Studio

Nach der einführenden theoretischen Betrachtung wird im Folgenden ein entfernter Ereignisempfänger realisiert. Für das Beispiel wird als Zielplattform SharePoint Online eingesetzt und als Entwicklungsumgebung Vi­sual Studio Enterprise 2017. Wie jedes neue SharePoint-Projekt wird mit einer leeren SharePoint-Projektmappe gestartet. Dazu in Visual Studio über Datei | Neu | Projekt ... mit der Anlage eines neuen Projekts beginnen. Als Projektvorlage dient hier die SharePoint Add-In-Vorlage, die sich in der Kategorie Office/SharePoint | Add-Ins befindet. Nachdem die weiteren Informationen wie Name und Speicherort festgelegt worden sind, kann das Projekt über die Schaltfläche Ok angelegt werden. Daraufhin startet der Assistent für die initiale Konfiguration des soeben angelegten Projekts. In einem ersten Schritt müssen der URL zu einer gültigen SharePoint-Website sowie der Hostingtyp angegeben werden, wie es auch in Abbildung 2 zu sehen ist.

zhou_2.tif_fmt1.jpgAbb. 2: Angabe SharePoint-We...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang