• home
    • news & events
    • blog
  • über uns
    • projekte und referenzen
    • partner
    • produkte & technologien
    • offene jobs / stellen
    • veröffentlichungen
  • dienstleistungen & services
    • software design & architektur
    • software entwicklung
    • beratung / consulting
    • training, kurse und workshops
  • angebote
    • quick-starts
    • trainings und kurse
    • modulare sharepoint 2010 workshops
  • kontakt
Wir bieten SharePoint und .NET
Kompetenz, Erfahrung und Know-How:
"1stQuad guaranteed."
Diesen Blog abonnieren
Subscribe in NewsGator Online Add to My AOL
Add to Google Reader or Homepage Add to netvibes

Aktuelle Posts

Quick-Tipp: Publishing Site Settings
Update: Dynamisches Wiki Inhaltsverzeichnis
Chart Part für SharePoint 2010
SharePoint Content DB Migration -> Access denied
Konfigurieren von „Gefällt mir“ und Kategorien und Notizen

Archiv

Januar 2012 (4)
Dezember 2011 (2)
November 2011 (10)
September 2011 (3)
August 2011 (7)
Juli 2011 (1)
Juni 2011 (3)
Mai 2011 (6)
April 2011 (5)
März 2011 (8)
Februar 2011 (8)
Januar 2011 (4)
Dezember 2010 (5)
November 2010 (7)
September 2010 (6)
August 2010 (2)
Juli 2010 (11)
Juni 2010 (13)
Mai 2010 (11)
April 2010 (4)
März 2010 (6)
Februar 2010 (2)
Januar 2010 (6)
Dezember 2009 (4)
November 2009 (13)
Oktober 2009 (17)
September 2009 (2)
Juli 2009 (2)
März 2009 (2)
Januar 2009 (1)

1stQuad ist Microsoft Certified Gold Partner und bietet SharePoint und .NET Produkt- und Projekt-Kompetenz, -Erfahrung und -Know-How für Entwicklung, Architektur, Beratung, Schulung, Training und Kurse in Schweiz sowie Deutschland und Östereich.
1stQuad ist MatchPoint Partner und bietet MatchPoint Produkt- und Projekt-Kompetenz, -Erfahrung und -Know-How für Entwicklung, Architektur, Beratung, Schulung, Training und Kurse in Schweiz sowie Deutschland und Östereich.
1stQuad ist Nintex Partner und bietet Nintext SharePoint Workflows Produkt- und Projekt-Kompetenz, -Erfahrung und -Know-How für Entwicklung, Architektur, Beratung, Schulung, Training und Kurse in Schweiz sowie Deutschland und Östereich.
1stQuad ist Balesio Gold Partner und bietet SharePoint FILEMinimizer Produkt- und Projekt-Kompetenz, -Erfahrung und -Know-How für Entwicklung, Architektur, Beratung, Schulung, Training und Kurse in Schweiz sowie Deutschland und Östereich.
1stQuad Solutions ist Kentico Certified Solution Partner und bietet Produkt- und Projekt-Kompetenz, -Erfahrung und -Know-How für Entwicklung, Architektur, Beratung, Schulung, Training und Kurse in Schweiz sowie Deutschland und Östereich.
© 2011 1stQuad Solutions
Alle Rechte vorbehalten
> Impressum
Wir bieten Microsoft SharePoint und .NET Projekt- und Produkt-Know-how, Kompetenz und Erfahrung für Entwicklung, Architektur, Beratung, Schulung, Training und Kurse in Zürich, Bern, Basel, Schweiz sowie Deutschland und Östereich.

Blog > Juli 2010

State Machine Workflow mit InfoPath Formularen für SharePoint 2010 – Teil 2

Im zweiten Teil der Workflow Serie geht es um das Anlegen eines Visual Studio Projektes für Share-Point 2010 Workflows und dem initialen Test des Workflows.

Veröffentlicht am 27.07.2010 00:35:00 von Reiner Ganser mit 0 Kommentar(en)

Teil 2: Visual Studio Projekt anlegen und Test des minimalen Workflows

 Diesen Blog-Post als PDF herunterladen

   Sourcecode
 
Nachdem wir gesehen haben, wie der Prozess funktioniert, können wir im zweiten Teil damit anfangen, den Workflow umzusetzen.
Also nochmal eine kurze Fingergymnastik und dann Visual Studio.NET aufrufen. Neues Projekt aus-wählen. In unserem Fall wählen wir die Projektkategorie State Machine Workflow unter SharePoint 2010. Wichtig ist, dass man das .NET Framewrok 3.5 auswählt:

 
Der nächste Schritt definiert, auf welche Website Sammlung der Workflow aus Visual Studio heraus aktiviert wird. Man kann diese Daten im Nachhineis jederzeit ändern. Interessant ist an dieser Stelle jedoch, dass man Visual Studio Workflows nur als Farm Solution ausrollen kann:

 
Beim Klick auf Next, ruft Visual Studio die Informationen der angegebenen Website ab. Diese werden im übernächsten Schritt für weitere Auswahlen angeboten. Zunächst kann man sich entscheiden, ob man einen Site- oder Listen Workflow benutzen möchte. Der grösste Unterschied liegt dabei darin, dass man Site Workflow ohne ein bestehendes Element auf Website Ebene starten kann, während man einen Listen Workflow nur an einem Element, Document Set oder Ordner starten kann. In unserem Fall braucnen wir einen Listen Workflow, da wir diesen später an einem Dokument starten wollen. Es macht zusätzlich Sinn, gleich an dieser Stelle einen sinnvollen Namen zu wählen. Dann vergisst man dies später nicht:

 
Im abschliessenden Schritt kann man angeben, ob der Workflow zu Testzwecken bereits an eine betsimmte Liste gebunden wird und ob die Workflowverlaufs- und Aufgabenliste verwendet wird. In unseren Fall will ich das tun. Ich zeige aber später die Stelle, an der man das wieder ändern kann:

 
Im abschliessenden Schritt kann angegeben werden, wie der Workflow gestartet werden soll. In unserem Fall soll der Workflow nur manuell gestartet werden. Schliesslich muss der Benutzer sein Dokument erst mal fertiggestellt haben, bevor der Workflow losläuft. Und das weiss der Benutzer ja wahrscheinlich selbst am Besten:

 
Nach dem Klick auf Finish landet man im Workflow Designer von Visual Studio. Die nächsten Schritte, die man nun durchführen sollte sind wie folgt:
  1. Umbenennen des Workflows auf einen sinnvollen Namen. In unserem Fall verwenden wir SMApproval
  2. Bau eines minimalen Workflows. Die Umsetzung enthält nur einen Start- und einen End-Zustand. Nach dem Start soll eine Meldung ins Workflow Verlaufsprotokoll ge-schrieben werden. Hat man dies umgesetzt, wird der Workflow ausgerollt und getes-tet. Damit stellt man sicher, dass zumindest die grundlegenede Funktionalität gegeben ist. Es ist immer sehr ärgerlich, wenn man erst viel später feststellt, dass der Workflow aus Gründen einer defekten Infrastruktur nicht läuft. Die Suche ist zu einem späteren Zeitpunkt aufwendiger, weil bereits eine gewisse Komplexität erreicht wurde.
Für die Umsetzung des minimalen State Machine Workflows brauchen wir zunächst einen neuen Zusatnd. Hierzu zieht man das State Activity auf den Designer:

 
Eines der wichtigstane Dinge bei der Workflwo Entwicklung in Visual Studio ist die Namensgebeung für die Zustände, Activities, Eigenschaften und Felder. Deshalb benennen wird den neuen Zusatnd erst man um in stateFinal:

 
Dies kann man in den Eigenschaften der State Activity machen.
Als nächstes kennzeichnen wir den neuen Zustand (stateFinal) als Endzustand. Dies erreicht man durch einen Rechtsklick auf den Zustand und Auswahl von Set as Completet State:

 
Dadurch ändert sich auch das Icon:

 
Nun müssen wir die beiden noch miteinander verbinden. Dazu macht man einen Doppelklick auf eventDrivenActivity1 in Workflow1InitialState. Man gelangt dadurch in die Innereihen des Start Zustandes:

 
In der eventDrivenActivity1 ist bereits eine Activity (onWorkflowActivated1) enthalten. Diese wird von SharePoint 2010 benötigt und sollte auf keinen Fall gelöscht werden. Es sei denn man will dass der Workflow von SharePoint aus nicht mehr aufgerufen werden kann ;-)

Was wir noch brauchen, ist eine Activity mit der wir etwas in die Workflows Verlaufsliste schreiben können. Hierzu gibt es in der Toolbox von Visual Studio im Abschnitt SharePoint Workflows die Acti-vity LogToHistoryListActivity:

 
Diese kann man unter die Activity onWorkflowActivated1 per Drag&Drop ziehen:

 
Um unseren Workflow zu testen, schreiben wir eine kleine Meldung in die Workflow Verlaufsliste. Das Activity LogToHistoryList  bietet hierzu 2 Eigenschaften an (HistoryDescription und HistoryOutcome). Ersteres kann man zur Kategorisierung verwenden, den eigentlichen Text, den man schreiben will gibt man in HistoryOutcome ein. In unserem Fall verwenden wir beispielsweise:

 
Der letzte Schritt, bevor wir den Workflow ausprobieren können, ist das Verbinden der beiden Zustände. Hierzu benötigen wir die SetState Activity aus der Kategorie Windows Workflow v3.0, die wir unter unsere LogToHistoryList Activity setzen:

 
Man erkennt ein grosses rotes Ausrufezeichen. Dies deutet immer auf eine fehlende oder falsch eingestellte Eigenschaft hin. In unserem Fall ist dies die Eigenschaft TargetStateName:

 
Wir müssen also noch den nächsten Zustand auswählen. In der Drop Down Liste wählen wir deshalb stateFinal aus:

 
Jetzt sind alle initialen Parameter gesetzt:

 
Um sich den Workflow nochmal kurz anzusehen, können wir nochmal auf die Gesamtübersicht umschalten durch Klick auf Workflow1 im Designer:

 
Der initiale Workflow sieht nun wie folgt aus:

 
Der erste Zustand und der End-Zusatnd sind also miteinander verbunden. Nach dem Start des Workflows wird ein Eintrag in die Workflow Verlaufsliste geschrieben.
Im ersten Schritt wollen wir den Workflow nicht debuggen, in der Hoffnung, dass wir das bei einem derart minimalen Workflow nicht brauchen. Zum Ausrollen klickt man mit der rechten Maustaste auf das Workflow Projekt und wählt Deploy:

 
Dadurch wird der Workflow in ein sog. Solution Package verpackt und auf SharePoint ausgerollt, sowie auf der beim Anlegen des Projektes angegeben Website aktiviert. Diese Einstellung lässt sich übrigens ändern, indem man auf den Workflow im Solution Explorer (in unserem Fall SMApproval) klickt. Die beim Anlegen des Projektes vergebenen Parameter findet man in den Eigenschaften des Workflow wieder und kann diese bei Bedarf ändern: 


Doch nun weiter mit dem Test des Workflows. Im Output Fenster von Visual Studio kann man sehen, ob der Workflow korrekt ausgerollt und aktiviert werden konnte:

 
Man erkennt, dass Visual Studio genau die Schritte automatisch durchführt, die ein Administrator auf einem SharePoint Server auch durchführen würde.
Um nun die Funktionalität zu testen öffnen wir nun die angegebene Website und die Bibliothek Shared Documents. Der Workflow ist bereits zugewiesen und kann im Drop-Down Menü des jeweiligen Dokumentes gestartet werden:

 
Man erhält dann eine Auswahl von verfügbaren Workflows und kann einen von diesen starten:

 
Nach dem Klick auf den Workflow landet man wieder in der Dokument Bibliothek. Man erkennt dort, dass der Workflow den Zustand Abgeschlossen hat. Das ist auch nicht weiter verwunderlich. Schliesslich macht er noch nicht allzuviel. Um die Details zu sehen, klickt man auf den Zusatnd Abgeschlossen:

 
Man erkennt nun, dass der Workflow ohne Fehler durchlief und auch die Informationen in die Workflow Verlaufsliste geschrieben hat:

 
Wir haben alo sichergestellt, dass der Workflow prinzipiell läuft und können nun den Workflow mit einem Zuweisungs- und Startformular ausstatten. Das wird dann Bestandteil des 3. Teils der Serie sein.

Kommentar
Dieser Blog-Eintrag wurde noch nicht kommentiert.
Kommentar hinterlassen



 Security code
Zurück, Seite drucken