© Kellie L. Folkerts/Shutterstock.com
Ereignisempfänger (1)

Kolumne: SharePoint ganz praktisch


Die letzten Ausgaben der Kolumne behandelten ausführlich SharePoint-Workflows. Workflows sind immer dann zu wählen, wenn langwierige oder zeitversetzte Aktionen ausgeführt werden müssen. Muss direkt auf eine Benutzeraktion Einfluss genommen werden, kommen meist Ereignisempfänger zum Einsatz.

SharePoint Server ermöglicht es, auf vielfältige Art und Weise auf Ereignisse zu reagieren. Dabei kann es sich um ganz unterschiedliche Ereignistypen handeln. So werden z. B. Ereignisse ausgelöst, wenn ein Benutzer einen Listeneintrag ändert oder löscht. Auch werden Ereignisse ausgelöst, wenn eine Seite publiziert oder ein Feature aktiviert oder deaktiviert wird. Auf all diese und noch weitere Ereignisse kann in eigenen Lösungen reagiert werden. Somit ist es auf einfache Art möglich, die internen SharePoint-Abläufe an bestimmten Stellen um eine eigene (Geschäfts-)Logik zu erweitern. SharePoint selbst nutzt Ereignisse, um beispielsweise Workflows zu starten, sobald ein neues Dokument einer Bibliothek hinzugefügt wurde. Neben den eher benutzernahen Ereignissen gibt es auch systemnahe Ereignisse. Ein solches Ereignis ist z. B. das so genannte OnFeatureActivated-Ereignis. Es wird – wie der Name schon vermuten lässt – immer dann ausgelöst, wenn ein Feature aktiviert wird, und eignet sich daher sehr gut, um noch eventuelle Einstellungen durchzuführen, die das Feature benötigt. Das Gegenstück zu diesem Ereignis ist das OnFeatureDeactivate-Ereignis, das immer bei der Deaktivierung eines Features ausgelöst wird. Innerhalb dieses Ereignisses können dann Aufräumarbeiten durchgeführt werden.

Event Receivers – eine Übersicht

Ereignisempfänger – oft auch mit dem englischen Begriff Event Receiver bezeichnet – dienen dazu, die von der SharePoint-Laufzeitumgebung ausgelösten Ereignisse zu empfangen und weiterzugeben. Event Receivers sind daher in der Lage, sich an bestimmte SharePoint-Ereignisse anzumelden. Wie viele Event Receivers sich an ein bestimmtes SharePoint-Ereignis anmelden, ist nicht begrenzt. Auch muss nicht jeder Event Receiver alle von SharePoint bereitgestellten Ereignisse verarbeiten. Im einfachsten Fall reagiert ein Event Receiver auf nur ein Ereignis. Innerhalb einer SharePoint-Anwendung bilden Event Receivers in der Regel eine zentrale Verknüpfungsstelle zwischen den einzelnen Bausteinen einer SharePoint-Lösung. Typischerweise ist eine SharePoint-Anwendung aus mehreren SharePoint-Artefakten zusammengesetzt. Elemente wie Custom Content Types, Custom Field Definitions und Custom Libraries bilden dabei die statischen Elemente. Mithilfe eines Event Receivers wird der Lösung die eigentliche Dynamik verliehen. So könnte z. B. eine eigene Formularbibliothek aus den eben genannten drei statischen Elementen aufgebaut worden sein, wie es Abbildung 1 veranschaulicht.

image

Abb. 1: Zusammenspiel verschiedener SharePoint-Artefakte

Ereignistypen

Ereignisse in SharePoint können zunächst in synchrone und asynchrone Ereignisse unterteilt werden. Asynchrone Ereignisse werden immer parallel zu einem bestimmten SharePoint-Ereignis ausgeführt, wenn die eigentliche Aktion – die das Ereignis ausgelöst hat – so gut wie abgeschlossen ist. Dies bedeutet, dass innerhalb eines asynchronen Ereignisses kein wesentlicher Einfluss mehr auf den Vorgang genommen werden kann. SharePoint selbst verwendet beispielsweise das asynchrone Ereignis ItemAdded, um einen Workflow zu starten, sobald einer Bibliothek ein Dokument hinzugefügt wurde. Asynchrone Ereignisse können daher immer dazu eingesetzt werden, um parallel zusätzliche Aktionen auszuführen.

Oft besteht aber die Anforderung, direkt auf den Ablauf einwirken zu müssen. Als Beispiel kann hier eine umfangreiche Prüfung von Listenwerten genannt werden, die bestimmte Kriterien erfüllen müssen. Schlägt in diesem Fall die Validierung fehl, sollen keine Daten in die Liste geschrieben werden. Für diese Anforderung existieren die synchronen Ereignisse. Im Gegensatz zu den asynchronen Ereignissen, die parallel zum eigentlichen Ereignisvorgang ausgeführt werden, si...

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