© best_vector/Shutterstock.com
Workflows mit eigenem Code (6)

Kolumne: SharePoint ganz praktisch


Mit der Einführung der neuen Workflow Foundation 4 in SharePoint 2013 hat sich die Erstellung von Workflows erheblich verändert: Sowohl im SharePoint Designer also auch in Visual Studio stehen nur noch deklarative Bausteine für die Prozessdefinition zur Verfügung. Eine CodeBehind-Ansicht oder eine Custom-Code-Aktivität sucht man vergebens.

Microsoft hat mit Workflow Foundation 4 eine vollständig neue Bibliothek für die Umsetzung von Workflows bereitgestellt. Auch wenn aus der Versionsnummer geschlossen werden könnte, dass es sich um eine Aktualisierung der Vorgängerversion – der Workflow Foundation 3.5 – handelt, ist diese Vermutung falsch. Das bedeutet auch, dass vorhandene Workflows nicht einfach auf die neue Workflow Foundation Version 4 aktualisiert werden können. Der einzig mögliche Ansatz besteht hier in der Neuumsetzung der vorhandenen Workflows. Da einige Unternehmen jedoch sehr viele spezielle und auch umfangreiche Workflows in vorherigen SharePoint-Versionen umgesetzt haben, unterstützt SharePoint weiterhin die Ausführung von Workflows, die auf der Workflow Foundation 3.5 beruhen. Um das zu verdeutlichen, zeigt Abbildung 1 die möglichen Ausführungsumgebungen für SharePoint-Workflows. Im Schaubild ist auf der rechten Seite die neue Workflow-Ausführungsumgebung zu sehen. Der Workflow-Manager und der Windows-Azure-Service-Bus sind durch den Azure-Access-Control-Block (OAuth) gesichert.

zhou_sp-kolumne_1.tif_fmt1.jpgAbb. 1: Ausführungsumgebungen für SharePoint-Workflows [1]

Auch wenn hier alle Komponenten Azure im Namen tragen, werden sie nicht unbedingt innerhalb der Azure-Cloud ausgeführt. Diese Komponenten können alle lokal auf dem eigenen geschützten Unternehmensserver installiert und betrieben werden. Der Workflow-Manager übernimmt die Ausführung der neuen Workflows. Die Kommunikation mit SharePoint erfolgt ausschließlich über eine REST-basierte Schnittstelle. Der Windows-Azure-Service-Bus ist für die Kommunikationsrichtung von SharePoint zur Workflow-Ausführungsumgebung zuständig. Über diesen Weg wird zum Beispiel ein Workflow dahingehend informiert, dass eine Aufgabe (Task) als erledigt (completed) markiert wurde.

Um die Ausführung älterer Workflows, die noch auf der Workflow Foundation 3.5 beruhen, kümmert sich der SharePoint-2010-Workflow-Host. Wie anhand des Schaubilds deutlich wird, liegt der alte Workflow-Host direkt in SharePoint. Das kann dazu führen, dass sich Fehler innerhalb eines (benutzerdefinierten) Workflows auf die gesamte SharePoint-Farm negativ auswirken. Daher hat sich Microsoft, analog zum App-Modell, zu einer Prozessauslagerung entschieden. Fehler, die nun innerhalb des neuen Workflow-Hosts auftreten, wirken sich nicht mehr direkt auf die SharePoint-Farm aus, da hier die Prozesse isoliert ausgeführt werden. Aus diesem Grund sollte der Workflow-Manager auch auf einer separaten Servermaschine betrieben werden, um einen optimalen Schutz zu erzielen.

Prozessisolierung erfordert Mehraufwand

Die Entkopplung der Prozesse und die damit erhöhte Stabilität sind natürlich nicht umsonst, sondern erfordern mehr Implementierungsaufwand. Eine direkte Kommunikation mit SharePoint ist nicht möglich, und eigener Code kann nicht mehr einfach innerhalb einer CodeBehind-Datei hinterlegt werden. Solange sich Logik und Anforderungen eines Workflows im überschaubaren Rahmen halten, kommt man mit den deklarativen Workflows aus. Erhöht sich jedoch die Komplexität, wird es mit den reinen deklarativen Möglichkeiten schwierig.

Um umfangreiche geschäftsbasierte Prozesse abbilden zu können, ist in der Regel eigener Code unverzichtbar. Oft steht dieser auch schon in speziellen unternehmenseigenen Programmbibliotheken (Assemblies) zur Verfügung und muss nur aufgerufen werden. Eigener Code kann in SharePoint-2013-basierten Workflows auf zwei Arten integriert werden: Die einfachste und schnellste Variante besteht darin, eigenen Code über einen Webdienst (Web Service) aufrufbar zu machen. Das hört sich zunächst einfach an, jedoch sind hier natürlich auch Sicherheitskriterien zu beachten – also: Wer darf welche Methoden aufrufen? Die zweite Möglichkeit besteht in der Umsetzung eigener Workflow-Aktivitäten.

Workflow Actions und Activities

SharePoint-Workflows bestehen im Grund aus einer Zusammenstellung von Workflow Actions und Workflow Activities. Workflow-Aktivitäten enthalten Code...

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