Auswählen eines Tools zum Erstellen von Workflow (SharePoint Foundation)

 

Gilt für: SharePoint Foundation 2010

Letztes Änderungsdatum des Themas: 2015-03-09

Was ist ein Workflow? Grundsätzlich besteht dieser aus zwei Teilen: den Formularen, die ein Workflow für die Interaktion mit seinen Benutzern verwendet, und der Logik, die das Verhalten des Workflows definiert. Um zu verstehen, wie Workflows erstellt werden, sind Kenntnisse beider Aspekte erforderlich.

Da ein Workflow mit Benutzern über einen Webbrowser kommuniziert, ist der Workflow zum Anzeigen seiner Formulare von ASP.NET abhängig. Dementsprechend werden diese Formulare als ASPX-Seiten definiert. Ein Workflow kann eigene Formulare potenziell an vier Punkten seiner Lebensdauer anzeigen:

  • Zuordnung: Wenn ein Administrator eine Workflowvorlage einer bestimmten Dokumentbibliothek oder Liste zuordnet, kann er möglicherweise Optionen festlegen, die für jede aus dieser Zuordnung erstellte Workflowinstanz gelten. Wenn ein Workflowautor dies zulassen möchte, muss dieser ein Formular bereitstellen, das dem Administrator die Angabe dieser Informationen erlaubt.

  • 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 die Angabe der Liste der Workflowteilnehmer und die Definition der Dauer, die jeweils für den Abschluss der Aufgabe verfügbar war. Wenn ein Workflow dies zulässt, muss dessen Autor ein Formular bereitstellen, das dem Initiator erlaubt, diese Optionen festzulegen.

  • Aufgabenerledigung: Die ausgeführte Workflowinstanz muss den Teilnehmern des Workflows ein Formular anzeigen, damit diese die Aufgaben erledigen 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 die Aufgabenerledigung 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.

Workflows, die ausschließlich auf Microsoft SharePoint Foundation 2010 basieren, definieren die Formulare als ASPX-Seiten. Die Logik eines Workflows wird immer als eine Gruppe von Aktivitäten definiert, genau wie bei jedem auf Windows Workflow Foundation (WF) basierten Workflow. Microsoft bietet für verschiedene Zielgruppen zwei verschiedene Tools zum Festlegen von Logik und Formularen für einen Workflow. Softwareentwickler können das Workflow-Designer-Feature von Windows Workflow Foundation verwenden. Dieses Tool wird innerhalb von Visual Studio 2010 Professional Edition ausgeführt und bietet eine grafische Umgebung für das Anordnen von Aktivitäten in Workflows. Information Worker, eine weniger technische Gruppe, können in Microsoft SharePoint Designer 2010 Workflows ohne Schreiben von Code erstellen. 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 Workflow-Designer von WF

In vielerlei Hinsichten ähnelt ein Workflow einem Flussdiagramm. Daher ist es sinnvoll, ein grafisches Tool bereitzustellen, mit dem Entwickler die Aktionen eines Workflows angeben können. Hierfür werden die SharePoint-Workflowtools in Visual Studio 2010 Professional verwendet. Hierbei handelt es sich um einen Projekttyp, der den Windows Workflow Foundation (WF) Designer verwendet und die Unterstützung von Bereitstellung und Formularen für SharePoint-Workflows hinzufügt. Entwickler können mit dem Workflow-Designer von WF die Aktivitäten eines Workflows und die Reihenfolge, in der diese Aktivitäten ausgeführt werden sollen, grafisch definieren. Der Bildschirm unten zeigt ein einfaches Beispiel dafür 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 unteren rechten Ecke angezeigt wird.

Die Basisaktivitätenbibliothek von Windows Workflow Foundation stellt wie weiter oben beschrieben eine Gruppe von grundlegenden Aktivitäten bereit. Microsoft SharePoint Foundation bietet ebenfalls eine Reihe von Aktivitäten, die ausdrücklich zum Erstellen von Workflows entwickelt wurden. Dies sind die wichtigsten Aktivitäten:

  • OnWorkflowActivated: Bietet einen standardmäßigen Ausgangspunkt für einen Workflow. Unter anderem können hiermit Informationen akzeptiert werden, die von einem SharePoint-Administrator über das Zuordnungsformular bereitgestellt werden, wenn dem Workflow eine Dokumentbibliothek, eine Liste, ein Inhaltstyp oder eine Website zugeordnet ist. Außerdem können damit Informationen akzeptiert werden, die beim Starten des Workflows über das Initiierungsformular bereitgestellt 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, die automatisch eine E-Mail an die Person sendet, für die diese Aufgabe erstellt wurde, wenn diese Eigenschaft auf True festgelegt ist.

  • 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 zu ändern, wie sich diese Instanz des Workflows verhält. Wenn der Ersteller des Workflows sich dafür entscheidet, keine Instanzen dieser Aktivität in den Workflow einzuschließen, kann dieser 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 usw. Für diese Art der Überwachung muss der Autor des Workflows zu geeigneten Zeitpunkten der Workflowausführung Informationen in eine Verlaufsliste schreiben. Da Microsoft SharePoint Foundation 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 in 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 Aufgabenerledigungsformular, 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.

Alle diese von SharePoint Foundation bereitgestellten Aktivitäten befassen sich mit der Ausführung von Workflows innerhalb der SharePoint-Umgebung. Die von einem Workflow implementierte Geschäftslogik 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 Foundation und WF bereitgestellten Aktivitäten verwendet werden können.

Wie zuvor beschrieben, unterstützt Windows Workflow Foundation sequenzielle, parallele und Zustandsautomat-Workflows. Ein mit dem Workflow-Designer von WF erstellter Windows SharePoint Services-Workflow kann ebenfalls eine dieser Möglichkeiten verwenden. Dazu fügt SharePoint Foundation Visual Studio Projekttypen hinzu, einen für jede dieser Workflowformatvorlagen.

Unabhängig von der gewählten Formatvorlage muss der Entwickler mehr als nur die Logik des Workflows definieren. Er muss auch das ASPX-Formular angeben, das verwendet werden soll. 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. Mit dem Namespace Microsoft.Windows.SharePoint.Workflow wird ein Objektmodell für Entwickler bereitgestellt. 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. Dazu zählt die Installation der Workflowassemblys im globalen Assemblycache des Zielsystems. 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 mithilfe von Visual Studio und 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, ebenfalls Workflows mit Microsoft SharePoint Designer 2010 erstellen.

Erstellen von Workflows mit Microsoft SharePoint Designer 2010

Microsoft SharePoint Designer 2010 ist eine separate Anwendung, die kostenlos heruntergeladen werden kann. Mit Microsoft SharePoint Designer können Information Worker und andere Personen SharePoint-Websites Anwendungslogik hinzufügen (implementiert als Workflow). 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 jede andere Anwendung auf einem Server mit SharePoint Foundation bereitgestellt werden. Viele SharePoint-Administratoren erlauben jedoch nicht die Bereitstellung von willkürlichem Code auf ihren Servern, da das Risiko der Systemdestabilisierung als zu groß gilt. Die Möglichkeit zum Erstellen einfacher, an Dokumente und Listenelemente gebundene Geschäftslogik ist jedoch sehr nützlich, und viele SharePoint-Benutzer benötigen diese Möglichkeit. Zusammen mit der Möglichkeit der Erstellung von Workflows 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 Foundation 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 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 SharePoint-Websites Geschäftslogik 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 mit einem benutzerdefinierten Workflow eine bestimmte Gruppe von Benutzern informiert werden, sobald einer bestimmten Dokumentbibliothek ein neues Dokument hinzugefügt wird. Die Ausführung dieser Art von benutzerdefinierter Benachrichtigung ist nicht kompliziert – die Erstellung der Workflows ist einfach – aber bei früheren Versionen von SharePoint Foundation 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. Neben den von SharePoint Foundation bereitgestellten Aktivitäten kann der Administrator einer Website bestimmen, ob von einem Entwickler in dieser Liste erstellte benutzerdefinierte Aktivitäten eingeschlossen werden sollen. Ein SharePoint-Administrator kann genau definieren, welche Aufgaben Workflows ausführen dürfen, und daher sicherer sein, dass die Bereitstellung von Logik, die mit Microsoft SharePoint Designer erstellt wurde, das System nicht mehr destabilisiert.

Da Microsoft SharePoint Designer für Information Worker statt Entwickler vorgesehen ist und einfachere Szenarien bevorzugt, wird ein anderes Modell zum Erstellen von Workflows als bei dem in Visual Studio gehosteten Workflow-Designer von WF verwendet. Statt eines grafischen Ansatzes wird in Microsoft SharePoint Designer ein regelbasierter Ansatz verwendet. Dieser ist mit dem Regel-Assistenten in Microsoft Outlook zu vergleichen, einem Tool, das vielen Benutzern vertraut ist. Auf dem Bildschirm unten wird veranschaulicht, wie ein Benutzer von Microsoft SharePoint Designer einen Schritt in einem Workflow definiert. Beachten Sie, dass bei diesem Workflow einige Aktionen parallel und einige Aktionen nacheinander ausgeführt werden. In früheren Versionen von SharePoint Foundation konnten Aktionen nur nacheinander ausgeführt werden.

Workflow für Prozessabfolge

Bestellungsvorgangsworkflow

Jeder Schritt kann eine Bedingung und eine Aktion aufweisen. Anhand der Bedingung wird bestimmt, ob diese Aktion des Schritts ausgeführt werden soll, so wie in der If-Anweisung oben gezeigt. Die Auswahlmöglichkeiten für Aktionen umfassen Faktoren wie das Zuweisen eines Entertainers zu einem Event, das Einholen der Genehmigung usw. Jede dieser Aktionen wird von SharePoint Foundation-Aktivitäten ausgeführt, und bei den hier verwendeten Aktivitäten handelt es sich um dieselben Aktivitäten wie für Visual Studio und den Workflow-Designer von WF. Die Liste der Aktionen kann auch jede andere Aktivität enthalten, die der SharePoint-Administrator für diese Seite zulässt, z. B. von Entwicklern erstellte benutzerdefinierte Aktivitäten.

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 sequenzieller und/oder paralleler Workflow mit Bedingungen erstellt, die mit dem WF-Regelmodul ausgedrückt werden. Mit diesem Tool erstellte Workflows weisen jedoch einige Einschränkungen auf. Diese 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, stellt das Tool den Workflow mit einem einzigen Mausklick auf der Zielwebsite bereit und aktiviert den Workflow. Dies ist deutlich weniger kompliziert als der mehrere Schritte umfassende Bereitstellungsprozess, der für Workflows ausgeführt werden muss, 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 stattdessen. 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 Aufgabenerledigung. Da jeder mit diesem Tool erstellte Workflow einer bestimmten Dokumentbibliothek, Liste, Website oder einem bestimmten Inhaltstyp zugeordnet sein muss, ist kein Zuordnungsschritt und somit kein Zuordnungsformular erforderlich. Diese Workflows können während der Ausführung nicht geändert werden, weshalb kein Änderungsformular erforderlich ist.

Microsoft SharePoint Designer bietet auch die Möglichkeit, mit Microsoft Visio 2010 erstellte Workflows zu importieren. Auf diese Weise können Unternehmensmanager oder Workflowautoren die Workflowlogik mithilfe einer vertrauten grafischen Umgebung erstellen. Ein Workflowautor kann dann die Workflowlogik in Microsoft SharePoint Designer importieren, diese bei Bedarf ändern und anschließend auf einer SharePoint-Website veröffentlichen.

SharePoint Foundation bietet viele Funktionen für die Erstellung dokumentorientierter Workflows. Es handelt sich jedoch letztendlich um eine Entwicklungs- und Ausführungsplattform. Als eigenständiges Tool werden keine Workflowfunktionen bereitgestellt, die direkt von Endbenutzern verwendet werden können. Für Workflows, die in SharePoint Foundation ausgeführt werden, gelten noch andere Einschränkungen, beispielsweise die fehlende Möglichkeit zur Interaktion mit Teilnehmern mithilfe von Office-Clientanwendungen.

Vergleich der Entwicklungstools

In der folgenden Tabelle werden die wichtigen Unterschiede zwischen den von Microsoft unterstützten Tools zum Erstellen von Workflows in SharePoint Foundation mithilfe von SharePoint Designer und Workflow-Designer von WF in Visual Studio 2010 Professional Edition aufgezeigt.

Funktionalität/Anforderung SharePoint Designer Workflow-Designer von WF in Visual Studio

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

Ja

Nein

Kann in Clientanwendungen (zusätzlich zum Browser) auf Workflows zugegriffen werden?

Ja

Ja

Kann Microsoft Visio Professional zum Erstellen von Workflowlogik verwendet werden?

Ja

Nein

Muss Code geschrieben werden?

Nein

Ja

Werden zusätzliche Aktivitäten (neben den von SharePoint Foundation bereitgestellten Aktivitäten) angeboten?

Nein

Ja

Können benutzerdefinierte Aktivitäten erstellt werden?

Nein

Ja

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

Nein

Ja

Können Workflows mit einem einzigen Mausklick veröffentlicht werden?

Ja

Ja

Können Workflows remote bereitgestellt werden?

Ja

Nein

Können Workflows in der gesamten Serverfarm zur Verfügung gestellt werden?

Nein

Ja

Können Workflows auf eine Websitesammlung ausgelegt werden?

Ja

Ja