Windows Workflow Foundation 4.0

Ron Jacobs hat in seiner „Custom Activities in Workflow Foundation 4.0“-Session erklärt, was sich in Zukunft in diesem Bereich ändern wird.

New Core Engine

Grundlegend wird es in der Version 4.0 eine „komplett“ neue Core-Engine geben!!!

Für machen mag das ein No-Go sein, da alle bisherigen „Custom Activities“ upgedated werden müssen!

Für machne mag dieses Vorgehen von Microsoft nicht nachvollziehbar sein, warum nach 2 Jahren (seit .Net 3.0) eine komplett neue WF-Core Engine ins Rennen geschickt wird. Jedoch stellt dieses Vorgehen aus meiner Sicht die beste Lösung dar.

Warum soll das die beste Lösung sein!?

Grundlegend werden in Zukunft alle Technologien und Produkte aus dem Hause Microsoft auf den „OSLO“-Zug aufgegleisst werden.

Was sind Activities?

Wenn ich in diesem Blog-Eintrag von Activities spreche, meine ich jede Art von von Activities (Sequence, Flowchart, State-Machine, Rule-Activity, If-Else uvm.).

Update-Path

Wenn Sie in bestehenden Projekten bereits „Custom“ WF-Activities erstellt haben, empfiehlt uns Microsoft folgende 2 Upgrade-Möglichkeiten:

  • Microsoft bietet einen sogenannte „Interoperability“-Möglichkeit an, welche es erlaubt, bestehende Custom Activities weiterhin zu verwenden, jedoch muss in diesem Bereich mit „Performance“-Einschränkungen gerechnet werden.
  • Die ideallste Lösung liegt klar auf der Hand … erstellen Sie Ihre bestehenden Activities komplett „neu“. -> Aus meiner Sicht stellt dies die beste Lösung dar, da mir diese Art von Upgrade-Path die zukunftsicherste Art darstellt.

Was bedeutet das für SharePoint?

Ron Jacobs konnte leider zu diesem Punkt keine genaue Aussage treffen, da die Entscheidung, ob die Workflow Core Engine in MOSS zum Zeitpunkt von „SharePoint 14“ bereits ausgewechselt sein wird, in einem MS Product Team selbst liege.

DependencyProperties becomes Variable<T>

Auch die Art, wie Parameter in Zukunft in Workflows behandelt werden, ändert sich komplett. In Zukunft werden keine DependencyProperties mehr definiert, sondern Variable<T>! Z.B. Variable<String> oder Variable<List<String>>. Der Sinn liegt darin, das diese Art besser abgehandelt werden kann -> Es müssen nicht mehr unschöne Code-based Properties definiert werden, sondern können die generische WF-Infrastructure! Weiters sind diese Art von „Parameter“ für alle unterliegenden Child-Activities verfügbar.

Wann kann mit dem "Umbau" gestartet werden?

Aktuell ist lediglich eine Pre-Alpha Version für alle PDC 2008 Besucher verfügbar. Somit darf mit einer ersten Beta-Version für die Public Community nicht vor dem ersten Quartal 2009 gerechnet werden.

Für diejenigen welche nicht solange warten wollen, können sich unter http://channel9.msdn.com erste ScreenCasts zu diesem Thema ansehen.

Fazit

Es muss auf jedes Project spezifisch abgewogen werden, ob sich eine komplette Neu-Entwicklung von bestehenden Activities lohnt und somit Future-Ready ist, oder man den ganzen „alten Zopf“ mitziehen will und somit Kosten spart, jedoch irgendwann mit den Rücken zur Wand steht und nicht mehr vor und zurück kann. Good news for ISV‘s ;O)

WF 4.0, „OSLO“ and „DUBLIN“

David Chappel, Principal von Chappel & Associates rockte wieder einmal mehr das Haus, in dem er der Microsoft-Community das Zusammenspiel von WF, OSLO & DUBLIN vorstellte.

„OSLO“

Als Grundlage für das modellieren von Software Komponenten dient in Zukunft die Definitions-Sprache „M“. „M“ wurde entwickelt um Software-Modelle zu definieren und auszuführen.

Beispiele für Modelle sind …

  • Workflows
  • Services
  • Applications (welche Workflows und Services beinhalten können)
  • Business processes

 

Grundlegend besteht „OSLO“ aus folgenden Kern-Komponenten …

  • Repository (Speicherplatz für Modell-Schemas und Instanzen)
  • Modellierungssprache „M“
  • Modellierungs-Tool, Codename Visual Studio „QUADRANT“

 

Nachfolgende Darstellung zeigt das harmonische Zusammenspiel der zuvor genannten Komponenten:

i-05f0a59f8eeb8349657217040b7326ad-oslo01-thumb.jpg

 

Für weitere Informationen dient der aktuelle „OSLO“-SDK welcher unter http://msdn.microsoft.com/en-us/oslo/default.aspx heruntergeladen werden kann. CHECK IT OUT!

Für all diejenigen welche sich unter der Modellierungs-Sprache „M“ gar nix vorstellen können, habe ich „natürlich“ noch einen Buch-Tip:

The Oslo Modeling Language: Draft Specification – October 2008, aus dem Addison-Wesley Verlag.

ACHTUNG: Bei diesem Buch handelt es sich um eine technische „October 2008 – Draft Specification“, aber die 20 EUR-Investition lohnt sich definitiv und sollte aus meiner Sicht schon ab morgen unter jedem Kopfkissen liegen!!!

 

Workflow Foundation 4.0

Grundlegend werden in Zukunft Workflows als „Models“ definiert (siehe Oslo).

Die Workflow Foundation liefert weiters ein neues „Flowchart“-Template welches das beste aus den beiden bisherigen Template-Welten (Sequential / State-Maschine). Das Resultat mag auf den ersten Blick nicht ganz ersichtlich sein, denoch bietet es mehr Features als das Sequential-Template … aber dafür nicht so komplex wie das „State-Machine“-Template.

Ribbon meets Visual Studio „Quadrant“. Sprich wenn ein Activity in einem Process markiert wird, werden nur noch die Activity relevanten Informationen im Workflow Designer dargestellt, was einer Benutzerrolle „Architect, Business Analyst oder Developer“ das Erstellen und Ändern von Workflows erheblich vereinfacht.

Als Beispiel zeigte David Chappel ein einfachen „New Employee Onboarding Process”-Workflow (siehe Abbildung unten).

i-d3e773098d64efcafcc4646ff4b07ec3-quadrant-thumb.jpg

 

DUBLIN

Und die Reise durch Europa geht weiter.

Dublin ist der Codename für die erste Generation des Server-Parts von WCF und Workflow Services.

Grundlegend wird Dublin als ein IIS-Extension Module verfügbar sein. Microsoft plant diese Features „for free“ zur Verfügung zu stellen, jedoch im Rahmen der normalen Windows Server Lizenzierung.

Dublin fügt sich als Erweiterung der „Application Server Role“ ein und beinhaltet richtig „coole“ Features wie zum Beispiel …

  • Routing von WCF-Messages basierent z.B. auf Werten im SOAP-Body welche mittels IIS Server Manager und/oder via PowerShell CMD-lets aktiviert werden können.
  • WCF/WF Application werden in Zukunft als „Container“ mit allen dazugehörigen Modellen deployed („ähnlich“ dem SharePoint Features Deployment Mechansimen ).
  • Und um allen einen noch wässrigeren Mund zu machen, bekommen alle WCF und Workflow Services „Out of the Box“ Monitoring-, Control- und Discovery-Mechansimen zur Verfügung gestellt (ähnlich den BAM-Tools des BizTalk Servers)

Dublin wird der Community frühestens im ersten Quartal 2009 als CTP zur Verfügung stehen.

Da es sich bei meiner heutigen TechEd 2008 Revue lediglich um die Spitze des Eisberges in diesem Technologie-Bereich handelt, möchte ich folgende Abbildung nicht vorenthalten, welches das Zusammenspiel von von WF 4.0, „OSLO“ und „DUBLIN“ veranschaulichen soll.

 

i-ce20c7af0a8094b6b993132e9c2f1c41-dublin-thumb.jpg

 

In diesem Sinne … viel Spass mit dem OSLO SDK und bis Morgen!

namics @SharePoint Community Camp Tag 2

SharePoint Community Camp 24.&25. April 2008

Heute auf dem Programm stand „Datenansichten mit SharePoint Designer“ (Michael Greth), „Gestaltung und Anpassung von SharePoint Plattformen“ (Fabian Moritz), SharePoint Workflows erstellen“ (Daniel Wessels) und „Best Practices/Tipps für die Umsetzung von Web Content Management Systemen auf Basis von MOSS“ (Fabian Moritz).

Im ersten Slot wurden die Möglichkeiten von Datenansichten aufgezeigt. Nachdem gestern die Dataviews genutzt wurden, um die Suchresultat anzupassen, wird heute der Fokus stärker auf die Verknüpfung von Daten gelegt. Auch lag hier der Schwerpunkt auf die Nutzung des SharePoint Designers, welcher gute Unterstützung für Nicht-Entwickler bietet, um Anpassungen selber durchzuführen. Über bedingte Formatierungen und individuelle Filterkriterien, können
so gute Übersichts- und Auswertungsviews erstellt werden.
Was eher zu kurz kam, sind die Nachteile vom SharePoint Designer. Es muss bewusst sein, dass die Anpassungen jeweils nur für diese Seite greifen, auf welcher die Anpassungen gemacht werden. Für wiederverwendbare Komponenten, was oft bei grösseren Unternehmen benötigt wird, sollte zwingende die Funktionalitäten über Features implementiert werden. Da sehe ich den SharePoint Designer eher als Tool fürs Prototyping, die Umsetzung dabei erfolgt von den Entwicklern im Visual Studio.

Der zweite Slot zeigte anhand verständlicher Demos, die verschiedenen Stufen der Anpassungen innerhalb von SharePoint. Über Administrator, Publisher bis hin zum Entwickler.
Zwar wurden die Gefahren der Tools erklärt, aber auch die Vorteile der Eigenentwicklung eher in den Hintergrund gerückt. Obwohl die Eigenentwicklung zeitaufwendiger ist, erhöht das die Kontrolle über den Code und erleichtert das Change Management und Bug Fixing enorm.

Der Nachmittag begann mit der Session „SharePoint Workflows“.
Sehr detaillierte Demo, wie der im SharePoint Umfeld bekannte Ferienantrag mittels InfoPath und SharePoint Designer erstellt werden kann. Dabei wurde ein 3-stufiger Workflow erstellt (Antragsteller –> Vertreter –> Manager). Die Demo bestätigt, dass für einfache Workflows, wie Spesenabrechnungen, Ferienanträge etc. SharePoint durchaus sinnvoll eingesetzt werden kann. Aber es ist nicht zu vergessen, dass die Transaktionalität nicht unterstützt wird und so für Businesskritische Prozesse auf einen anderen Workflowhost ausgewichen werden muss.

Zum Abschluss wird noch auf das Web Content Management eingegangen.
In einer Kurzen Präsentation wird der Weg zum Web Content Management aufgezeigt. Von der Erstellung von Publishing Sites, Erstellen Masterpages mit Bilder und Styles bis hin zur Anwendung von Page Layouts. Gute Einführung ins Web Content Management. Das Fazit kam zum Schluss: Man hat viele Möglichkeiten, aber es gibt viele Anpassungen und Eigenentwicklungen zu machen, für eine komplette Webseite.
Am Schluss noch einige Beispiele von Webseiten auf Basis von MOSS, leider fehlte die von namics erstellte Seite von www.nestle.ch :-)

Workflow Limits in MOSS

In diesem Artikel (http://sharepoint.namics.com/2007/04/26/moss_workflow/moss_workflow_limits.pdf) möchte ich erklären, warum die Workflow-Infrastruktur der Office SharePoint Services nicht für erweiterte oder kritische Geschäftsprozesse geeignet ist.

Dieser Artikel soll jedem als Hilfestellung bei der Entscheidung über die Verwendung der Workflow Infrastruktur in MOSS dienen, und gleichzeitig eine Grundlage für Diskussionen darstellen.

P.S.: Wie Microsoft sich das Zusammenspiel von MOSS und kritischen Geschäftsprozessen vorstellt, welche Rolle MOSS in „Enterprise Applications“ spielt und was „Office Business Applications“ sind, versuche ich in weiteren kommenden Artikeln zu veranschaulichen.

Ein Sequentieller Workflow mit dem SharePoint Designer entsteht

Eine SharePointListe kann man ohne grosse Probleme mit einer zusätzlichen Metaspalte erweitern. Mit den Metainformationen kann man zum Beispiel weitere Informationen zu einem Dokument ablegen. Diese Informationen werden sogar direkt aus den Office Clients editiert und angezeigt.

i-89fb554eafd7de2a3b4dea2a365c516a-SPDesigner_2_New Properties in document.png

Wenn man bei diesen Felder angibt, dass sie zwingend gefüllt werden müssen, kann der Benutzer das Dokument erst speichern wenn er einen Wert eingegeben oder selektiert hat.

In diesem Artikel geht es jedoch nicht um diese Funktion, denn diese wurde schon durch Mischa Mundwiler (Klassifizierung von Dokumenten mit dem Document Information Panel) beschrieben. Er ist sogar einen Schritt weiter gegangen und hat gezeigt, wie man die Anzeige im Word anpassen kann.

In diesem Artikel geht es darum eine DocumentLibrary mit einem einfachen Workflow zu erweitern. Dabei soll es ein Workflow sein, welcher ohne Kenntnisse von Programmiersprachen erstellt werden kann.

Als erstes braucht man eine DocumentLibrary. Dort fügen wir zwei Spalten hinzu und zwar „Konzepttyp“ und „Dokument Status“. Zuerst muss man zu der gewünschten DocumentLibrary gehen und bei den Einstellungen die neuen Spalten hinzufügen.
In meinem Beispiel habe ich in der Spalte „Konzepttyp“ die Möglichkeiten „Detailkonzept“ oder „Grobkonzept“ hinzugefügt. Bei der zweiten Spalte „Dokument Status“ stehen mehrere Werte zur Auswahl. Für dieses Beispiel ist aber nur der Wert „Abgeschlossen“ relevant.

Erstellen einer neuen Spalte bei einer SharePointListe

Wenn man bei den Spalten angegeben hat, dass sie zwingend gefüllt werden müssen, erscheint beim Speichern automatisch der Dialog, welcher auf dem ersten Bild gezeigt wurde. Sobald das Dokument gespeichert wurde, sieht das Dokument in SharePoint wie folgt aus:

i-46dba1c007a5703488d416132c57e0a5-SPDesigner_2.1_Document Library with new Columns.png

Nun kommt der eigentliche Teil dieses Eintrages. Wir möchten ja einen einfachen Workflow erstellen, und zwar einen ohne Programmierung. Das bedeutet wir werden einen Sequentiellen Workflow mit dem SharePoint Designer erstellen.

Dazu müssen wir die Seite mit der Liste mittels SharePoint Designer öffnen. Im SharePoint Designer kann man die Seite öffnen indem man unter File > Open Site einfach die URL zu der Seite eintippt/einfügt (Bei meinem Beispiel http://wss/Demo/). Dann sollte man folgendes sehen:

i-55c2e86af6c5d561c1e410c501a1e23f-SPDesigner_2.2_SharePoint Designer WebSite.png

Der Name meiner Document Library ist „Konzept“. Über das Menü kann man dieser Library einen neuen Workflow hinzufügen.

i-08d4615bed0869f788d9cee8b93254ec-SPDesigner_2.3_SharePoint Designer WebSite2.png

Das Erstellen eines Sequentiellen Workflows mit dem Designer erfolgt mit einem Wizard. Dieser fragt zuerst nach dem Namen des Workflows und der gewünschten SharePoint Liste, bei welcher der Workflow hinzugefügt werden soll. Hier kann man weitere Optionen setzen, wie zum Beispiel ob der Workflow bei einem neuen Dokument automatisch gestartet werden soll. Dies macht in unserem Fall natürlich Sinn. Denn so muss bei einem neuen Dokument kein Workflow von Hand gestartet werden.

i-1e641ab7d148da44e83c234565977b7c-SPDesigner_3_Designer1-thumb.png

In diesem Workflow soll folgendes geschehen. Sobald ein Grobkonzept abgeschlossen wird, soll ein Task einem Benutzer zugewiesen werden. Falls ein Detailkonzept abgeschlossen wird, soll ebenfalls ein Task zugewiesen und ausserdem eine Email versandt werden. Der Workflow gilt erst als abgeschlossen, wenn der zugewiesene Task als erledigt markiert wird.

Der Workflow ist nur ein Beispiel und kann oder muss keinen Sinn ergeben. ;-)

Damit wir die beschriebene Funktion erhalten, verwenden wir zwei Überprüfungen.

Grobkonzept
Falls das Dokument bei der Metainformation „Dokument Status“ = „Abgeschlossen“ und „Konzepttyp“ = „Grobkonzept“
=> Task an eine Person

Detailkonzept
Falls das Dokument bei der Metainformation „Dokument Status“ = „Abgeschlossen“ und „Konzepttyp“ = „Detailkonzept“
=> Task an eine Person & Email an eine Person

Der Wizard gibt uns verschiedene Activities zur Auswahl um einen Workflow zu erstellen. Bei der Überprüfung der Metafelder stellt er die möglichen Werte zur Verfügung, falls es sich um ein Dropdown Feld handelt.

i-e6bdbf0d4a8e70ae45e241c891ea7068-SPDesigner_5_SharePoint Designer WebSite3-thumb.png

In diesem Bild wurden die nötigen Überprüfungen zu den zwei Möglichkeiten eingefügt. Wenn nun noch die Aktionen eingefügt werden sieht das Ganze so aus:

i-fba89033b696ac60155c33b6987174bf-SPDesigner_6_SharePoint Designer WebSite4-thumb.png

Ein Sequentieller Workflow kann mittels deklarativer Sprache (XML) beschrieben werden, ein StateMachine Workflow hingegen nicht. Der SharePoint Designer kann somit nur einen Sequentiellen Workflow erstellen. Wenn man den Workflow speichert, zeigt sich einem wieder die Ordnerstruktur von SharePoint. Dabei sieht man die Definitionsdateien des Workflows „Benachrichtigen“:

i-c5c1cb7f2dfa4c04c454391b1a687424-SPDesigner_7_SharePoint Designer WebSite5.png

Wenn nun ein neues Dokument in der Dokument Library abgelegt wird, muss der Benutzer die zwei neuen Metainformationen angeben. Ausserdem wird beim ersten Speichern automatisch der Workflow gestartet. Dieser überprüft bei jeder Änderung des Dokumentes die zwei Felder. Sobald eine der beiden Überprüfungen zutreffen, erstellt er einen Task und versendet bei einem Detailikonzept sogar ein Email. In der Taskliste zeigt sich ein neuer Task wie folgt:

i-e77e5c8f4bd0b140d516e4677b28e926-New Task-thumb.png

Beim Öffnen des Taks sieht man folgendes:

i-93dd8d776ab2691aacfed314dab06ecd-Task.png

Wenn dieser Task nun abgeschlossen wird, ist auch der Worklfow beendet und geht auf „Completed“.

i-4193bff0dc88eaa2963d9c949fca1274-Task completed-thumb.png

Natürlich hat man mit einem Sequentiellen Workflow nur begrenzte Möglichkeiten, jedoch kommt man ohne Programmieren schon zu einem Workflow. In einem älteren Blog habe ich eine andere Möglichkeit gezeigt, wie man einen Sequentiellen Workflow visuell gestalten kann: Atlas Workflow Designer
Weitere Informationen zu dem SharePoint Designer gibt es auf dem offiziellen Blog unter: http://blogs.msdn.com/sharepointdesigner/default.aspx (Englisch)
Besonders interessant sind die neuen Lernvideos.