Workflows sind nicht erst mit der neuen SharePoint-Version ein interessantes Thema, sondern waren zuvor bereits in aller Munde und von vielen SharePoint-Anwendern eine der meist vermissten Funktionen in SharePoint v2. Da die Nachfolgeversion einen sehr weitreichende Unterstützung für Workflows integriert, werde ich mich diesem Thema aus technischem Gesichtspunkt in einer mehrteiligen Artikelserie widmen. Hierbei stelle ich mir folgende Schwerpunkte vor:
- Teil 1: Allgemeine Einführung in die Technologie
- Teil 2: Einen Workflow über die Weboberfläche erstellen und bereitstellen
- Teil 3: Einen Workflow mit dem SharePoint Designer 2007 erstellen
- Teil 4: Einen Workflow mit Visual Studio 2005 erstellen
- Teil 5: Ausblick oder Vertiefung (noch offen)
Heute werde ich versuchen, Workflows in Verbindung mit SharePoint erst einmal grundlegend einzuführen. Hierbei möchte ich zunächst einmal erläutern, was überhaupt ein Workflow ist, wonach ich auf die Architektur und Basistechnologie eingehen werde, um danach zu beschreiben, wie Workflows in SharePoint integriert sind.
Was ist überhaupt ein Workflow?
Einfach formuliert ist ein Workflow eine „vordefinierte Abfolge von IT-gestützten Aktivitäten“. Ziel eines Workflows ist es, einen Geschäftsprozess so gut wie möglich durch ein IT-System zu unterstützen. Hierbei ist ein Workflow schon ein einfacher Bestätigungsprozess, kann aber auch komplexere Abläuft, wie zum Beispiel Rechnungs- oder Bestellprozesse beschreiben.
Es gibt zwei unterschiedliche Typen von Workflows. Human-orientierte und System-orientierte Workflows. Human-orientierte Workflows zeichnen sich dadurch aus, dass sie von Menschen verursacht und eher unstrukturiert sind, wobei an System-orientierten Workflows eine strukturierte Abfolge haben. SharePoint kennt beide Typen von Workflows.
Motivation für die Integration von Workflows in SharePoint 2007
SharePoint v2 hat nur eine sehr limitierte Integration von Workflows und beschränkt sich eigentlich nur auf die Möglichkeit, Event Handler für eine Dokumentenbibliothek zu erstellen. Aufgrund dieser fehlenden Funktion entstanden zahlreichen 3rd Party Lösungen, wie zum Beispiel K2. Workflows werden aber immer wichtiger für das heutige Automated Business Processing und Dokumentenmanagement. So werden bereits einfache Aktivitäten, wie zum Beispiel Dokument-Approval oder Feedback durch einen Workflow erheblich erleichtert oder überhaupt erst möglich. Aus diesem Grund hat Microsoft eine robuste und anpassbare Workflow-Komponente in SharePoint 2007 integriert.
Workflow-Architektur
Jetzt möchte ich auch endlich zur technischen Seite kommen. SharePoint Workflows basieren auf der Windows Workflow Foundation (WF). WF ist einer von drei elementaren Bestandteilen des .NET Frameworks 3.0 (Zuvor WinFX). Windows Workflow Foundation ist eine Plattform, die sowohl eine Programmierschnittstelle als auch Werkzeuge für die Entwicklung und Ausführung von Workflows bereitstellt. WF soll eine einheitliche Plattform liefert, die von zukünftigen Microsoft-Produkten, die Workflows verwenden, genutzt werden soll. Office 2007 und SharePoint 2007 ist hierbei das erste Produkt, die eine Workflow-Engine bereitstellen, die auf der Windows Workflow Foundation aufsetzen.
Quelle: SharePoint 2007 SDK
Die WF läuft innerhalb eines Host-Prozesses. Dieser Prozess ist irgend eine Anwendung oder ein Server. In SharePoint 2007 stellen die Windows SharePoint Services den Host für die Windows Workflow Foundation dar und erweitern die Default-Implementierungen um alle für SharePoint erforderlichen Dienste. Dazu gehören Erweiterungen für Transaktionen, Rollen, Tracking, Benachrichtigungen oder Persistenz. Letzt genannte ist eine der wichtigsten Funktionen für SharePoint Workflows. Persistenz bedeutet, dass von Menschen erstellte Workflows eine lange Lebensdauer besitzen. Anstatt den Workflow innerhalb der Runtime im Speicher abzulegen, macht SharePoint den Workflow persistent. Wenn der Workflow durch den Benutzer wieder angestoßen wird (wie zum Beispiel durch die Eingabe des geforderten Feedbacks zu einem Dokument) , lädt SharePoint diesen wieder in die Runtime.
Workflows in SharePoint 2007
Workflows können für Listen, Dokumentenbibliotheken oder Content Types erstellt werden. SharePoint Workflows werden über sogg. Templates bereitgestellt. Ein Template bestehen aus einer XML-Datei, die den Workflow beschreibt, einer Assembly (.NET DLL-Datei) und einem oder mehreren Forms. Ein Workflow, der zurzeit läuft, wird Workflow-Instanz genannt. Hierbei können mehrere Instanzen eines Workflows innerhalb einer SharePoint-Umgebung gleichzeitig laufen. Der Bereitstellungsprozess eines Workflows umfasst mehrere Schritte. Dazu gehören unter anderem die Definition eines eindeutigen Namens, die Auswahl der Aufgabenliste, in die vom Workflow erstellten Task hinterlegt werden sollen oder die Festlegung der History-Liste, in der ausgeführte Workflows gespeichert werden. Auf die unterschiedlichen Methoden, einen Workflows bereitzustellen, werde ich in den jeweiligen nachfolgenden Artikeln noch näher eingehen. Die Entwicklung von SharePoint Workflows kann mittels zwei unterschiedlicher Werkzeuge durchgeführt werden: Dem SharePoint Designer oder Visual Studio 2005. Beim SharePoint Designer wird ein Workflow über einen Assistenten erstellt und Live auf eine SharePoint Umgebung deployed. Anders ist es mit dem Visual Studio. Hier müssen Formulare manuell erstellt werden und die Bereitstellung erfolgt über spezielle Packages. Wie die Erstellung und Bereitstellung im Einzelnen aussieht, werden ich exemplarisch in den nächsten Artikeln beschreiben.
Bereitgestellt
4 Aug 2006 10:07
von
Fabian Moritz