Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Diese exemplarische Vorgehensweise zeigt, wie Sie einen einfachen sequenziellen Workflow erstellen, der die Verwendung von Zuordnungs- und Initiierungsformularen umfasst. Hierbei handelt es sich um ASPX-Formulare, mit denen einem Workflow Parameter hinzugefügt werden können, wenn er vom SharePoint-Administrator erstmals zugeordnet (Zuordnungsformular) und vom Benutzer gestartet (Initiierungsformular) wird.
In dieser exemplarischen Vorgehensweise wird ein Szenario beschrieben, in dem ein Benutzer einen Genehmigungsworkflow für Spesenabrechnungen erstellen möchte, der die folgenden Anforderungen erfüllt:
Wenn der Workflow mit einer Liste verknüpft wird, wird für den Administrator ein Zuordnungsformular angezeigt, in dem er ein Ausgabenlimit für Spesenabrechnungen eingibt.
Mitarbeiter laden ihre Spesenabrechnungen in die Liste „Freigegebene Dokumente“ hoch, starten den Workflow und geben dann die Gesamtausgaben in das Workflowinitiierungsformular ein.
Wenn der Gesamtbetrag der Spesenabrechnung eines Mitarbeiters das vom Administrator vordefinierte Ausgabenlimit überschreitet, wird eine Aufgabe für den Vorgesetzten des Mitarbeiters erstellt, damit dieser die Spesenabrechnung genehmigt. Ist der Gesamtbetrag der Spesenabrechnung eines Mitarbeiters jedoch kleiner oder gleich dem Ausgabenlimit, wird eine Nachricht vom Typ „automatisch genehmigt“ in die Verlaufsliste des Workflows geschrieben.
In dieser exemplarischen Vorgehensweise werden die folgenden Aufgaben veranschaulicht:
Erstellen eines Projekts für einen sequenziellen SharePoint-Workflow mit einer Listendefinition in Visual Studio
Erstellen eines Workflowzeitplans
Behandeln von Workflowaktivitätsereignissen
Erstellen von Workflowzuordnungs- und -initiierungsformularen
Zuordnen des Workflows
Manuelles Starten des Workflows
Hinweis
In dieser exemplarischen Vorgehensweise wird ein Projekt für einen sequenziellen Workflow verwendet, der Prozess für Zustandsautomatworkflows ist jedoch der gleiche.
Möglicherweise unterscheiden sich die auf Ihrem Computer angezeigten Namen oder Positionen einiger Visual Studio-Benutzeroberflächenelemente von den Angaben in den folgenden Anweisungen. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Personalisieren von Visual Studio-IDE.
Voraussetzungen
Zum Abschließen dieser exemplarischen Vorgehensweise benötigen Sie Folgendes:
Unterstützte Editionen von Microsoft Windows und SharePoint.
Visual Studio.
Erstellen eines Projekts für einen sequenziellen Workflow
Erstellen Sie zunächst ein Projekt für einen sequenziellen Workflow in Visual Studio. Ein sequenzieller Workflow besteht aus einer Reihe von Schritten, die nacheinander ausgeführt werden, bis die letzte Aktivität abgeschlossen ist. In diesem Verfahren erstellen Sie einen sequenziellen Workflow, der für die Liste „Freigegebene Dokumente“ in SharePoint gilt. Im Workflow-Assistenten können Sie den Workflow der Website oder der Listendefinition zuordnen und angeben, wann der Workflow gestartet wird.
So erstellen Sie ein Projekt für einen sequenziellen SharePoint-Workflow
Wählen Sie auf der Menüleiste Datei>Neu>Projekt aus, um das Dialogfeld Neues Projekt zu öffnen.
Erweitern Sie unter Visual C# oder Visual Basic den Knoten SharePoint, und wählen Sie dann den Knoten 2010 aus.
Wählen Sie im Bereich Vorlagen die Projektvorlage SharePoint 2010-Projekt aus.
Geben Sie im Feld Name den Namen ExpenseReport ein, und wählen Sie dann die Schaltfläche OK aus.
Der Assistent zum Anpassen von SharePoint wird angezeigt.
Aktivieren Sie auf der Seite Website und Sicherheitsebene für Debuggen angeben das Optionsfeld Als Farmlösung bereitstellen, und wählen Sie dann die Schaltfläche Fertig stellen aus, um die Vertrauensebene und die Standardwebsite zu akzeptieren.
In diesem Schritt wird auch die Vertrauensebene für die Projektmappe als Farmlösung festgelegt (die einzige verfügbare Option für Workflowprojekte).
Wählen Sie im Projektmappen-Explorerden Projektknoten aus.
Wählen Sie in der Menüleiste Projekt>Neues Element hinzufügen aus.
Erweitern Sie unter Visual C# oder Visual Basic den Knoten SharePoint, und wählen Sie dann den Knoten 2010 aus.
Wählen Sie im Bereich Vorlagen die Vorlage Sequenzieller Workflow (nur Farmlösung) und dann die Schaltfläche Hinzufügen aus.
Der Assistent zum Anpassen von SharePoint wird angezeigt.
Übernehmen Sie auf der Seite Workflownamen für das Debuggen angeben den Standardnamen (ExpenseReport – Workflow1). Übernehmen Sie für den Workflowvorlagentyp den Standardwert (Listenworkflow). Klicken Sie auf Weiter.
Deaktivieren Sie auf der Seite Soll Visual Studio den Workflow in einer Debugsitzung automatisch zuordnen? das Kontrollkästchen, bei dessen Auswahl Ihre Workflowvorlage automatisch zugeordnet wird.
In diesem Schritt können Sie den Workflow später manuell der Liste „Freigegebene Dokumente“ zuordnen, über die das Zuordnungsformular angezeigt wird.
Klicken Sie auf die Schaltfläche Fertig stellen.
Hinzufügen eines Zuordnungsformulars zum Workflow
Als Nächstes erstellen Sie ein ASPX-Zuordnungsformular, das angezeigt wird, wenn der SharePoint-Administrator den Workflow zum ersten Mal einem Spesenabrechnungsdokument zuordnet.
So fügen Sie dem Workflow ein Zuordnungsformular hinzu
Wählen Sie im Projektmappen-Explorer den Knoten Workflow1 aus.
Wählen Sie auf der Menüleiste Projekt>Neues Element hinzufügen aus, um das Dialogfeld Neues Element hinzufügen zu öffnen.
Erweitern Sie in der Strukturansicht des Dialogfelds entweder Visual C# oder Visual Basic (je nach Projektsprache), erweitern Sie den Knoten SharePoint, und wählen Sie dann den Knoten 2010 aus.
Wählen Sie in der Liste der Vorlagen die Vorlage Workflowzuordnungsformular aus.
Geben Sie im Feld Name den Namen ExpenseReportAssocForm.aspx ein.
Wählen Sie die Schaltfläche Hinzufügen aus, um das Formular dem Projekt hinzuzufügen.
Entwerfen und Codieren des Zuordnungsformulars
In diesem Verfahren fügen Sie dem Zuordnungsformular Steuerelemente und Code hinzu, um Funktionen bereitzustellen.
So entwerfen und codieren Sie das Zuordnungsformular
Suchen Sie im Zuordnungsformular (ExpenseReportAssocForm.aspx) nach dem
asp:Content
-Element mitID="Main"
.Fügen Sie direkt nach der ersten Zeile in diesem Content-Element den folgenden Code hinzu, um eine Bezeichnung und ein Textfeld zu erstellen, das zur Eingabe des Ausgabenlimits für die Spesengenehmigung (AutoApproveLimit) auffordert:
<asp:Label ID="lblAutoApproveLimit" Text="Auto Approval Limit:" runat="server" /> <asp:TextBox ID="AutoApproveLimit" runat="server" /> <br /><br />
Erweitern Sie im Projektmappen-Explorer die Datei ExpenseReportAssocForm.aspx, um die abhängigen Dateien anzuzeigen.
Hinweis
Wenn Ihr Projekt in Visual Basic geschrieben ist, müssen Sie die Schaltfläche Alle Dateien anzeigen auswählen, um diesen Schritt auszuführen.
Öffnen Sie das Kontextmenü für die Datei „ExpenseReportAssocForm.aspx“, und wählen Sie Code anzeigen aus.
Ersetzen Sie die
GetAssociationData
-Methode durch folgenden Code:
Hinzufügen eines Initiierungsformulars zum Workflow
Als Nächstes erstellen Sie das Initiierungsformular, das angezeigt wird, wenn Benutzer den Workflow für ihre Spesenabrechnungen ausführen.
So erstellen Sie ein Initiierungsformular
Wählen Sie im Projektmappen-Explorer den Knoten Workflow1 aus.
Wählen Sie auf der Menüleiste Projekt>Neues Element hinzufügen aus, um das Dialogfeld Neues Element hinzufügen zu öffnen.
Erweitern Sie in der Strukturansicht des Dialogfelds entweder Visual C# oder Visual Basic (je nach Projektsprache), erweitern Sie den Knoten SharePoint, und wählen Sie dann den Knoten 2010 aus.
Wählen Sie in der Liste der Vorlagen die Vorlage Workflowinitiierungsformular aus.
Geben Sie im Feld Name den Namen ExpenseReportInitForm.aspx ein.
Wählen Sie die Schaltfläche Hinzufügen aus, um das Formular dem Projekt hinzuzufügen.
Entwerfen und Codieren des Initiierungsformulars
Als Nächstes fügen Sie dem Initiierungsformular Steuerelemente und Code hinzu, um Funktionen bereitzustellen.
So codieren Sie das Initiierungsformular
Suchen Sie im Initiierungsformular (ExpenseReportInitForm.aspx) nach dem
asp:Content
-Element mitID="Main"
.Fügen Sie direkt nach der ersten Zeile in diesem Content-Element den folgenden Code hinzu, um eine Bezeichnung und ein Textfeld, das das im Zuordnungsformular eingegebene Ausgabenlimit für die Spesengenehmigung (AutoApproveLimit) anzeigt, sowie eine weitere Bezeichnung und ein Textfeld, das zur Eingabe der Gesamtausgaben (ExpenseTotal) auffordert, zu erstellen:
<asp:Label ID="lblAutoApproveLimit" Text="Auto Approval Limit:" runat="server" /> <asp:TextBox ID="AutoApproveLimit" ReadOnly="true" runat="server" /> <br /><br /> <asp:Label ID="lblExpenseTotal" Text="Expense Total:" runat="server" /> <asp:TextBox ID="ExpenseTotal" runat="server" /> <br /><br />
Erweitern Sie im Projektmappen-Explorer die Datei ExpenseReportInitForm.aspx, um die abhängigen Dateien anzuzeigen.
Öffnen Sie das Kontextmenü für die Datei „ExpenseReportInitForm.aspx“, und wählen Sie Code anzeigen aus.
Ersetzen Sie die
Page_Load
-Methode durch das folgende Beispiel:Ersetzen Sie die
GetInitiationData
-Methode durch das folgende Beispiel:
Anpassen des Workflows
Als Nächstes passen Sie den Workflow an. Später ordnen Sie dem Workflow zwei Formulare zu.
So passen Sie den Workflow an
Zeigen Sie den Workflow im Workflow-Designer an, indem Sie „Workflow1“ im Projekt öffnen.
Erweitern Sie in der Toolbox den Knoten Windows Workflow Version 3.0, und suchen Sie nach der Aktivität IfElse.
Fügen Sie diese Aktivität dem Workflow hinzu, indem Sie einen der folgenden Schritte ausführen:
Öffnen Sie das Kontextmenü für die Aktivität IfElse, und wählen Sie Kopieren aus. Öffnen Sie dann im Workflow-Designer das Kontextmenü für die Zeile unter der Aktivität onWorkflowActivated1, und wählen Sie Einfügen aus.
Ziehen Sie die Aktivität IfElse aus der Toolbox, und verbinden Sie sie im Workflow-Designer mit der Zeile unter der Aktivität onWorkflowActiviated1.
Erweitern Sie in der Toolbox den Knoten SharePoint-Workflow, und suchen Sie nach der Aktivität CreateTask.
Fügen Sie diese Aktivität dem Workflow hinzu, indem Sie einen der folgenden Schritte ausführen:
Öffnen Sie das Kontextmenü für die Aktivität CreateTask, und wählen Sie Kopieren aus. Öffnen Sie dann im Workflow-Designer das Kontextmenü für einen der beiden Bereiche Aktivitäten hier ablegen in IfElseActivity1, und wählen Sie Einfügen aus.
Ziehen Sie die Aktivität CreateTask aus der Toolbox in einen der beiden Bereiche Aktivitäten hier ablegen in IfElseActivity1.
Geben Sie im Fenster Eigenschaften den Eigenschaftswert taskToken für die Eigenschaft CorrelationToken ein.
Erweitern Sie die Eigenschaft CorrelationToken, indem Sie das Pluszeichen (
) daneben auswählen.
Wählen Sie den Dropdownpfeil der Untereigenschaft OwnerActivityName aus, und legen Sie den Wert Workflow1 fest.
Wählen Sie die Eigenschaft TaskId und dann die Schaltfläche mit den Auslassungspunkten (
) aus, um das Dialogfeld Eigenschaft binden anzuzeigen.
Wählen Sie die Registerkarte An neues Mitglied binden aus, aktivieren Sie das Optionsfeld Feld erstellen, und wählen Sie dann die Schaltfläche OK aus.
Wählen Sie die Eigenschaft TaskProperties und dann die Schaltfläche mit den Auslassungspunkten (
) aus, um das Dialogfeld Eigenschaft binden anzuzeigen.
Wählen Sie die Registerkarte An neues Mitglied binden aus, aktivieren Sie das Optionsfeld Feld erstellen, und wählen Sie dann die Schaltfläche OK aus.
Erweitern Sie in der Toolbox den Knoten SharePoint-Workflow, und suchen Sie nach der Aktivität LogToHistoryListActivity.
Fügen Sie diese Aktivität dem Workflow hinzu, indem Sie einen der folgenden Schritte ausführen:
Öffnen Sie das Kontextmenü für die Aktivität LogToHistoryListActivity, und wählen Sie Kopieren aus. Öffnen Sie dann im Workflow-Designer das Kontextmenü für den anderen Bereich Aktivitäten hier ablegen in IfElseActivity1, und wählen Sie Einfügen aus.
Ziehen Sie die Aktivität LogToHistoryListActivity aus der Toolbox in den anderen Bereich Aktivitäten hier ablegen in IfElseActivity1.
Hinzufügen von Code zum Workflow
Als Nächstes fügen Sie dem Workflow Code hinzu, um Funktionen bereitzustellen.
So fügen Sie dem Workflow Code hinzu
Öffnen Sie im Workflow-Designer das Kontextmenü für die Aktivität CreateTask1, und wählen Sie dann Code anzeigen aus.
Fügen Sie die folgende Methode hinzu:
private void createTask1_MethodInvoking(object sender, EventArgs e) { createTask1_TaskId1 = Guid.NewGuid(); createTask1_TaskProperties1.AssignedTo = "somedomain\\someuser"; createTask1_TaskProperties1.Description = "Please approve the expense report"; createTask1_TaskProperties1.Title = "Expense Report Approval Needed"; }
Hinweis
Ersetzen Sie
somedomain\\someuser
im Code durch eine Domäne und einen Benutzernamen, für den eine Aufgabe erstellt wird (z. B.Office\\JoeSch
). Für Testzwecke ist es am einfachsten, das zum Entwickeln verwendete Konto anzugeben.Fügen Sie unter der
MethodInvoking
-Methode das folgende Beispiel hinzu:Wählen Sie im Workflow-Designer die Aktivität ifElseBranchActivity1 aus.
Wählen Sie im Fenster Eigenschaften den Dropdownpfeil der Eigenschaft Bedingung aus, und legen Sie dann den Wert Codebedingung fest.
Erweitern Sie die Eigenschaft Bedingung, indem Sie das Pluszeichen (
) daneben auswählen, und legen Sie dann den Wert auf checkApprovalNeeded fest.
Öffnen Sie im Workflow-Designer das Kontextmenü für die Aktivität logToHistoryListActivity1, und wählen Sie dann Handler generieren aus, um eine leere Methode für das
MethodInvoking
-Ereignis zu generieren.Ersetzen Sie den
MethodInvoking
-Code durch Folgendes:Drücken Sie F5, um das Programm zu debuggen.
Dadurch wird die Anwendung kompiliert, gepackt und bereitgestellt, ihre Features werden aktiviert, der IIS-Anwendungspool wird wiederverwendet, und anschließend wird der Browser mit dem in der Eigenschaft Website-URL angegebenen Speicherort gestartet.
Zuordnen des Workflows zur Dokumentliste
Als Nächstes zeigen Sie das Workflowzuordnungsformular an, indem Sie den Workflow der Liste Freigegebene Dokumente auf der SharePoint-Website zuordnen.
So ordnen Sie den Workflow zu
Wählen Sie auf der Schnellstartleiste den Link Freigegebene Dokumente aus.
Wählen Sie auf der Registerkarte Bibliothekstools den Link Bibliothek und dann auf dem Menüband die Schaltfläche Bibliothekseinstellungen aus.
Wählen Sie im Abschnitt Berechtigungen und Verwaltung den Link Workfloweinstellungen und dann auf der Seite Workflows den Link Workflow hinzufügen aus.
Wählen Sie in der oberen Liste auf der Seite „Workfloweinstellungen“ die Vorlage ExpenseReport – Workflow1 aus.
Geben Sie im nächsten Feld ExpenseReportWorkflow ein, und wählen Sie dann die Schaltfläche Weiter aus.
Dadurch wird der Workflow der Liste Freigegebene Dokumente zugeordnet und das Workflowzuordnungsformular angezeigt.
Geben Sie im Textfeld Auto Approval Limit den Wert 1200 ein, und wählen Sie dann die Schaltfläche Workflow zuordnen aus.
Starten des Workflows
Als Nächstes ordnen Sie den Workflow einem der Dokumente in der Liste Freigegebene Dokumente zu, um das Workflowinitiierungsformular anzuzeigen.
So starten Sie den Workflow
Wählen Sie auf der SharePoint-Seite die Schaltfläche Start aus.
Wählen Sie auf der Schnellstartleiste den Link Freigegebene Dokumente aus, um die Liste Freigegebene Dokumente anzuzeigen.
Wählen Sie oben auf der Seite auf der Registerkarte Bibliothekstools den Link Dokumente und dann auf dem Menüband die Schaltfläche Dokument hochladen aus, um ein neues Dokument in die Liste Freigegebene Dokumente hochzuladen.
Klicken Sie im Dialogfeld Dokument hochladen auf die Schaltfläche Durchsuchen, wählen Sie eine beliebige Dokumentdatei aus, klicken Sie auf die Schaltfläche Öffnen und dann auf OK.
Sie können die Einstellungen für das Dokument in diesem Dialogfeld ändern. Übernehmen Sie hier jedoch die Standardwerte, indem Sie die Schaltfläche Speichern auswählen.
Wählen Sie das hochgeladene Dokument aus, klicken Sie auf den angezeigten Dropdownpfeil, und wählen Sie dann das Element Workflows aus.
Wählen Sie das Bild neben „ExpenseReportWorkflow“ aus.
Dadurch wird das Workflowinitiierungsformular angezeigt. (Beachten Sie, dass der Wert im Feld Auto Approval Limit schreibgeschützt ist, da er im Zuordnungsformular eingegeben wurde.)
Geben Sie im Textfeld Expense Total den Wert 1600 ein, und wählen Sie dann die Schaltfläche Workflow starten aus.
Dadurch wird die Liste Freigegebene Dokumente erneut angezeigt. Dem Element, für das der Workflow gerade gestartet wurde, wird eine neue Spalte namens ExpenseReportWorkflow mit dem Wert Abgeschlossen hinzugefügt.
Wählen Sie den Dropdownpfeil neben dem hochgeladenen Dokument und dann das Element Workflows aus, um die Workflowstatusseite anzuzeigen. Wählen Sie unter Abgeschlossene Workflows den Wert Abgeschlossen aus. Die Aufgabe wird im Abschnitt Aufgaben aufgeführt.
Wählen Sie den Titel der Aufgabe aus, um die Details anzuzeigen.
Kehren Sie zur Liste Freigegebene Dokumente zurück, und starten Sie den Workflow mit demselben oder einem anderen Dokument erneut.
Geben Sie im Initiierungsformular einen Betrag ein, der kleiner oder gleich dem im Zuordnungsformular eingegebenen Betrag (1200) ist.
In diesem Fall wird anstelle einer Aufgabe ein Eintrag in der Verlaufsliste erstellt. Der Eintrag wird im Abschnitt Workflowverlauf der Workflowstatusseite angezeigt. Beachten Sie die Meldung in der Spalte Ergebnis des Verlaufsereignisses. Sie enthält den im Ereignis
logToHistoryListActivity1.MethodInvoking
eingegebenen Text mit dem automatisch genehmigten Betrag.