Michael Hofer

Michael Hofer
28.06.2010
0 Kommentar(e)

Immer wieder treffen wir auf die Anforderung, verschiedene (Papier-) Formulare durch elektronische Formulare abzulösen. Ein typisches Beispiel hierfür sind Investitionsanträge respektive Beschaffungs-Anträge allgemein. Meist lautet die (Marketing-)Antwort, das dies mit InfoPath respektive den Forms Services von SharePoint und einem SharePoint Designer Workflow sehr einfach zu lösen sei. Der Teufel steckt aber wie immer im Detail. In diesem Beitrag möchte ich einen von uns erfolgreich eingeführten und einfach replizierbaren Lösungsansatz aufzeigen.

Teil 4: SharePoint Designer 2010 Workflows

Damit ein konstant laufender (Erinnerungsfunktion!) Workflow für jedes Formular-Listenelement ohne die Programmierung eines sogenannten State-Machine-Workflows in Visual Studio und rein deklarativ mit dem SharePoint Designer 2010 erreicht werden kann, werden 2 Workflows benötigt. Der eine Workflow übernimmt die Verwaltung des aktuellen Status und benachrichtigt bei Status- oder Akteur-Wechseln die entsprechenden Personen.

Leider galt es auch hier zuerst eine Schwierigkeit in den Griff zu kriegen: Werden im InfoPath Formular nämlich Personen oder Gruppen über den PeoplePicker ausgewählt, so werden diese im Datenmodell als Gruppe mit 3 Datenfeldern (Anzeigename, Login-Name, Typ) gespeichert – und diese Felder lassen sich nicht als gesamtes in eine Bibliothek-Spalte mit Datentyp Person propagieren. Hier muss ein Trick angewendet werden: Es wird nur der Login-Name propagiert (z.B. in das Feld „ControllerAccountID“ als Text). In der Liste hat es dann aber noch ein Feld „Controller“ vom Typ „People“. Der Workflow nimmt nun den Wert im Feld „ControllerAccountID“ und schreibt diesen in das Feld „Controller“. Nun steht innerhalb des Workflows ein Personen-Objekt zur Verfügung an das Emails verschickt werden können etc.

Ist dieser Workflow beendet, wird sichergestellt, dass sich mindestens ein Feld des Listenelements ändert (=Update), welches den 2. Workflow auslöst. Dieser pausiert für eine bestimmte Zeit und prüft dann, ob Eriinnerungs-Emails verschickt werden müssen. Sofern ja, werden die entsprechenden Emails verschickt. Danach stellt auch dieser Workflow wieder sicher, dass mindestens ein Listenfeld geändert wurde - was den ersten Workflow startet und so weiter. Wird das Formular in der Zwischenzeit geändert und gespeichert bricht dies den gerade laufenden Workflow ab und startet den ersten Workflow mit den geänderten Werten was wiederum denselben Zyklus auslöst.

Natürlich prüfen die beiden Workflows bei jedem Aufruf den Status. Ist dieser in einem End-Zustand, so wird kein Listenfeld geändert und der Workflow ist beendet.

Investitionsantrag-Workflow-Beispiel.png


 
Übrigens: Basierend auf den Erfahrungen und Resultaten von erfolgreichen Workflow-Projekten mit InfoPath/Forms-Server und SharePoint Designer haben wir ein Quick-Start Angebot zum Fixpreis zusammengestellt. Profitieren Sie von unserer Erfahrung und vielen kleinen aber wichtigen Erweiterungen zur effizienten Realisierung Ihrer Workflows.

Kommentar hinterlassen




Is five = three ? (true/false)

Kommentar(e)

Noch keine Kommentare.