Freigeben über


Erstellen einer SharePoint-Workflow-App mit Visual Studio 2012

Exemplarische Vorgehensweise zum Erstellen einer Workflow-SharePoint-Add-In mit Microsoft Visual Studio 2012

Hinweis

SharePoint 2010-Workflows wurden am 1. August 2020 für neue Mandanten eingestellt und am 1. November 2020 aus bestehenden Mandanten entfernt. Wenn Sie SharePoint 2010-Workflows verwenden, empfehlen wir die Migration zu Power Automate oder anderen unterstützten Lösungen. Weitere Informationen hierzu finden Sie unter Einstellung von SharePoint 2010-Workflows.

Voraussetzungen

In diesem Entwicklungsszenario wird davon ausgegangen, dass eine SharePoint-Farm und eine Workflow-Manager 1.0-Farm installiert und verbunden sind. Diese beiden Farmen können sich auf demselben Computer oder auf separaten Servercomputern befinden. In diesem Szenario wird außerdem davon ausgegangen, dass die Workflowentwicklung remote stattfindet, d. h. auf einem Computer, der separat von einem der Servercomputer ist, und dass Microsoft Visual Studio 2012 oder höher verwendet wird.

  • Auf den Serverplattformen:
    • Windows Server 2008 R2.
    • Microsoft SharePoint
    • Workflow-Manager 1.0
  • Auf der Entwicklungsplattform:
    • Microsoft Visual Studio 2012 oder höher

    • Office Developer Tools für Visual Studio 2013

      Hinweis

      Office Developer Tools für Visual Studio 2013 ist nur erforderlich, wenn Sie Visual Studio 2012 verwenden. Höhere Versionen von Visual Studio enthalten die Office Developer Tools.

Hilfe beim Einrichten und Konfigurieren Ihrer SharePoint-Workflow-Entwicklungsumgebung finden Sie hier:

Erste Schritte

Ein häufiges Szenario für Workflow in Geschäftsumgebungen ist der Prozess der Prüfung und Genehmigung von Dokumenten. In dieser exemplarischen Vorgehensweise erstellen wir eine SharePoint-Add-In, die Routing, Benachrichtigungen und Genehmigung (oder Ablehnung) eines Dokuments mithilfe eines SharePoint-Workflows automatisiert. Wir erstellen diesen Workflow mithilfe des SharePoint-Workflow-Designers in Microsoft Visual Studio 2012.

Hier sehen Sie ein Flussdiagramm, das den Ablauf des Workflows veranschaulicht, den wir erstellen werden.

Abbildung 1: Flussdiagramm mit dem Workflow für die Dokumentgenehmigung.

Flussdiagramm des Dokumentgenehmigungs-Workflows

Zusammengefasst führt der Workflow Folgendes aus:

  1. Ein Dokumentänderungsereignis, das einer bestimmten Dokumentbibliothek zugeordnet ist, startet die Workflowinstanz.
  2. Wenn der Status des Dokuments auf "Bereit zur Überprüfung" festgelegt ist, weist der Workflow einem vordefinierten Prüfer eine Aufgabe zu und sendet dann dem Prüfer eine E-Mail-Benachrichtigung über die Aufgabe.
  3. Wenn der Prüfer das Dokument nicht genehmigt, bleibt die Dokumentdatei in der Bibliothek Entwurfsdokumente. Der Status des Dokuments wird jedoch auf "Abgelehnt" festgelegt.
  4. If the reviewer approves the document, the workflow copies the document into a Published Documents library. The original file remains in the Draft Documents library, but its status is set to "Published."

Wichtig

Bevor Sie mit dieser exemplarischen Vorgehensweise beginnen, stellen Sie sicher, dass Sie über eine ordnungsgemäß installierte und konfigurierte Entwicklungsumgebung für Workflows verfügen. Weitere Informationen finden Sie unter Vorbereiten der Einrichtung und Konfiguration einer SharePoint-Workflow-Entwicklungsumgebung. Stellen Sie außerdem sicher, dass Sie über eine SharePoint-Instanz verfügen, mit der Sie Ihren Workflow entwickeln können. Weitere Informationen finden Sie unter Installieren von SharePoint.

Vorbereiten der Umgebung

Im ersten Schritt wird die SharePoint-Website mit Dokumentbibliotheken vorbereitet, die im Workflow verwendet werden.

  1. Starten Sie Visual Studio 2012, und erstellen Sie ein neues Projekt unter Verwendung der Vorlage App für SharePoint, wie in Abbildung 2 dargestellt.

    Hinweis

    In dieser exemplarischen Vorgehensweise wird die Lösungsdatei "DocApprovalWorkflow1" genannt. Es wird empfohlen, denselben Namen zu verwenden. Wenn Sie Ihre Lösung anders nennen, müssen Sie darauf achten, in den folgenden Anweisungen die nötigen Anpassungen vorzunehmen.

    Abbildung 2: Erstellen eines neuen Projekts in Visual Studio 2012

    Dialogfeld

  2. Erstellen Sie auf Ihrer entsprechenden SharePoint-Website wie folgt zwei neue Dokumentbibliotheken:

    • Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Symbol „DocApprovalWorkflow1“, und wählen Sie Hinzufügen>Neues Element und dann Liste aus.
    • Geben Sie im resultierenden Assistenten zum Anpassen von SharePoint im Namenfeld "Entwurfsdokumente" ein. Wählen Sie dann in der Dropdownliste unter dem ersten Optionsfeld "Dokumentbibliothek" aus, wie in Abbildung 3 dargestellt.
    • Klicken Sie auf Weiter, übernehmen Sie die Standardeinstellungen, und klicken Sie dann auf Fertig stellen.

    Abbildung 3: Assistent zum Anpassen von SharePoint für Listeneinstellungen

    Assistent

  3. Erstellen Sie die zweite Dokumentbibliothek mit den gleichen Schritten wie oben, aber nennen Sie diese zweite Bibliothek „Veröffentlichte Dokumente“.

  4. Fügen Sie zwei benutzerdefinierte Spalten zu beiden neuen Dokumentbibliotheken hinzu, die Sie erstellt haben:

    • Erstellen Sie eine benutzerdefinierte Spalte namens „Genehmigende Person“ mit dem Listenspaltentyp Person oder Gruppe.
    • Erstellen Sie eine benutzerdefinierte Spalte namens „Dokumentstatus“ mit dem Spaltentyp Auswahlliste (siehe Abbildung 4).
  5. Fügen Sie in der Spalte Dokumentstatus fünf Auswahlmöglichkeiten hinzu, indem Sie die Type-Eigenschaft im Eigenschaftenraster erweitern und dann in der Items-Eigenschaft auf die Schaltfläche mit den Auslassungszeichen () klicken. Geben Sie die Auswahlwerte im daraufhin angezeigten Dialogfeld ein, wie in Abbildung 4 dargestellt.

    • Entwurf in Bearbeitung
    • Bereit zur Überprüfung
    • Genehmigt zur Veröffentlichung
    • Abgelehnt
    • Veröffentlicht

    Festlegen benutzerdefinierte Spalteneigenschaften

Erstellen des grundlegenden Workflows

Nun sind wir bereit, den Workflow selbst zu erstellen.

  1. Erstellen Sie in Visual Studio einen neuen Workflow, indem Sie (im Projektmappen-Explorer) mit der rechten Maustaste auf das Symbol DocApprovalWorkflow1 klicken und Hinzufügen>Neues Element und dann Workflow auswählen (siehe Abbildung 5).

    Abbildung 5: Assistent zum Hinzufügen eines Neuen Elementworkflows > .

    Hinzufügen eines neuen Workflowelements

  2. Wenn Sie aufgefordert werden, nennen Sie den Workflow „DocumentApprovalWorkflow“, und wählen Sie Listenworkflow als Workflowtyp aus (siehe Abbildung 6).

    Abbildung 6 Angeben von Workflowname und -typ

    Angeben von Workflowname und -typ

  3. In the SharePoint Customization Wizard, associate the new workflow with the Draft Document library; then, opt to create a new history list and a new workflow task list, as shown in Figure 7. Klicken Sie dann auf Weiter.

    Abbildung 7: Abschließen des Assistenten zum Anpassen von SharePoint für den neuen Workflow

    Fertigstellen des Assistenten zum Anpassen von SharePoint

  4. Set the workflow to start automatically when an item in the Draft Documents library is changed. You can also leave the check box for manually starting the workflow selected; this allows you to easily test the workflow without needing to change a document. See Figure 8.

    Abbildung 8: Festlegen von Aktivierungsparametern für den Workflow

    Festlegen von Aktivierungsparametern für den Workflow

    Hinweis

    Sie können den Workflowzuordnungstyp nach Erstellen des Workflows im Eigenschaftenraster ändern, während der Workflow im Projektmappen-Explorer ausgewählt ist (siehe Abbildung 9). Klicken Sie dann auf Fertig stellen.

    Abbildung 9: Das Eigenschaftsraster des Workflows

    Eigenschaftenraster des Workflows

  5. Konfigurieren Sie schließlich Ihren SharePoint Server für die Verwaltung ausgehender E-Mails über den SMTP-Dienst. Anweisungen finden Sie unter Konfigurieren ausgehender E-Mails für eine SharePoint-Farm. Dies ist nötig, damit vom Workflow E-Mail-Benachrichtigungen im Zusammenhang mit Workflowaufgaben gesendet werden können.

Implementieren der Workflowlogik

Nachdem wir unseren SharePoint Server eingerichtet und den grundlegenden Workflow erstellt haben, können wir nun die Workflowlogik entwerfen.

  1. Öffnen Sie den Workflow-Designer, indem Sie im Projektmappen-Explorer auf das Workflow-Projektelement doppelklicken. Sie sehen nun die Workflow-Designeroberfläche (sowie die Workflow-Toolbox). Der Designer wird mit einer anfänglichen Workflowphase namens Sequenz aufgefüllt.

  2. Unser erster Schritt besteht darin, die LookupSPListItem-Aktivität aus der Toolbox zu erfassen (siehe Abbildung 10) und in der Sequenzphase auf der Designeroberfläche zu löschen. Wir verwenden diese Aktivität, um jederzeit die status des Dokuments abzurufen, die die LookupSPListItem-Aktivität als DynamicValue-Objekt zurückgibt, das eine Reihe von SharePoint-Listenelementeigenschaften als Schlüssel-Wert-Paare enthält.

    Abbildung 10: "LookupSPListItem"-Aktivitätsauswahl. LookupSPListItem-Aktivitätsauswahl

  3. Zum Konfigurieren der LookupSPListItem-Aktivität klicken Sie zunächst im Designer darauf, um sie auszuwählen. Dadurch wird das Eigenschaftenraster für die Aktivität aktiviert.

  4. Konfigurieren Sie die LookupSPListItem-Aktivität mithilfe der Kombinationsfelder im Eigenschaftenraster so, dass für ItemId das aktuelle Element und als ListId die aktuelle Liste verwendet wird, wie in Abbildung 11 dargestellt.

    Abbildung 11: Konfigurieren von Eigenschaften von "LookupSPListItem"

    Festlegen von Eigenschaften für LookupSPListItem

  5. Klicken Sie auf der Kachel der LookupSPListItem-Aktivität auf den Link Eigenschaften abrufen. Dadurch werden zwei wichtige Schritte für Sie ausgeführt:

    1. Zunächst wird eine Variable vom Typ DynamicValue erstellt und an das Ausgabeargument (namens Result) der LookupSPListItem-Aktivität gebunden. In dieser Variablen werden die Eigenschaften des Listenelements gespeichert.
    2. Zweitens wird eine neue Aktivität namens GetDynamicValueProperties hinzugefügt (siehe Abbildung 12) und die neu erstellte Variable DynamicValue als Eingabeargument der neuen Aktivität festgelegt. Diese Aktivität ermöglicht das Extrahieren der Listenelementeigenschaften aus der DynamicValue-Variablen.
  6. Klicken Sie in der Aktivität GetDynamicValueProperties auf Definieren... , um ein Dialogfeld zu öffnen, in dem Sie die Eigenschaften auswählen können, die Sie extrahieren möchten. Informationen zum Auswählen von Eigenschaften finden Sie in Abbildung 12, in der ein Teil der Designeroberfläche mit dem geöffneten Dialogfeld Eigenschaften zusammengeführt wird.

    Abbildung 12. Auswählen der zu extrahierenden DynamicValue-Eigenschaften

    Festlegen zu extrahierender Eigenschaftenwerte

  7. Wählen Sie für Entitätstyp die Option Listenelement von Entwurfsdokumenten aus.

  8. Klicken Sie im Datenraster in der Spalte Pfad auf Eigenschaft erstellen , um ein Kombinationsfeld zu öffnen, das verfügbare Eigenschaften für Listenelemente in der Bibliothek Entwurfsdokumente enthält. Select Document Status from the combo box.

  9. Klicken Sie in der nächsten Zeile im Datenraster erneut auf Eigenschaft erstellen . Wählen Sie dieses Mal im Kombinationsfeld genehmigend aus.

  10. Klicken Sie nun auf den Link Variablen auffüllen im Dialogfeld. Dies erstellt eine Variable vom entsprechenden Datentyp für jede Zeile und weist sie der Zuweisen zu-Spalte des Datenrasters zu, wie in Abbildung 13 dargestellt.

    Abbildung 13. Abrufen der Eigenschaften "Dokumentstatus" und "Genehmigende Person"

    Abrufen von Dokumentstatus- und Genehmigereigenschaften

  11. Wir verfügen nun über die listenelement-Werte, die wir benötigen. Der nächste Schritt besteht darin, den Workflow einzurichten, um zu überprüfen, ob das Dokument "zur Überprüfung bereit" ist, und die entsprechende Aktion auszuführen, wenn dies der Vorgang ist.

  12. Ziehen Sie die If-Aktivität aus der Toolbox auf die Oberfläche des Workflow-Designers. (Sie finden die If-Aktivität im Abschnitt Ablaufsteuerung der Toolbox.)

  13. Legen Sie die If-Bedingung auf DocumentStatus.Equals("Ready for Review") fest, wie in Abbildung 14 dargestellt.

    Abbildung 14. Erstellen einer WENN/DANN-Klausel zum Auslösen einer Aufgabe

    Erstellen einer WENN/DANN-Klausel zum Auslösen der Aufgabe

  14. Als Nächstes ziehen Sie aus dem Abschnitt SP - Aufgabe der Toolbox eine SingleTask-Aktivität in das Then-Feld Ihrer If-Aktivität. Tatsächlich haben Sie den Workflow so konfiguriert, dass Wenn das Dokument zur Überprüfung bereit ist, Dann diese Aufgabe abgeschlossen wird.

  15. Im nächsten Schritt wird die soeben erstellte Aufgabe mithilfe des Konfigurationsdialogfelds aus Abbildung 15 konfiguriert.

    Abbildung 15. Dialogfeld für die Aufgabenkonfiguration

    Dialogfeld für die Aufgabenkonfiguration

  16. Zuerst weisen wir die Aufgabe einer genehmigenden Person zu. Klicken Sie hierzu auf den Link Konfigurieren in der SingleTask-Aktivitätskachel.

  17. Set the Assigned to: field to "Approver".

  18. Beachten Sie, dass das Feld Aufgabentitel: automatisch mit „Workflowaufgabe“ ausgefüllt wird.

  19. Geben Sie im Feld Text: eine Nachricht mit Anweisungen für die genehmigende Person ein, wie z. B. "Bitte überprüfen Sie dieses Dokument, um seine Veröffentlichung zu genehmigen."

  20. Klicken Sie auf OK, um zu speichern.

    Beachten Sie, dass zu diesem Zeitpunkt ein Überprüfungsfehler für die SingleTask-Aktivität angezeigt wird. Sehen Sie, während die SingleTask-Kachel ausgewählt ist, die AssignedTo-Eigenschaft im Eigenschaftenraster an, und beachten Sie, dass sie ein Fehlersymbol aufweist. Zeigen Sie auf den Eigenschaftennamen, um eine QuickInfo anzuzeigen, die das Problem beschreibt. Wir sehen, dass die AssignedTo-Eigenschaft einen String-Wert erwartet, die Variable Approver jedoch vom Datentyp Int32 ist.

    Um diesen Fehler zu beheben, wandeln Sie die Variable in den Datentyp String um, indem Sie in der AssignedTo-Zeile des Eigenschaftenrasters ".ToString()" an "Approver" anfügen, wie in Abbildung 16 dargestellt.

    Abbildung 16. Umwandeln der Variablen "Approver" in den Datentyp "String" im Eigenschaftenraster

    Umwandeln der Variablen

    An diesem Punkt in dieser exemplarischen Vorgehensweise haben Sie eine Workflowaufgabe erstellt und konfiguriert, die zwei Dinge umfasst: Es wird ein zu überprüfendes Dokument festgelegt und eine E-Mail an den mit der Aufgabe Beauftragten (in diesem Fall "Genehmigende Person") gesendet mit der Benachrichtigung, dass eine Aufgabe zugewiesen wurde und Aktionen erwartet werden.

  21. Sehen wir uns das Eigenschaftenraster für die SingleTask-Aktivität an. Führen Sie einen Bildlauf zum Ende des Eigenschaftenrasters durch, und beachten Sie, dass der Abschnitt Ausgabe zwei Eigenschaften Outcome und TaskItemId enthält, die Ausgabeargumente sind.

    Notieren Sie den Namen der Outcome-Variablen: outcome_0 (oder ähnlich). Wir verwenden diese Variable, um das Ergebnis der Aufgabe zu überprüfen, d. h., ob die genehmigende Person das Dokument genehmigt oder abgelehnt hat.

    Hinweis

    Das Outcome-Argument gibt einen Int32-Wert entsprechend dem Index des Ergebnisses zurück, d. h. 0 für „Genehmigt“ und 1 für „Abgelehnt“. Diese ganze Zahlen sind die Standardwerte, die in der Out-Of-The-Box-SharePoint-Websitespalte mit dem Namen „Ergebnis der Aufgabe“ bereitgestellt werden.

  22. Damit der Workflow das Ergebnis der Aufgabe überprüfen kann, müssen wir nun eine weitere If-Aktivität hinzufügen und diese nach der SingleTask-Aktivität platzieren, jedoch im Bereich Dann , wie in Abbildung 17 dargestellt. Durch Festlegen der If-Bedingung auf " outcome_0 == 0" wird angegeben, ob das Dokument genehmigt wurde.

    Abbildung 17. Hinzufügen der IF-Aktivität zum Überprüfen des Aufgabenstatus

    Verwenden der IF-Aktivität zum Prüfen des Aufgabenstatus

  23. If the approver has set the task to "Approved," we update the document status to "Approved for Publishing," then copy the document file to the Published Documents library. Wenn die genehmigende Person das Dokument abgelehnt hat, muss dem Dokument hingegen der Dokumentstatus "Abgelehnt" zugewiesen werden.

  24. Ziehen Sie in dieser neuen If-Aktivität eine UpdateListItem-Aktivität in das Then-Feld.

  25. Konfigurieren Sie die UpdateListItem-Aktivität im zugehörigen Eigenschaftenraster so, dass ItemId auf "(Aktuelles Element)" und ListId auf "(Aktuelle Liste)" festgelegt wird, wie in Abbildung 18 dargestellt.

  26. Klicken Sie als Nächstes bei ausgewählter UpdateListItem-Aktivität auf die Schaltfläche mit den Auslassungspunkten (...) neben dem Feld ListItemPropertiesDynamicValue im Eigenschaftenraster. Dadurch wird ein Dialogfeld geöffnet, in dem Sie die Listenelementeigenschaften angeben können, die Sie aktualisieren möchten.

    Abbildung 18. Festlegen der zu aktualisierenden Listenelementeigenschaften

    Angeben zu aktualisierender Listenelementeigenschaften

  27. Verwenden Sie im Dialogfeld zuerst das Kombinationsfeld, um Entitätstyp auf Listenelement von Entwurfsdokumenten (siehe Abbildung 18) festzulegen. Klicken Sie dann im Datenraster auf Eigenschaft erstellen , und wählen Sie in der Dropdownliste "Dokumentstatus" aus. Geben Sie dann unter der Spalte Wert "Genehmigt für Veröffentlichung" (einschließlich Anführungszeichen) ein, und klicken Sie auf OK.

  28. Ziehen Sie aus dem Then-Bereich der aktuellen If-Aktivität eine CopyItem-Aktivität direkt unter die UpdateListItem-Aktivität, wie in Abbildung 19 dargestellt.

    Abbildung 19. Hinzufügen einer "CopyItem"-Aktivität zum Workflow

    Hinzufügen einer

    Konfigurieren Sie dann die Eigenschaften der CopyItem-Aktivität im Eigenschaftenraster, wie in Abbildung 20 dargestellt. Eigenschaftswerte sind hervorgehoben.

    Abbildung 20. Konfigurieren der "CopyItem"-Aktivität

    Konfigurieren von Eigenschaften der

    Hinweis

    Für diese exemplarische Vorgehensweise werden wir davon ausgehen, dass alle unsere veröffentlichten Dokumente aus der Bibliothek Entwurfsdokumente stammen. Daher müssen wir uns nicht um doppelte Dateinamen kümmern.

  29. Schließlich müssen wir eine Aktivität hinzufügen, um den Fall zu behandeln, dass der Prüfer das Dokument ablehnt. Dazu fügen wir eine UpdateListItem-Aktivität im Else-Bereich der aktuellen If-Aktivität hinzu. Konfigurieren Sie diese UpdateListItem-Aktivität genau so wie die vorherige in Schritt 9(c), allerdings legen wir den Dokumentstatus jetzt auf "Abgelehnt" fest, wie in Abbildung 21 dargestellt.

    Abbildung 21. Konfigurieren von Eigenschaften der "UpdateListItem"-Aktivität für abgelehnte Dokumente

    Konfigurieren von

Damit ist das Erstellen eines SharePoint-Dokumentgenehmigungs-Workflows abgeschlossen. Der vollständige Workflow ist in Abbildung 22 dargestellt.

Abbildung 22. Abgeschlossener SharePoint-Dokumentgenehmigungs-Workflow

Abgeschlossener Dokumentgenehmigungs-Workflow

Packen und Bereitstellen des Workflows

Die folgenden Ressourcen bieten Hilfestellung für das Packen und Bereitstellen Ihres Workflows als SharePoint-Add-In:

Achtung

SharePoint-Add-Ins mit integrierten Workflows (die Listen im übergeordneten Web zugeordnet sein können) werden von normalen Workflow-Apps unterschieden, indem das folgende Tag in der Datei im App-Paket in workflowmanifest.xml geändert wird:

<SPIntegratedWorkflow xmlns="http://schemas.microsoft.com/sharepoint/2014/app/integratedworkflow">
    <IntegratedApp>true</IntegratedApp>
</SPIntegratedWorkflow>

Siehe auch