Exemplarische Vorgehensweise: Importieren eines wiederverwendbaren Workflows aus SharePoint-Designer in Visual Studio

In dieser exemplarischen Vorgehensweise wird veranschaulicht, wie ein wiederverwendbarer, im SharePoint-Designer 2010 erstellter Workflow in ein Visual Studio-SharePoint-Workflowprojekt importiert wird.

Im SharePoint-Designer erstellte Workflows oder deklarative Workflows bestehen nicht aus Code, sondern aus XML-Anweisungen. Der SharePoint-Designer 2010 führt wiederverwendbare Workflows ein, die portable, deklarative Workflows sind, die von anderen Listen in SharePoint-Websites verwendet werden können.

In Visual Studio 2010 erstellte Workflows, z. B. sequenzielle und Zustandsautomatworkflows, werden als Codeworkflows bezeichnet. Codeworkflows bestehen aus XML-Dateien und Codemodulen, in denen Benutzer das Verhalten des Workflows anpassen können.

Mit Visual Studio 2010 können Sie wiederverwendbare, im SharePoint-Designer 2010 erstellte Workflows importieren und zur Verwendung in den SharePoint-Websites in Codeworkflows konvertieren.

Diese exemplarische Vorgehensweise enthält die folgenden Aufgaben:

  • Erstellen eines einfachen, wiederverwendbaren Workflows im SharePoint-Designer.

  • Exportieren des wiederverwendbaren Workflows aus SharePoint Designer in eine WSP-Datei und nach SharePoint.

  • Importieren der WSP-Datei in Visual Studio mit dem Projekttyp Wiederverwendbaren Workflow importieren.

  • Ändern des Workflows durch Hinzufügen von Code.

  • Verwenden des importierten Workflows in einer SharePoint-Website.

Tipp

Ihr Computer zeigt möglicherweise für einige der Elemente der Visual Studio-Benutzeroberfläche in der folgenden Anleitung andere Namen oder Standorte an. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Visual Studio-Einstellungen.

Vorbereitungsmaßnahmen

Zum Durchführen dieser exemplarischen Vorgehensweise benötigen Sie die folgenden Komponenten:

Erstellen von SharePoint-Zielunterwebsites

Zunächst erstellen Sie zwei neue SharePoint-Unterwebsites: eine zum Hosten der wiederverwendbaren Workflows des SharePoint-Designers und eine zum Hosten der konvertierten Workflows.

So erstellen Sie SharePoint-Unterwebsites

  1. Klicken Sie im SharePoint-Designer 2010 im Menü Datei auf Website öffnen.

  2. Wechseln Sie im Dialogfeld Website öffnen zu einer SharePoint-Website, in der den Workflow erstellen möchten, oder verwenden Sie den Standardwert http://system name/, und klicken Sie dann auf Öffnen.

    Die Homepage wird angezeigt.

  3. Klicken Sie im Abschnitt Unterwebsites auf Neu.

  4. Wählen Sie im Dialogfeld Neu im linken Bereich SharePoint-Vorlagen aus, und wählen Sie im rechten Bereich Teamwebsite aus.

  5. Ersetzen Sie im Feld Geben Sie den Standort der Website an das Wort Unterwebsite in der URL durch "SPD1", und klicken Sie dann auf OK.

    Hiermit wird die neue Unterwebsite im SharePoint-Designer geöffnet. Schließen Sie diese Instanz des SharePoint-Designers, und wechseln Sie wieder zur ersten Instanz (der Website der obersten Ebene).

  6. Wiederholen Sie die Schritte 3 bis 5, um die zweite Unterwebsite zu erstellen. Ersetzen Sie diesmal das Wort Unterwebsite in URL durch "SPD2".

Erstellen eines wiederverwendbaren SharePoint-Designerworkflows

Da SharePoint keine wiederverwendbaren Workflows einschließt, die Sie für dieses Beispiel verwenden können, erstellen Sie einen. Wenn in diesem einfachen Workflow ein Benutzer eine neue Aufgabe mit einem bestimmten Titel in der Aufgabenliste eingibt,wird diesem Benutzer die Aufgabe zugewiesen.

So erstellen Sie einen wiederverwendbaren SharePoint-Designerworkflow

  1. Klicken Sie im Abschnitt Unterwebsites auf die Website SPD1, um sie zu ändern.

  2. Klicken Sie im Menüband auf Wieder verwendbarer Workflow.

    Der Assistent zum Erstellen von wiederverwendbaren Workflows wird angezeigt.

  3. Geben Sie den Namen "SPD Task Workflow" in das Feld Name ein.

  4. Klicken Sie im Feld Inhaltstyp auf Aufgabe und dann auf OK.

    Der Workflow wird im SharePoint-Workflowdesigner geöffnet.

  5. Stellen Sie sicher, dass Schritt 1 ausgewählt ist, und klicken Sie im Menüband auf die Schaltfläche Bedingung. Wählen Sie dann Wenn das aktuelle Elementfeld gleich Wert ist aus der Liste der Bedingungen aus.

    Dadurch wird eine neue Bedingung mit dem Namen Wenn Feld gleich Wert hinzugefügt.

  6. Klicken Sie in der Bedingung Wenn Feld gleich Wert auf den Link Feld.

  7. Wählen Sie in der Liste der Werte Titel aus.

  8. Klicken Sie in der Bedingung Wenn Feld gleich Wert auf den Link Wert.

  9. Geben Sie im Feld New task ein.

    Die Bedingungsanweisung lautet jetzt Aktuelles Element:Wenn Titel gleich New task.

  10. Klicken Sie auf die Zeile unter der Bedingungsanweisung, klicken Sie im Menüband auf die Schaltfläche Aktion, und wählen Sie dann in der Liste der Aktionen die Option Feld im aktuellen Element festlegen aus.

  11. Klicken Sie in der Aktion Festlegen von Feld auf Wert auf den Link Feld, und wählen Sie dann Zugewiesen an aus.

  12. Klicken Sie in der Aktion Festlegen von Feld auf Wert auf den Link Wert, wählen Sie Benutzer, der den aktuellen Eintrag erstellt hat aus der Liste der vorhandenen Benutzer und Gruppen aus, klicken Sie auf die Schaltfläche Hinzufügen und dann auf OK.

    Die Aktionsanweisung lautet jetzt Festlegen von Zugwiesen auf Aktuelles Element:CreatedBy.

Speichern und Bereitstellen des wiederverwendbaren Workflows

Da Visual Studio nur WSP-Dateien importieren kann, müssen Sie den wiederverwendbaren Workflow als WSP-Datei speichern und in SharePoint bereitstellen, bevor sie ihn in Visual Studio importieren können.

Wichtig

Wenn beim Ausführen der folgenden Prozedur ein Laufzeitfehler auftritt, müssen Sie die Prozedur auf einem System ausführen, das über Zugriff auf die SharePoint-Website verfügt.

So speichern und stellen Sie den wiederverwendbaren Workflow bereit

  1. Klicken Sie am oberen Rand des SharePoint-Designers auf die Schaltfläche Speichern, um den Status zu speichern, und klicken Sie dann auf die Schaltfläche Veröffentlichen, um den Workflow auf der SharePoint-Website SPD1 bereitzustellen.

  2. Klicken Sie im Navigationsbereich auf Workflows.

  3. Klicken Sie unter Wiederverwendbarer Workflow auf SPD-Aufgabenworkflow.

  4. Klicken Sie im Menüband auf Als Vorlage speichern, um den Workflow als WSP-Datei zu speichern.

  5. Öffnen Sie die SharePoint-Website SPD1 in einem Browser, um die WSP-Datei in SharePoint anzuzeigen.

  6. Klicken Sie auf der Schnellstartleiste auf Bibliotheken.

  7. Klicken Sie im Abschnitt Dokumentbibliotheken auf Websiteobjekte.

    Die Datei SPD-Aufgabenworkflow wird zusammen mit anderen Websiteobjekten aufgeführt.

  8. Klicken Sie auf den Namen in der Liste. Das Dialogfeld Dateidownload wird angezeigt.

  9. Klicken Sie im Dialogfeld Dateidownload auf die Schaltfläche Speichern, um die WSP-Datei auf dem System zu speichern.

Importieren der WSP-Datei in Visual Studio

Importieren Sie die WSP-Datei mit dem Projekt Wiederverwendbaren Workflow importieren in Visual Studio. Dieses Projekt konvertiert den Workflow von einem wiederverwendbaren, deklarativen Workflow in einen Codeworkflow. Nachdem der Workflow konvertiert wurde, verwenden Sie Code, um sein Verhalten zu ändern.

So importieren Sie einen Workflow aus einer WSP-Datei und ändern diesen

  1. Zeigen Sie in Visual Studio das Dialogfeld Neues Projekt an, indem Sie im Menü Datei auf Neu zeigen und dann auf Neues Projekt klicken.

  2. Erweitern Sie unter Visual C# oder Visual Basic den Knoten SharePoint, und klicken Sie dann auf 2010.

  3. Klicken Sie im Bereich Vorlagen auf Wiederverwendbaren Workflow importieren, übernehmen Sie den Namen WorkflowImportProject1 des Projekts, und klicken Sie dann auf OK.

    Der Assistent zum Anpassen von SharePoint wird angezeigt.

  4. Geben Sie auf der Seite Site und Sicherheitsebene für Debugging angeben die URL für die zweite SharePoint-Unterwebsite ein, die Sie zuvor erstellt haben: http://system name/SPD2.

  5. Lassen Sie im Abschnitt Wie lautet die Vertrauensebene für diese SharePoint-Lösung? die Auswahl Als Farmlösung bereitstellen unverändert.

    Weitere Informationen über Sandkastenlösungen im Vergleich zu Farmlösungen finden Sie in Überlegungen zu Sandkastenlösungen.

  6. Wechseln Sie auf der Seite Neue Projektquelle angeben zu dem Speicherort im System, an dem Sie zuvor die WSP-Datei gespeichert haben, und klicken Sie dann auf Weiter.

    Tipp

    Wenn Sie auf dieser Seite auf Fertig stellen klicken, werden alle verfügbaren Elemente in der WSP-Datei importiert.

    Dadurch wird eine Liste wiederverwendbarer Workflows angezeigt, die zum Importieren verfügbar sind.

  7. Wählen Sie im Feld Zu importierende Elemente auswählen den Workflow SPD Task Workflow aus, und klicken Sie dann auf Fertig stellen.

    Nach Abschluss des Importvorgangs wird ein Projekt mit dem Namen WorkflowImportProject1 erstellt, das einen Workflow SPD_Workflow_TestFT enthält. Dieser Ordner enthält die Definitionsdatei "Elements.xml" des Workflows und die Workflow-Designerdatei (.xoml). Der Designer enthält zwei Dateien: die Regeldatei (.rules) und die Code-Behind-Datei (entweder .cs oder .vb, abhängig von der Programmiersprache des Projekts).

  8. Legen Sie das Workflowprojektelement WorkflowImportProject1 als Startelement fest.

    Dadurch wird die Liste direkt angezeigt, wenn Sie das Projekt debuggen.

  9. Da beim Projekttyp Wiederverwendbaren Workflow importieren keine Zuordnungseigenschaftswerte für den importierten Workflow importiert werden, müssen Sie diese Werte eingeben. Gehen Sie dazu wie folgt vor:

    1. Klicken Sie im Projektmappen-Explorer auf das Workflowprojektelement SPD_Workflow_TestFT.

    2. Klicken Sie neben der Eigenschaft Zielliste (oder einer anderen Eigenschaft mit einer Schaltfläche mit Auslassungspunkten) auf die Schaltfläche mit den Auslassungspunkten (Auslassungszeichen im ASP.NET Mobile-Designer).

    3. Füllen Sie die fehlenden Werte im Assistenten zum Anpassen von SharePoint aus. Klicken Sie anschließend auf Fertig stellen.

  10. Klicken Sie mit der rechten Maustaste auf die XOML-Datei, und wählen Sie Ansicht-Designer aus, um den importierten Workflow im Workflow-Designer anzuzeigen.

  11. Ziehen Sie in der Toolbox im Abschnitt Windows Workflow v3.0 eine Code-Aktivität in den Designer, und legen Sie sie unter der Aktivität SequenceActivity1 ab.

    Hiermit wird dem Workflow-Designer eine Aktivität mit dem Namen CodeActivity1 hinzugefügt. In dieser Aktivität fügen Sie eine Codeaktion hinzu, die in der Ankündigungsliste eine Ankündigung erstellt, wenn der Benutzer den Workflow startet.

  12. Doppelklicken Sie auf CodeActivity1, um einen Ereignishandler zu generieren und den Code anzuzeigen.

  13. Fügen Sie unter den vorhandenen using- oder Imports- Anweisungen Folgendes hinzu:

    Imports Microsoft.SharePoint
    Imports System
    
    using Microsoft.SharePoint;
    using System;
    
  14. Ersetzen Sie codeActivity1_ExecuteCode durch Folgendes:

    Private Sub codeActivity1_ExecuteCode(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Try
            ' Get reference to SharePoint site.
            Dim site As SPSite = New SPSite("http://MyServer")
            Dim web As SPWeb = site.OpenWeb("SPD2/")
            ' Get reference to Announcements list.
            Dim announcementsList As SPList = web.Lists("Announcements")
            ' Add announcement to Announcements list for the Task.
            Dim oListItem As SPListItem = announcementsList.Items.Add
            oListItem("Title") = ("Assigned task on " + DateTime.Now.ToString)
            oListItem.Update()
        Catch err As Exception
            Console.WriteLine(("Error: " + err.ToString))
        End Try
    End Sub
    
    private void codeActivity1_ExecuteCode(object sender, System.EventArgs e)
    {
    
        try
        {
            // Get reference to SharePoint site.
            SPSite site = new SPSite("http://MyServer");
            SPWeb web = site.OpenWeb("SPD2/");
            // Get reference to Announcements list.
            SPList announcementsList = web.Lists["Announcements"];
    
            // Add announcement to Announcements list for the Task.
            SPListItem oListItem = announcementsList.Items.Add();
            oListItem["Title"] = "Assigned task on " + DateTime.Now.ToString();
            oListItem.Update();
        }
    
        catch (Exception err)
        {
            Console.WriteLine("Error: " + err.ToString());
        }        
    }
    

Bereitstellen des Projekts und Zuordnen des Workflows

Führen Sie nun WorkflowImportProject1 zum Bereitstellen auf einer SharePoint-Website aus, und ordnen Sie den Workflow anschließend der Aufgabenliste zu, um den geänderten, konvertierten Workflow anzuzeigen und zu testen.

So stellen Sie das Projekt bereit und ordnen den Workflow zu

  1. Drücken Sie in Visual Studio die Taste F5, um das konvertierte Workflowprojekt auszuführen und bereitzustellen.

  2. Klicken Sie auf der Schnellstartleiste auf Aufgaben, um die Aufgabenliste anzuzeigen.

  3. Klicken Sie im Menüband Listentools auf Elemente und dann auf die Schaltfläche Neues Element.

  4. Geben Sie im Dialogfeld Aufgaben - Neues Element im Feld Titel den Titel "New task" ein, und klicken Sie dann auf Speichern.

  5. Zeigen Sie die Seite Listeneinstellungen an, indem Sie im Menüband Listentools auf Liste und dann auf Listeneinstellungen klicken.

  6. Klicken Sie im Abschnitt Berechtigungen und Verwaltung auf den Link Workfloweinstellungen.

    Die Seite Workflow hinzufügen wird angezeigt.

  7. Wählen Sie in der Liste Workflow den Eintrag WorkflowImportProject1 - SPD Workflow Test aus.

  8. Geben Sie im Feld Name den Namen "SPD Workflow Test ein, und klicken Sie dann auf OK.

  9. Klicken Sie auf der Schnellstartleiste auf Aufgaben.

  10. Klicken Sie auf den Dropdownpfeil neben Neue Aufgabe, und wählen Sie Workflows aus.

  11. Klicken Sie im Abschnitt Neuen Workflow starten auf den Link für SPD Workflow Test, und klicken Sie dann auf Start, um den Workflow zu initiieren.

    Tipp

    Alternativ kann ein Workflow automatisch einer Liste zugeordnet werden, indem Sie den Workfloweinstellungs-Assistenten ausführen und den Workflow auf automatische Zuordnung festlegen.

    Beachten Sie, dass der Workflow zwei Aktionen ausführt: Ihr Name wird in der Spalte Zugewiesen an der Aufgabe angezeigt, und in der Liste Ankündigungen wird eine Ankündigung angezeigt.

Siehe auch

Konzepte

Importieren von Elementen aus einer vorhandenen SharePoint-Website

Weitere Ressourcen

Entwickeln von SharePoint-Lösungen

Erstellen von wiederverwendbaren Steuerelementen für Webparts oder Anwendungsseiten