Exemplarische Vorgehensweise: Erstellen und Debuggen einer SharePoint-Workflow-Projektmappe
In dieser exemplarischen Vorgehensweise wird gezeigt, wie eine grundlegende sequenzielle Workflowvorlage erstellt wird. Der Workflow überprüft eine Eigenschaft einer freigegebenen Dokumentbibliothek, um zu bestimmen, ob ein Dokument überprüft wurde. Nach dem Prüfen des Dokuments wird der Workflow fertig gestellt.
In dieser exemplarischen Vorgehensweise werden die folgenden Aufgaben veranschaulicht:
Erstellen eines sequenziellen Workflowprojekts vom Typ SharePoint-Listendefinition in Visual Studio.
Erstellen von Workflowaktivitäten.
Behandeln von Workflowaktivitätsereignissen.
Tipp
Obwohl in dieser exemplarischen Vorgehensweise ein sequenzielles Workflowprojekt verwendet wird, ist der Prozess für ein Projekt vom Typ Zustandsautomatworkflow identisch.
Auf Ihrem Computer werden möglicherweise auch andere Namen oder Speicherorte für die Benutzeroberflächenelemente von Visual Studio angezeigt als die in den folgenden Anweisungen aufgeführten. Die von Ihnen verwendete Visual Studio-Edition und die Einstellungen legen diese Elemente fest. Weitere Informationen finden Sie unter Arbeiten mit Einstellungen.
Vorbereitungsmaßnahmen
Zum Durchführen dieser exemplarischen Vorgehensweise benötigen Sie die folgenden Komponenten:
Unterstützte Editionen von Microsoft Windows und SharePoint. Weitere Informationen finden Sie unter Anforderungen für die Entwicklung von SharePoint-Lösungen.
Visual Studio 2010.
Hinzufügen von Eigenschaften zur freigegebenen SharePoint-Dokumentbibliothek
Um den Prüfstatus von Dokumenten in der Bibliothek Freigegebene Dokumente nachzuverfolgen, werden drei neue Eigenschaften für freigegebene Dokumente auf der SharePoint-Website erstellt: Status, Assignee und Review Comments. Diese Eigenschaften werden in der Bibliothek Freigegebene Dokumente definiert.
So fügen Sie der freigegebenen SharePoint-Dokumentbibliothek Eigenschaften hinzu
Öffnen Sie eine SharePoint-Website, z. B. http://<system name>/SitePages/Home.aspx, in einem Webbrowser.
Klicken Sie auf der Schnellstartleiste auf Freigegebene Dokumente.
Klicken Sie im Menüband Bibliothekstools auf Bibliothek, und klicken Sie dann im Menüband auf die Schaltfläche Spalte erstellen, um eine neue Spalte zu erstellen.
Geben Sie für die Spalte den Namen "Document Status" ein, legen Sie den Typ auf Auswahl (Menü) fest, geben Sie die folgenden drei Optionen an, und klicken Sie anschließend auf OK:
Review Needed
Review Complete
Changes Requested
Erstellen Sie zwei zusätzliche Spalten, und nennen Sie diese Assignee und Review Comments. Legen Sie den Spaltentyp Assignee als einzelne Textzeile und den Spaltentyp Review Comments als aus mehreren Zeilen bestehenden Text fest.
Bearbeiten von Dokumenten ohne Auschecken
Es ist einfacher, die Workflowvorlage zu testen, wenn die Dokumente ohne Auschecken bearbeitet werden können. Im nächsten Verfahren konfigurieren Sie die SharePoint-Website, um dies zu ermöglichen.
So können Dokumente ohne Auschecken bearbeitet werden
Klicken Sie auf der Schnellstartleiste auf Freigegebene Dokumente.
Klicken Sie im Menüband Bibliothekstools auf Bibliothek, und klicken Sie dann auf die Schaltfläche Bibliothekeinstellungen, um die Seite Einstellungen Dokumentbibliothek anzuzeigen.
Klicken Sie im Abschnitt Allgemeine Einstellungen auf Versionierungseinstellungen, um die Seite Versionierungseinstellungen anzuzeigen.
Vergewissern Sie sich, dass Auschecken von Dokumenten erfordern, bevor sie bearbeitet werden können auf Nein festgelegt ist. Wenn dies nicht der Fall ist, ändern Sie die Einstellung in Nein, und klicken Sie dann auf OK.
Schließen Sie den Browser.
Erstellen eines sequenziellen Workflowprojekts für SharePoint.
Ein sequenzieller Workflow ist ein Satz von Schritten, die der Reihe nach ausgeführt werden, bis die letzte Aktivität fertig gestellt wurde. In diesem Verfahren wird ein sequenzieller Workflow erstellt, der für die Liste Freigegebene Dokumente gilt. Mit dem Workflow-Assistenten können Sie den Workflow entweder der Websitedefinition oder der Listendefinition zuordnen und bestimmen, wann der Workflow starten soll.
So erstellen Sie ein sequenzielles Workflowprojekt für SharePoint:
Starten Sie Visual Studio, und zeigen Sie das Dialogfeld Neues Projekt an, indem Sie im Menü Datei auf Neu zeigen und dann auf Projekt klicken.
Erweitern Sie unter Visual C# oder Visual Basic den Knoten SharePoint, und klicken Sie dann auf 2010.
Wählen Sie im Bereich Vorlagen die Vorlage Sequenzieller Workflow aus.
Geben Sie im Feld Name den Namen "MySharePointWorkflow" ein, und klicken Sie dann auf OK.
Der Assistent zum Anpassen von SharePoint wird angezeigt.
Klicken Sie auf der Seite Site und Sicherheitsebene für Debugging angeben auf Weiter, um die Standardsite und die Vertrauensebene zu übernehmen.
In diesem Schritt wird die Vertrauensebene für die Lösung als Farmlösung festgelegt, wobei es sich um die einzige verfügbare Option für Workflowprojekte handelt. Weitere Informationen finden Sie unter Überlegungen zu Sandkastenlösungen.
Akzeptieren Sie auf der Seite Workflownamen für das Debugging angeben den Standardnamen (MySharePointWorkflow - Workflow1). Übernehmen Sie den Standardwert für den Workflowvorlagentyp Listenworkflow, und klicken Sie dann auf Weiter.
Klicken Sie auf der Seite Soll Visual Studio den Workflow in einer Debugsitzung automatisch zuordnen? auf Weiter, um die Standardeinstellungen zu übernehmen.
In diesem Schritt wird der Workflow automatisch der Bibliothek freigegebener Dokumente zugeordnet.
Übernehmen Sie auf der Seite Bedingungen zum Starten des Workflows angeben die im Abschnitt Wie soll der Workflow gestartet werden? ausgewählten Standardoptionen, und klicken Sie auf Fertig stellen.
Auf dieser Seite können Sie angeben, wann der Workflow gestartet wird. Standardmäßig wird der Workflow gestartet, wenn ein Benutzer den Workflow in SharePoint manuell startet oder wenn ein Element erstellt wird, das dem Workflow zugeordnet ist.
Erstellen von Workflowaktivitäten
Workflows enthalten eine oder mehrere Aktivitäten, die auszuführende Aktionen darstellen. Ordnen Sie mit dem Workflow-Designer Aktivitäten für einen Workflow an. In diesem Verfahren werden dem Workflow zwei Aktivitäten hinzugefügt: HandleExternalEventActivity und OnWorkFlowItemChanged. Diese Aktivitäten überwachen den Prüfstatus von Dokumenten in der Liste Freigegebene Dokumente.
So erstellen Sie Workflowaktivitäten
Der Workflow sollte im Workflow-Designer angezeigt werden. Wenn dies nicht der Fall ist, doppelklicken Sie im Projektmappen-Explorer auf Workflow1.cs oder auf Workflow1.vb, um ihn zu öffnen.
Klicken Sie im Designer auf die OnWorkflowActivated1-Aktivität, um diese auszuwählen.
Geben Sie im Fenster Eigenschaften neben der Invoked-Eigenschaft "onWorkflowActivated" ein, und drücken Sie die EINGABETASTE.
Der Code-Editor wird geöffnet, und eine Ereignishandlermethode mit der Bezeichnung onWorkflowActivated wird der Workflow1-Codedatei hinzugefügt.
Wechseln Sie wieder zum Workflow-Designer, öffnen Sie die Toolbox, und erweitern Sie dann den Knoten Windows Workflow v3.0.
Ziehen Sie eine While-Aktivität vom Knoten Windows Workflow v3.0 der Toolbox, und verbinden Sie diese mit der Zeile unter der Aktivität onWorkflowActivated1.
Klicken Sie auf die WhileActivity1-Aktivität, um diese auszuwählen.
Legen Sie im Fenster Eigenschaften die Condition-Eigenschaft auf Code Condition fest.
Erweitern Sie die Condition-Eigenschaft, geben Sie neben der untergeordneten Condition-Eigenschaft "isWorkflowPending" ein, und drücken Sie anschließend die EINGABETASTE.
Der Code-Editor wird geöffnet, und eine Methode mit dem Namen isWorkflowPending wird der Workflow1-Codedatei hinzugefügt.
Wechseln Sie wieder zum Workflow-Designer, öffnen Sie die Toolbox, und erweitern Sie dann den Knoten SharePoint Workflow.
Ziehen Sie eine OnWorkflowItemChanged-Aktivität vom Knoten SharePoint Workflow der Toolbox, und verbinden Sie diese mit der Zeile innerhalb der Aktivität whileActivity1.
Klicken Sie auf die onWorkflowItemChanged1-Aktivität, um diese auszuwählen.
Legen Sie im Fenster Eigenschaften die Eigenschaften entsprechend der Anzeige in der folgenden Tabelle fest.
Eigenschaft
Value
CorrelationToken
workflowToken
Invoked
onWorkflowItemChanged
Behandeln von Aktivitätsereignissen
Überprüfen Sie abschließend den Status des Dokuments jeder Aktivität. Wenn das Dokument geprüft wurde, ist der Workflow fertig gestellt.
So behandeln Sie Aktivitätsereignisse:
Fügen Sie in Workflow1.cs oder Workflow1.vb das folgende Feld am Anfang der Workflow1-Klasse hinzu. Dieses Feld wird in einer Aktivität verwendet, um zu bestimmen, ob der Workflow abgeschlossen wurde.
Dim workflowPending As Boolean = True
Boolean workflowPending = true;
Fügen Sie der Workflow1-Klasse die folgende Methode hinzu. Mit dieser Methode wird der Wert der Eigenschaft Document Status der Dokumentliste überprüft, um zu bestimmen, ob das Dokument überprüft wurde. Wurde die Eigenschaft Document Status auf Review Complete festgelegt, wird das workflowPending-Feld mit der checkStatus-Methode auf false festgelegt, um anzugeben, dass der Workflow beendet werden kann.
Private Sub checkStatus() If CStr(workflowProperties.Item("Document Status")) = "Review Complete" Then workflowPending = False End If End Sub
private void checkStatus() { if ((string)workflowProperties.Item["Document Status"] == "Review Complete") workflowPending = false; }
Fügen Sie den folgenden Code der onWorkflowActivated-Methode und der onWorkflowItemChanged-Methode hinzu, um die checkStatus-Methode aufzurufen. Beim Start des Workflows wird mit der onWorkflowActivated-Methode die checkStatus-Methode aufgerufen, um zu bestimmen, ob das Dokument bereits überprüft wurde. Wurde der Workflow noch nicht überprüft, wird der Workflow fortgesetzt. Beim Speichern des Dokuments wird mit der onWorkflowItemChanged-Methode erneut die checkStatus-Methode aufgerufen, um zu bestimmen, ob das Dokument überprüft wurde. Während das workflowPending-Feld auf true festgelegt ist, wird die Ausführung des Workflows fortgesetzt.
Private Sub onWorkflowActivated(ByVal sender As System.Object, ByVal e As System.Workflow.Activities.ExternalDataEventArgs) checkStatus() End Sub Private Sub onWorkflowItemChanged(ByVal sender As System.Object, ByVal e As System.Workflow.Activities.ExternalDataEventArgs) checkStatus() End Sub
private void onWorkflowActivated(object sender, ExternalDataEventArgs e) { // Check the status. checkStatus(); } private void onWorkflowItemChanged(object sender, ExternalDataEventArgs e) { // Check the status. checkStatus(); }
Fügen Sie der isWorkflowPending-Methode den folgenden Code hinzu, um den Status der workflowPending-Eigenschaft zu überprüfen. Bei jedem Speichern des Dokuments wird mit der whileActivity1-Aktivität die isWorkflowPending-Methode aufgerufen. Mit dieser Methode wird die Result-Eigenschaft des ConditionalEventArgs-Objekts überprüft, um zu bestimmen, ob die WhileActivity1-Aktivität fortgesetzt oder beendet werden soll. Wurde die Eigenschaft auf true festgelegt, wird die Aktivität fortgesetzt. Andernfalls werden die Aktivität und der Workflow beendet.
Private Sub isWorkflowPending(ByVal sender As System.Object, ByVal e As System.Workflow.Activities.ConditionalEventArgs) e.Result = workflowPending End Sub
private void isWorkflowPending(object sender, ConditionalEventArgs e) { e.Result = workflowPending; }
Speichern Sie das Projekt.
Testen der SharePoint-Workflowvorlage
Beim Starten des Debuggers stellt Visual Studio die Workflowvorlage für den SharePoint-Server bereit und ordnet den Workflow der Liste Freigegebene Dokumente zu. Starten Sie zum Testen des Workflows eine Instanz des Workflows von einem Dokument in der Liste Freigegebene Dokumente.
So testen Sie die SharePoint-Workflowvorlage:
Legen Sie in Workflow1.cs oder Workflow1.vb neben der onWorkflowActivated-Methode einen Haltepunkt fest.
Drücken Sie F5, um die Projektmappe zu erstellen und auszuführen.
Die SharePoint-Website wird angezeigt.
Klicken Sie im Navigationsbereich in SharePoint auf Freigegebene Dokumente.
Klicken Sie auf der Seite Freigegebene Dokumente auf der Registerkarte Bibliothekstools auf Dokumente, und klicken Sie dann auf die Schaltfläche Dokument hochladen, um ein Dokument hochzuladen.
Klicken Sie im Dialogfeld Dokument hochladen auf die Schaltfläche Durchsuchen, wählen Sie eine Dokumentdatei aus, klicken Sie auf Öffnen und dann auf OK.
Hierdurch wird das ausgewählte Dokument in die Liste Freigegebene Dokumente hochgeladen, und der Workflow wird gestartet.
Überprüfen Sie in Visual Studio, ob der Debugger am Haltepunkt neben der onWorkflowActivated-Methode beendet wird.
Drücken Sie F5, um die Ausführung fortzusetzen.
Sie können die Einstellungen für das Dokument hier ändern. Übernehmen Sie jetzt aber zunächst die Standardwerte, indem Sie auf Speichern klicken.
Hiermit kehren Sie zur Seite Freigegebene Dokumente der standardmäßigen SharePoint-Website zurück.
Überprüfen Sie auf der Seite Freigegebene Dokumente, ob der Wert unter der Spalte MySharePointWorkflow auf In Bearbeitung festgelegt ist. Dadurch wird angegeben, dass sich der Workflow in Bearbeitung befindet und dass die Überprüfung des Dokuments ansteht.
Zeigen Sie auf der Seite Freigegebene Dokumente auf das Dokument, klicken Sie auf den Pfeil nach unten, und klicken Sie anschließend auf Eigenschaften bearbeiten.
Legen Sie Document Status auf Review Complete fest, und klicken Sie anschließend auf Speichern.
Hiermit kehren Sie zur Seite Freigegebene Dokumente der standardmäßigen SharePoint-Website zurück.
Überprüfen Sie auf der Seite Freigegebene Dokumente, ob der Wert unter der Spalte MySharePointWorkflow auf Review Complete festgelegt ist. Dadurch wird angegeben, dass der Workflow beendet ist und dass das Dokument überprüft wurde.
Nächste Schritte
Weitere Informationen zum Erstellen von Workflowvorlagen finden Sie in diesen Themen:
Weitere Informationen zu SharePoint-Workflowaktivitäten finden Sie im Thema zu Workflowaktivitäten für SharePoint Foundation (möglicherweise in englischer Sprache).
Weitere Informationen zu Windows Workflow Foundation-Aktivitäten finden Sie im Thema zum System.Workflow.Activities-Namespace (möglicherweise in englischer Sprache).
Siehe auch
Weitere Ressourcen
Erstellen von SharePoint-Workflow-Projektmappen