Einstieg zur Workflow Foundation 4 : Das Flowchart Activity

by Gregor Biswanger 21. Dezember 2010 15:02

Mit dem Sequence Activity werden die enthaltenen Activities strukturiert durchlaufen. So wie man es bei einem Programmablauf gewohnt ist. Die Ansicht zeigt sich somit Technisch und es lässt sich unangenehm lesen. Für einen etwas besseren Überblick und einem flexibleren Ablauf der Activites behilft das Flowchart Activity.

Die Vorteile vom Flowchart Activity auf einem Blick:

  • Activities können frei positioniert werden.
  • Der Verarbeitungsprozess der Activities untereinander kann flexibel definiert werden. Dabei ist es vergleichbar mit der GOTO-Anweisung, wobei beim Flowchart Activity eine bessere Übersicht beibehalten wird.
  • Das Flowchart Activity richtet sich auf eine eher fachliche Abbildung aus und soll somit für Stake Holder als “Common Language” dienen.
  • Für das Flowchart Activity werden weitere Activities zur Überprüfung von Statusinformationen bereitgestellt. Diese lehnen sich an bekannte Programmablauf-Bausteine an.

 

Obwohl das Flowchart Activity sehr mächtig für die Workflow Foundation 4 ist, zeigt sich der Designer noch nicht ganz ausgereift. Das allerdings keinesfalls als Warnung vor der Verwendung der WF4 bedeuten soll. Es dient lediglich nur als Erfahrungsbericht und kann sich bei neuen Versionen der WF verbessern.

Folgende Punkte störten bei der Verwendung in der Praxis:

  • Es können nicht mehrere Activities gleichzeitig verschoben werden.
  • Es fehlt eine Ausrichtungsunterstützung
  • FlowDecisions können nicht benannt werden. Nur True- und False-Felder.
  • Felder mit frei definierbarem Text werden nur mit einer stark eingeschränkten Zeichenlänge dargestellt.

Wie bereits geschrieben wird sich das bestimmt mit den Folgeversionen ändern.

 

Beispiel: WorkflowFlowchartExample

Dazu wird Visual Studio 2010 geöffnet und ein neues Projekt angelegt. Als Template wird unter “Workflow” – “Workflow Console Application” gewählt. Als Name wird “WorkflowFlowchartExample” verwendet.

 

SNAGHTML20af90

Abb. 1 - Neues “Workflow Console Application” Projekt erzeugen.

 

Mit Flow bestücken

Für das Flowchart Activity wird ein eigenständiger Bereich mit “Flowchart” bereitgestellt. Hier sind auch weitere Activities für die Arbeit mit dem Flowchart enthalten. Zu Beginn wird das Flowchart Activity auf den Designer mittels Drag & Drop platziert. Ein Flowchart zeichnet sich zudem jeweils mit einem Start-Point aus. Wobei sofort ersichtlich wird, an welcher Stelle der Code ausgeführt wird.

 

image

Abb. 2 – Flowchart gesetzt.

 

Beim nächsten Schritt wird dem Flowchart eine Integer-Variable mit dem Namen Count zugewiesen.

 

image

Abb.3 – Variable Count für den Flowchart setzen.

 

Nun wird direkt unter dem Start-Point ein WriteLine Activity gesetzt. Wobei der Wert der Count-Variable auf dem dem Bildschirm angezeigt werden soll. Dazu wird mittels VB Expression Count.ToString geschrieben.

 

image

Abb. 4 – WriteLine Activity mit Expression gesetzt.

 

Das besondere am Flowchart Activity ist die freie Definition des Prozessablaufes. Daher muss explizit definiert werden, das direkt beim Starten des Workflows mit dem WriteLine Activity begonnen wird.

Dazu einfach mit dem Mauszeiger über den Start-Point. Es erscheinen dann kleine Boxen die mittels gedrückter Maustaste eine Linie mitgibt. Diese Linie wird beim gewünschten Activity gezogen und die Maus an dessen kleinen Box losgelassen.

image

Abb. 5 – Prozessablauf selbst bestimmen.

 

Durch kleine Pfeile gekennzeichnet, wird ersichtlich in welche Richtung der Kommunikationsfluss abläuft. Als nächster Schritt soll die Counter-Variable um einen Wert erhöht werden. Dazu dient das Assign Activity, das direkt unter dem WriteLine Activity gesetzt wird. Als Expression wird angegeben das der Variable Count um einen Wert erhöht wird (Siehe Abb.6).

 

image

Abb. 6 – Count-Variable soll mit einem Wert erhöht werden.

 

Anschließend muss vom WriteLine Activity die Assign Activity als nächster Prozessschritt definiert werden. Dazu einfach wieder mittels Linie verknüpfen.

Als nächstes wird ein Delay Activity direkt unter dem Assign Activity gesetzt und verknüpft. Das Property Duration erhält eine Expression von 00:00:01. Somit wird eine Sekunde lang der Workflow angehalten.

 

 

image

Abb. 7 – Delay Activity wird auf eine Sekunde gesetzt.

 

Um ein weiteres Activity aus dem Bereich Flowchart kennenzulernen, wird das FlowDecision Activity direkt unter dem Delay Activity gesetzt.

Das FlowDecision Activity steht für die Klassische Abbildung von IF-Abfragen. Die Erwartung wird unter dem Property Condition gesetzt. In diesem Beispiel wird abgefragt ob der Count bereits bei 10 angekommen ist, falls nicht soll direkt beim WriteLine Activity von vorne begonnen werden. Dazu kann man ganz einfach die Kommunikationslinie nach oben ziehen und setzten.

Dass dieser Verarbeitungsprozess frei definiert werden kann ist eine große Stärke vom Flowchart Activity.

 

image

Abb. 8 – FlowDecision mit Abfrage vom Count-Wert.

 

Jetzt kann wie gewohnt die Anwendung mittels [Strg] + [F5]-Tastendruck ausgeführt werden.

 

SNAGHTML36d79a

Abb. 9 – Ausgabe der Verarbeitung vom Flowchart Activity.

 

Dieses Beispiel hat keine ernsthafte Business-Logik abgebildet die mit der Workflow Foundation gehandhabt werden sollte. Das Beispiel sollte einfach die Handhabung und Stärken des Flowchart Activity näher gebracht haben.



Wenn ihnen der Artikel gefallen hat oder er für sie hilfreich war, bitten "kicken" sie ihn.
kick it on dotnet-kicks.de

Kommentare

Powered by BlogEngine.NET 1.4.5.0
Theme by Extensive SEO

Über den Autor

Gregor Biswanger

Microsoft MVP für Client App Dev
XING

Gregor Biswanger (Microsoft MVP für Client App Dev) ist freier Consultant, Trainer, Autor und Speaker.


Seine Schwerpunkte liegen im Bereich der .NET-Architektur, agilen Prozessen und XAML. Er veröffentlichte vor kurzem seine DVD´s mit Video-Trainings zum Thema „Meine erste Windows 8 App“, „Windows Store Apps mit XAML und C#“ und „WPF 4.5 und Silverlight 5“ bei Addison-Wesley von video2brain.


Biswanger ist auch im Auftrag von Intel GmbH als Technologieberater für die Intel Developer Zone aktiv und ist Leader bei der Ingolstädter .NET Developers Group (INdotNET). 

 

Video über mich:
http://www.youtube.com/watch?v=mx_6SiiLxjk


Basta! 2011 Speaker

CLIPer

MCTS
Windows SharePoint Services 3.0 – Application Development (MCTS)