Important : cette source nécessite Windows Workflow Foundation Beta 2 ainsi que le Framework 2.0 pour fonctionner.
Cette source présente un exemple de Workflow Séquentiel humain et répond à plusieurs problématiques auquel j’ai été confronté :
- Utiliser Windows Workflow Foundation dans un projet Web, en insistant sur l’aspect communication application Web -> Workflow à plusieurs étapes du cycle de vie du Workflow (sans hoster le Workflow via des Webservices).
- Faire démarrer un Workflow par un utilisateur, le mettre en pause et le faire réactiver par un autre utilisateur (tout en le faisant persister dans SQLServer, dans le cas ou plusieurs jours se passent entre les deux actions).
- Mettre en place une gestion de timeout
Cette source a servit de base pour un projet contenant un Workflow de validation d’utilisateurs, des modifications étant appliquées au niveau du compte de l’utilisateur et des Emails étant envoyés lors de chaque étape.
Fonctionnement :
Pour faire fonctionner cette source, et surtout la gestion de la persistance dans SQLServer 2005 Express, vous devez
- Ajouter une base de données « Database.mdf » dans le répertoire App_Data du projet ASPNETWorkflowExemple
- Exécuter les scripts « sqlPersistenceService_logic.sql » et « sqlPersistenceService_schema.sql » dans cette base (ils sont présents dans le projet DBScripts, il suffit de faire click droit / run dessus).
Composition :
- ASPNETWorkflowExemple contient l’application Web
- DBScripts les scripts de persistance
- testWorkflow le workflow
- WorkflowComm l’interface de communication
Utilisation :
Ensuite, une fois l’application compilée, deux pages sont à votre disposition :
- Default.aspx pour démarrer des instances de Workflow
- Validation.aspx pour reprendre des instances en cours et les terminer
Attention, il s’agit d’un exemple, le Workflow ne fait rien d’autre que de « logger » les étapes dans lesquelles il passe dans le fichier « C:\WorkflowLOG.txt»
Les sources sont commentées (quelques extraits ci dessous), n'hesitez pas a poser des questions suite à cette source.