Planen der Erstellung von Workflows (SharePoint Server 2010)

 

Gilt für: SharePoint Foundation 2010, SharePoint Server 2010

Letztes Änderungsdatum des Themas: 2016-11-30

Was ist ein Workflow? Grundsätzlich besteht dieser aus zwei Teilen: den Formularen, über die die Interaktion mit den Benutzern erfolgt, und der Logik, die das Verhalten des Workflows definiert. Das Verständnis der Erstellung von Workflows erfordert Kenntnisse zu beiden Aspekten.

Da die Kommunikation eines Workflows mit Benutzern über einen Webbrowser erfolgt, ist der Workflow zum Anzeigen der zugehörigen Formulare von ASP.NET abhängig. Dementsprechend werden diese Formulare als ASPX-Seiten definiert. Die Formulare eines Workflows können potenziell an vier Punkten seines Lebenszyklus angezeigt werden:

  • Zuordnung: Wenn ein Administrator eine Workflowvorlage einer bestimmten Dokumentbibliothek oder Liste zuordnet, kann er u. U. Optionen festlegen, die für jede aus der Zuordnung erstellte Workflowinstanz gelten. Wenn ein Workflowautor dies zulassen möchte, muss er ein Formular bereitstellen, in dem der Administrator diese Informationen angeben kann.

  • Initiierung: Der Initiator eines Workflows kann möglicherweise Optionen angeben, wenn er die Ausführung einer Instanz startet. Im gerade beschriebenen Genehmigungsszenario umfassen die Optionen beispielsweise das Angeben der Liste der Workflowteilnehmer und das Definieren der Dauer, die jeweils für den Abschluss der Aufgabe verfügbar ist. Wenn ein Workflow dies zulässt, muss dessen Autor ein Formular bereitstellen, das dem Initiator das Festlegen dieser Optionen erlaubt.

  • Aufgabenabschluss: Die ausgeführte Workflowinstanz muss den Teilnehmern des Workflows ein Formular anzeigen, damit diese die Aufgaben abschließen können. Dieses Formular erlaubt den genehmigenden Personen im früheren Szenario, Kommentare zum Dokument und die Genehmigung oder Ablehnung anzugeben.

  • Änderung: Der Ersteller eines Workflows kann zulassen, dass dieser während der Ausführung geändert wird. Ein Workflow kann beispielsweise das Hinzufügen neuer Teilnehmer nach Beginn der Ausführung oder die Verlängerung des Fälligkeitsdatums für den Aufgabenabschluss zulassen. Wenn diese Option verwendet wird, muss der Workflow an diesem Punkt ein Formular anzeigen, damit der Teilnehmer angeben kann, welche Änderungen vorgenommen werden sollen.

In mit Microsoft SharePoint Server 2010 erstellten Workflows können mit InfoPath erstellte Formulare verwendet werden. Die Logik eines Workflows wird wie jeder Workflow auf der Grundlage der Windows Workflow Foundation (WF) als Gruppe von Aktivitäten definiert. Microsoft bietet für verschiedene Zielgruppen zwei verschiedene Tools zum Festlegen von Logik und Formularen für einen Workflow. Softwareentwickler können das Feature Workflow-Designer von Windows Workflow Foundation verwenden. Dieses Tool wird innerhalb von Visual Studio 2010 Professional Edition ausgeführt und stellt eine grafische Umgebung für das Anordnen von Aktivitäten in Workflows bereit. Information Worker, eine technisch weniger versierte Gruppe von Benutzern, können in Microsoft SharePoint Designer 2010 Workflows erstellen, ohne Code schreiben zu müssen. In den nächsten beiden Abschnitten wird untersucht, wie Workflows mit diesen beiden Tools erstellt werden können.

Erstellen von Workflows mit Visual Studio 2010 und dem Workflow-Designer von WF

In Workflows für SharePoint Server können Microsoft InfoPath 2010-Workflowformulare anstelle von ASPX-Formularen verwendet werden. Zum Erstellen der Formulare verwendet ein Workflowautor Microsoft InfoPath. Dieses Tool verfügt über einen grafischen Editor zum Definieren des Inhalts von Formularen. Entwickler, die die Visual Studio-Umgebung bevorzugen, können die Professional Edition von Visual Studio 2010 verwenden.

Nachdem ein InfoPath-Workflowformular erstellt wurde, kann es wie ein ASP.NET-Formular mithilfe einer workflow.xml-Datei an einen Workflow angefügt werden. Im Gegensatz zu ASP.NET-Formularen müssen Entwickler jedoch keinen benutzerdefinierten Code schreiben, um Informationen zwischen InfoPath-Workflowformularen und Workflows zu übertragen. Diese Verknüpfung wird von SharePoint Server und InfoPath bereitgestellt, um das Erstellen von Workflows zu vereinfachen.

Ein Workflow ähnelt in vielerlei Hinsicht einem Flussdiagramm. Daher ist es sinnvoll, ein grafisches Tool bereitzustellen, mit dem Entwickler die Aktionen eines Workflows angeben können. Die SharePoint-Workflowtools in Visual Studio 2010 Professional stellen einen Projekttyp dar, der den Workflow-Designer von Windows Workflow Foundation (WF) verwendet und um Unterstützung für Bereitstellung und Formulare für Workflows erweitert. Entwickler können mit dem Workflow-Designer von WF die Aktivitäten eines Workflows und die Reihenfolge ihrer Ausführung grafisch definieren. Der Bildschirm unten zeigt ein einfaches Beispiel für diesen Vorgang in Microsoft Visual Studio.

Workflow zum Sammeln von Feedback

Windows SharePoint Services-Workflowbeispiel

Die verfügbaren Aktivitäten werden in der Toolbox auf der linken Seite des Bildschirms angezeigt. Entwickler können diese Aktivitäten auf die Entwurfsoberfläche ziehen, um die Schritte in einem Workflow zu definieren. Die Eigenschaften der einzelnen Aktivitäten können anschließend im Eigenschaftenfenster festgelegt werden, das in der rechten unteren Ecke angezeigt wird.

Die Basisaktivitätenbibliothek von Windows Workflow Foundation stellt eine Gruppe grundlegender Aktivitäten bereit, wie bereits beschrieben. SharePoint Server enthält zudem einen Satz von Aktivitäten, die ausdrücklich zum Erstellen von Workflows entworfen wurden. Die wichtigsten dieser Aktivitäten sind die folgenden:

  • OnWorkflowActivated: Stellt einen Standardausgangspunkt für einen Workflow bereit. Diese Aktivität kann unter anderem Informationen entgegennehmen, die von einem SharePoint-Administrator mithilfe des Zuordnungsformulars übergeben wurden, als der Workflow einer Dokumentbibliothek, einer Liste, einem Inhaltstyp oder einer Website zugeordnet wurde. Zudem können beim Start des Workflows Informationen aus dem Initiierungsformular übernommen werden. Jeder Workflow muss mit dieser Aktivität beginnen.

  • CreateTask: Erstellt eine Aufgabe, die einem bestimmten Benutzer in einer Aufgabenliste zugewiesen ist. Beispielsweise verwendet der Genehmigungsworkflow im früher beschriebenen Szenario diese Aktivität, um der von allen Teilnehmern verwendeten Aufgabenliste eine Aufgabe hinzuzufügen. Diese Aktivität verfügt auch über eine SendEmailNotification-Eigenschaft. Wenn die Eigenschaft auf True festgelegt ist, wird automatisch eine E-Mail-Nachricht an die Person gesendet, für die diese Aufgabe erstellt wurde.

  • OnTaskChanged: Akzeptiert Informationen aus dem Aufgabenabschlussformular. Der Genehmigungsworkflow im früheren Szenario verwendet diese Aktivität, um nach Genehmigung des Dokuments die Eingabe der einzelnen Teilnehmer zu akzeptieren.

  • CompleteTask: Markiert eine Aufgabe als abgeschlossen.

  • DeleteTask: Entfernt eine Aufgabe aus einer Aufgabenliste.

  • OnWorkflowModified: Akzeptiert Informationen aus dem Änderungsformular, die dann verwendet werden können, um das Verhalten dieser Workflowinstanz zu ändern. Wenn der Ersteller des Workflows sich dafür entscheidet, keine Instanzen dieser Aktivität in den Workflow einzuschließen, kann der Workflow während der Ausführung nicht geändert werden.

  • SendEmail: Sendet einer angegebenen Person oder Gruppe von Personen eine E-Mail.

  • LogToHistoryList: Schreibt Informationen über die Ausführung des Workflows in eine Verlaufsliste. Die Informationen in dieser Liste werden verwendet, um Benutzern anzuzeigen, an welchem Punkt der Ausführung sich ein Workflow befindet, um den Verlauf des Workflows nach dessen Abschluss anzuzeigen und mehr. Für diese Art der Überwachung muss der Autor des Workflows zu geeigneten Zeitpunkten der Workflowausführung Informationen in eine Verlaufsliste schreiben. Da SharePoint Server einen eigenen Mechanismus zum Nachverfolgen von Workflows bietet, wird der standardmäßige Nachverfolgungsdienst von WF nicht unterstützt.

Ein typisches Muster für einen einfachen Workflow beginnt mit einer OnWorkflowActivated-Aktivität. Dann wird eine CreateTask-Aktivität verwendet, um einem Teilnehmer des Workflows eine Aufgabe zuzuweisen. Die standardmäßige While-Aktivität der Basisaktivitätenbibliothek kann anschließend verwendet werden, um zu warten, bis der Benutzer die Aufgabe abschließt. Eine OnTaskChanged-Aktivität wird innerhalb der While-Aktivität ausgeführt, die alle Informationen extrahiert, die der Benutzer auf diesem Formular eingegeben hat. So lässt sich feststellen, wann der Benutzer die Aufgabe abgeschlossen hat (möglicherweise nimmt der Benutzer mehrere Änderungen an der Aufgabe vor und markiert dann ein Feld auf dem Aufgabenabschlussformular, wenn er fertig ist). Wenn der Benutzer die Aufgabe beendet hat, wird möglicherweise eine CompleteTask-Aktivität ausgeführt, gefolgt von einer DeleteTask-Aufgabe. Der Workflow kann dann zum nächsten Teilnehmer übergehen, diesem mit einer CreateTask-Aktivität eine Aufgabe zuweisen usw. Es können auch andere Aktivitäten ausgeführt werden, beispielsweise Senden von E-Mail, Protokollieren von Informationen in der Verlaufsliste oder durch Einbeziehung der Code-Aktivität der Basisaktivitätenbibliothek das Ausführen von willkürlichem Code.

All diese von SharePoint Server bereitgestellten Aktivitäten befassen sich mit der Ausführung von Workflows innerhalb der SharePoint-Umgebung. Die Geschäftslogik, die ein Workflow implementiert, bleibt dem Ersteller des Workflows überlassen. Ein Entwickler, der einen Workflow erstellt, kann eigene benutzerdefinierte Aktivitäten frei erstellen und verwenden. Es ist nicht vorgeschrieben, dass nur die von SharePoint Server und WF bereitgestellten Aktivitäten verwendet werden können.

Wie zuvor beschrieben, unterstützt Windows Workflow Foundation sequenzielle, parallele und Zustandsautomatenworkflows. Ein mit dem Workflow-Designer von WF erstellter Workflow kann ebenfalls jede dieser Optionen verwenden. Zu diesem Zweck wird Visual Studio durch SharePoint Server um Projekttypen für jede dieser Workflowformatvorlagen erweitert.

Unabhängig von der gewählten Formatvorlage muss der Entwickler mehr als nur die Logik des Workflows definieren. Er muss auch die ASPX- oder InfoPath-Formulare angeben, die verwendet werden sollen. Dafür verwendet der Entwickler eine Datei namens element.xml. Diese Datei enthält eine Vorlage, die der Entwickler ausfüllt und dabei angibt, welches Formular (sofern dies der Fall sein soll) an jedem der vier Punkte angezeigt wird, an denen dies für einen Workflow zulässig ist.

Entwickler müssen einige Arbeit leisten, um Informationen zwischen einem Workflow und den verwendeten ASPX-Formularen zu übergeben. Der Namespace Microsoft.Windows.SharePoint.Workflow stellt ein Objektmodell für Entwickler bereit. Mit den Typen in diesem Namespace kann der Ersteller eines Workflows Informationen aus einem ASPX-Formular an den Workflow und umgekehrt übergeben.

Nachdem ein Workflow und die zugehörigen Formulare erstellt wurden, muss der Entwickler diese in ein so genanntes Feature packen. Ein SharePoint-Administrator muss dieses Feature dann installieren. Hierzu müssen die Workflowassemblys im globalen Assemblycache des Zielsystems installiert werden. Der neue Workflow ist für den Administrator jetzt als Workflowvorlage sichtbar, die einer Dokumentbibliothek, einer Liste, einem Inhaltstyp oder einer Website zugeordnet werden kann.

Für Softwareentwickler ist das Erstellen eines Workflows mit Visual Studio und dem Workflow-Designer von WF nicht besonders schwierig. Der Entwickler muss die Besonderheiten der Arbeit in dieser Umgebung kennen, aber viele Aufgaben sind vertraut. Softwareentwickler sind jedoch nicht die einzigen Personen, die Workflows erstellen möchten. Wie im Folgenden beschrieben, können Personen, die keine professionellen Entwickler sind, Workflows auch mit Microsoft SharePoint Designer 2010 erstellen.

Erstellen von Workflows mit Microsoft SharePoint Designer 2010

Microsoft SharePoint Designer 2010 ist eine separate Anwendung, die als kostenloser Download zur Verfügung steht. Microsoft SharePoint Designer ermöglicht Information Workern und anderen Personen das Hinzufügen von Anwendungslogik (als Workflow implementiert) zu SharePoint-Websites. Dies ist nützlich, aber Microsoft SharePoint Designer löst noch ein weiteres wichtiges Problem. Wenn ein Entwickler mithilfe von Visual Studio einen Workflow erstellt, muss dieser Workflow wie jedes andere Feature auf einem Server mit SharePoint Server bereitgestellt werden. Viele SharePoint-Administratoren erlauben jedoch die Bereitstellung von willkürlichem Code auf ihren Servern nicht, da sie das Risiko der Systemdestabilisierung als zu groß erachten. Die Möglichkeit zum Erstellen einfacher, an Dokumente und Listenelemente gebundener Geschäftslogik ist jedoch sehr nützlich, und viele SharePoint-Benutzer benötigen diese Möglichkeit. Neben der Möglichkeit der Workflowerstellung durch Personen mit geringeren technischen Kenntnissen behebt Microsoft SharePoint Designer auch dieses Problem, indem eine sicherere Möglichkeit zum Definieren und Bereitstellen von Geschäftslogik auf Servern mit SharePoint Server zur Verfügung gestellt wird.

Die Workflowszenarien, die von Microsoft SharePoint Designer behandelt werden, unterscheiden sich in einigen Aspekten von den durch Visual Studio und den Workflow-Designer von WF behandelten Szenarien. Während es möglich ist, komplexe Anwendungen zu erstellen, besteht der Sinn von Microsoft SharePoint Designer darin, dass Benutzer Geschäftslogik zu SharePoint-Websites hinzufügen können. Nehmen Sie beispielsweise an, dass eine Website eine Liste enthält, mit der Benutzer Änderungsanforderungen senden können. Microsoft SharePoint Designer kann zum Erstellen eines Workflows verwendet werden, der den Antragssteller automatisch informiert, wenn die Änderungsanforderung akzeptiert oder abgelehnt wurde. Ebenso kann ein benutzerdefinierter Workflow eine bestimmte Gruppe von Benutzern informieren, sobald ein neues Dokument zu einer bestimmten Dokumentbibliothek hinzugefügt wird. Die Ausführung dieser Art von benutzerdefinierter Benachrichtigung ist nicht kompliziert. Das Erstellen der Workflows ist einfach, aber bei früheren Versionen von SharePoint Server handelte es sich um eine anspruchsvolle Aufgabe, da Administratoren zögern, von Benutzern geschriebenen Code zu installieren.

Hier stellt sich eine offensichtliche Frage: Warum sollte mit Microsoft SharePoint Designer erstellte Logik anders behandelt werden? Warum sind SharePoint-Administratoren bereit, mit diesem Tool erstellte Workflows auf den Systemen bereitzustellen, für die sie verantwortlich sind? Die Antwort besteht darin, dass mit Microsoft SharePoint Designer erstellte Workflows nur Aktivitäten aus einer administratorgesteuerten Liste verwenden können. Der Administrator einer Website kann entscheiden, ob er neben den von SharePoint Server bereitgestellten Aktivitäten von einem Entwickler erstellte benutzerdefinierte Aktivitäten in diese Liste aufnehmen möchte. Da ein SharePoint-Administrator genau definieren kann, welche Aufgaben Workflows ausführen dürfen, kann er sicherer sein, dass die Bereitstellung von Logik, die mit Microsoft SharePoint Designer erstellt wurde, das System nicht destabilisiert.

Da Microsoft SharePoint Designer für Information Worker statt für Entwickler vorgesehen ist und einfachere Szenarien bevorzugt, wird ein anderes Modell zum Erstellen von Workflows als bei dem von Visual Studio gehosteten Workflow-Designer von WF verwendet. Statt eines grafischen Ansatzes verwendet Microsoft SharePoint Designer einen regelbasierten Ansatz. Es handelt sich um etwas Ähnliches wie den Regel-Assistenten in Microsoft Outlook, ein Tool, das vielen Benutzern vertraut ist. Der Bildschirm unten veranschaulicht, wie ein Benutzer von Microsoft SharePoint Designer einen Schritt in einem Workflow definiert. Beachten Sie, dass in dem Workflow einige Aktionen parallel und einige seriell ausgeführt werden. In früheren Versionen von SharePoint Server wurde nur die serielle Ausführung von Aktionen unterstützt, d. h., die Aktionen wurden nacheinander ausgeführt.

Workflow zur Verarbeitung von Bestellungen

Bestellungsvorgangsworkflow

Jeder Schritt kann eine Bedingung und eine Aktion aufweisen. Die Bedingung bestimmt, ob die Aktion des Schritts ausgeführt werden muss, wie in der If-Anweisung oben gezeigt. Die Auswahlmöglichkeiten für Aktionen umfassen Faktoren wie das Zuweisen eines Entertainers an eine Veranstaltung, das Einholen einer Genehmigung und vieles mehr. Jede dieser Aktionen wird durch eine SharePoint Server-Aktivität ausgeführt. Die verwendeten Aktivitäten sind identisch mit denen von Visual Studio und dem Workflow-Designer von WF. Die Liste der Aktionen kann auch beliebige andere Aktivitäten enthalten, die vom SharePoint-Administrator für die Website zugelassen werden, z. B. von Entwicklern erstellte benutzerdefinierte Aktivitäten. In SharePoint Server ist ein besonderer Satz von Aktivitäten verfügbar, mit denen Benutzer das allgemeine Paradigma zum Einholen von Genehmigungen oder von Feedback, "Erstelle einen Satz von Aufgaben und warte auf deren Abschluss", in einem speziellen Designer in Microsoft SharePoint Designer anpassen können.

Obwohl sich die Benutzeroberfläche vom grafischen Ansatz von Visual Studio und dem Workflow-Designer von WF unterscheidet, wird mit Microsoft SharePoint Designer ein standardmäßiger WF-Workflow erstellt. Dabei wird ein Workflow erstellt, der sequenziell, parallel oder beides ist und Bedingungen enthält, die mit dem WF-Regelmodul ausgedrückt werden. Mit diesem Tool erstellte Workflows haben jedoch einige Einschränkungen. Sie können beispielsweise während der Ausführung nicht geändert werden, anders als die mit Visual Studio und dem Workflow-Designer von WF erstellten Workflows. Außerdem können nur sequenzielle und parallele Workflows erstellt werden, Zustandsautomaten werden nicht unterstützt. Mit diesem Tool erstellte Workflows können außerdem für eine bestimmte Dokumentbibliothek, Liste oder Website erstellt werden. Workflowautoren können auch eine allgemeine Workflowvorlage erstellen, die später einer beliebigen Bibliothek oder Liste oder einem Inhaltstyp zugeordnet werden kann. Während dies Beschränkungen hinsichtlich der Verwendung eines Workflows nach sich zieht, wird die Bereitstellung des Workflows wesentlich vereinfacht. Wenn ein Benutzer die Erstellung eines Workflows mit Microsoft SharePoint Designer abschließt, ermöglicht das Tool die Bereitstellung des Workflows auf der Zielwebsite mit einem Klick. Dabei wird der Workflow gleichzeitig aktiviert. Dies ist wesentlich einfacher als die mehrere Schritte umfassende Bereitstellung von Workflows, die mit Visual Studio und dem Workflow-Designer von WF erstellt wurden.

Mit Microsoft SharePoint Designer erstellte Workflows können auch benutzerdefinierte Formulare anzeigen. Workflowautoren müssen ASPX-Seiten nicht direkt erstellen, das Tool generiert diese Seiten für sie. Der Autor gibt Details zum Aussehen der generierten Seiten an, beispielsweise welche Felder diese enthalten sollen, und alle weiteren Aufgaben werden von Microsoft SharePoint Designer übernommen. Statt der vier Punkte im Lebenszyklus eines Workflows, an denen Formulare eingesetzt werden können, werden jedoch nur zwei für Workflows verwendet, die mit Microsoft SharePoint Designer erstellt werden: Initiierung und Aufgabenabschluss. Da jeder mit diesem Tool erstellte Workflow einer bestimmten Dokumentbibliothek, einer Liste, einem Inhaltstyp oder einer Website zugeordnet sein muss, ist kein Zuordnungsschritt und somit kein Zuordnungsformular erforderlich. Da diese Workflows während der Ausführung nicht geändert werden können, ist kein Änderungsformular erforderlich.

Microsoft SharePoint Designer ermöglicht auch das Importieren von Workflows, die mit Microsoft Visio 2010 erstellt wurden. Auf diese Weise können Geschäftsleiter oder Workflowautoren die Workflowlogik mithilfe einer bekannten grafischen Umgebung erstellen. Ein Workflowautor kann die Workflowlogik dann in Microsoft SharePoint Designer importieren, ggf. ändern und dann auf einer SharePoint-Website veröffentlichen.

SharePoint Server enthält umfassende Funktionen zum Erstellen von dokumentorientierten Workflows. Es handelt sich jedoch letztendlich um eine Entwicklungs- und Ausführungsplattform. Als eigenständiges Tool werden keine Workflowfunktionen geboten, die direkt von Endbenutzern verwendet werden können. In SharePoint Server ausgeführte Workflows weisen noch andere Einschränkungen auf, beispielsweise die fehlende Möglichkeit zur Interaktion mit Teilnehmern über Office-Clientanwendungen.

Vergleich der Erstellungstools

Die folgende Tabelle zeigt die wesentlichen Unterschiede zwischen den von Microsoft unterstützten Tools zum Erstellen von Workflows in SharePoint Server mithilfe von SharePoint Designer und dem Workflow-Designer von WF in Visual Studio 2010 Professional Edition.

Funktion/Anforderung SharePoint Designer Workflow-Designer von WF in Visual Studio

Können Workflows nur mit von Websiteadministratoren genehmigten Aktionen erstellt werden?

Ja

Nein

Kann auf Workflows in Clientanwendungen (außer dem Browser) zugegriffen werden?

Ja

Ja

Kann Microsoft Visio Professional zum Erstellen der Workflowlogik verwendet werden?

Ja

Nein

Muss Code geschrieben werden?

Nein

Ja

Werden zusätzliche Aktivitäten (außer denen von SharePoint Server) bereitgestellt?

Nein

Ja

Können benutzerdefinierte Aktivitäten erstellt werden?

Nein

Ja

Können InfoPath-Formulare im Workflow verwendet werden?

Ja

Ja

Kann der Workflow während der Ausführung geändert werden?

Nein

Ja

Können Workflows mit einem Klick veröffentlicht werden?

Ja

Ja

Können Workflows remote bereitgestellt werden?

Ja

Nein

Können Workflows in der gesamten Farm verfügbar gemacht werden?

Nein

Ja

Können Workflows auf eine Websitesammlung ausgerichtet werden?

Ja

Ja