Support de Cours sur Sharepoint et Workflows pour débutant
SHAREPOINT &
WORKFLOWS
– PART 2
19/11/2007 | De l’utilisation à la création de workflow dans WSS v3 & MOSS |
L’automatisation de Workflows, ou Flux de travail, résulte d’une volonté d’amélioration de performance et d’efficacité de
travail. A quoi correspondent-ils dans SharePoint ? Comment les
mettre en place ? y-a-t’il des limites ?
SharePoint & Workflows – Part 2
I. INTRODUCTION
Le premier article nous a permis de créer un WorkFlow avec SharePoint Designer hébergé dans SharePoint2007.
Nous verrons donc plusieurs axes d'amélioration de ce premier WorkFlow, puis une étude de cas sur la rétention.
A. Amélioration : 2ème Round
1. Amélioration de l’assignation
La tâche de ‘Demande de validation’, bloque le workflow jusqu'à ce que cette dernière soit complétée.
Si la tâche est complétée, sans que le statut soit modifié, le workflow, vérifie les autres conditions et continue. C’est pourquoi, le workflow se termine un peu brutalement.
Deux solutions :
• On peut bloquer le workflow jusqu’à ce que le statut soit modifié
• On peut ajouter un groupe de conditions et Actions permettant d’agir si le statut n’a pas été modifié
Nous allons réaliser la première solution.
Rouvrir Microsoft Designer, sélectionner le workflow précédemment créé, et aller sur la première étape ‘Validation’.
Nous ajouterons ici, une action : ‘Wait for field change in Current Item’.
• Cliquer sur le champ ‘Field’ et sélectionner le champ ‘Statut’
• Cliquer sur le champ ‘to equal’ et sélectionner ‘to not equal’ ? Cliquer sur le champ ‘Value’ et sélectionner ‘Créée’
2. Amélioration de la validation
Lorsque la demande d’ouverture de projet est validée, une tâche est assignée, aux personnes responsables de la création réelle du projet. Cependant le workflow continue et s’arrête. Pour compléter correctement le workflow, il faudrait :
• Bloquer le workflow jusqu’à ce que la tâche soit achevée
• Prévenir l’auteur de la demande que le projet soit ouvert
Il faut donc ajouter, à l’étape validation deux actions :
• ‘Wait for field change in Current Item’
• ‘Send an email’
Cliquer sur ‘field’ et sélectionner le champ ‘Statut’.
Cliquer ‘value’ et sélectionner ‘Réalisée’.
Paramétrage de l’email : Cliquer sur message
• ‘To’ : sélectionner ‘User who created current item’
• ‘Subject’ : taper à Ouverture du projet
• ‘Body’ : Taper le texte que vous souhaitez. Vous pouvez ajouter des champs dynamique grâce au bouton ‘Add lookup to body’
3. Configuration avancée des tâches
Lors de la première étape, ‘Avertir’, nous créons une tâche grâce à l’action : ‘Assign a To-do item’.
Cependant, cette action ne permet pas de configurer tous les champs de cette dernière.
Afin de pouvoir configurer ces champs au mieux, nous devons créer un deuxième workflow, rattaché à la liste des tâches du site SharePoint correspondant.
A partir de Microsoft Designer, créer un nouveau workflow :
Nom : Configuration des Tâches
Rattaché à : ‘Tasks’
Démarrage : ‘Automatically start this wokflow when a new item is created’
Cliquer sur suivant.
La première chose à faire est de sélectionner uniquement les tâches du workflow ‘Demande_Projet’, et uniquement celles créées par l’action ‘Assign to’ de notre Workflow.
Il faut donc comparer les champs ‘Workflow Name’ et ‘Title’ de l’item courant.
Il faut maintenant récupérer configurer les champs de la tâches grâce à l’action : ‘Set field in current item’.
Sélectionner dans ‘Field’, le champ ‘Title’ par exemple.
Cliquer sur ‘Fx’, pour aller récupérer une valeur provenant du document de d’ouverture de projet dont le workflow à créer cette tâche.
Les deux premiers champs indiquent la valeur à retourner :
Source : Demande_Projet à type du document ou se trouve l’information Field : ID_Projet à champ que l’on souhaite renvoyer
Les deux autres champs permettent d’identifier et de sélectionner l’élement où se trouvent les informations désirées :
Field : Champ du document pouvant être utilisé comme identifiant du document, ici ‘ID’ (identifiant du document)
Value : cliquer sur ‘Fx’. Valeur de l’élément en cours permettant de sélectionner le document d’origine
Si l’on veut paramétrer d’autres champs de la tâche, c’est le même principe.
II. CAS D’ETUDE : RETENTION D’UN ELEMENT
A. Description
Afin de donner un exemple de workflow utilisant des variables temporaire et d’initialisation, nous allons réaliser un workflow de rétention sur la liste des tâches : toutes les tâches complétées ayant plus de n jours, seront supprimées.
La logique de ce workflow est bien sur critiquable, il n’a de valeur que pour l’exemple.
B. Réalisation : Round Final
Ouvrir Microsoft Designer et créer un nouveau workflow :
Nom : Rétention
Liste : ‘Tasks’
Option : ‘Allow this workflow to be manually started from an item’ et ‘Automatically start this workflow when a new item is created’
L’idée ici est de créer un workflow, possédant un paramètre ‘délais de rétention’ permettant de conserver l’élément avant élimination.
Cliquer sur le bouton ‘Initiation…’, et créer un paramètre ‘Délais de Rétention’, sélectionner le type de variable : ici ‘Number’.
Cliquer sur ‘Next’, et indiquer une valeur par défaut. Dans le cas présent, 10, pour 10 jours de rétention.
Note 1 : Lorsque le workflow est démarré manuellement, le système proposera un écran permettant me modifier la valeur par défaut. En revanche, si l’élément est lancé automatiquement, le système prendra uniquement la valeur par défaut.
Note 2 : Nous aurions pu également prendre un paramètre de type date.
Il faut créer une variable temporaire qui contiendra la date de suppression de l’élément.
Cliquer sur le bouton ‘Variables’ et créer une variable de type ‘Date/Time’ portant le nom ‘Date de suppression’.
Aller à l’étape 1, et sélectionner l’action : ‘Add time to Date’.
• Cliquer sur ‘0’, et sélectionner la variable ‘Délais de rétention’ du workflow
• Cliquer sur ‘Minutes’, et sélectionner ‘Days’
• Cliquer sur ‘date’ et sélectionner la date de création de la tâches : ‘Created’
• Cliquer sur ‘Variable :date’ et sélectionner ‘Date de supression’
Il faut maintenant, bloquer le workflow jusqu'à la date de suppression.
Utiliser pour cela l’action : ‘Pause until Date’, cliquer sur la date et sélectionner la date du workflow : ‘Date de suppression’.
Ajouter maintenant une étape supplémentaire en cliquant sur ‘Add workflow step’ et nous l’appellerons suppression.
Dans les conditions, vérifier que le statut de la tâche en cours est ‘Completed’ afin de pouvoir supprimer l’élément.
Ajouter l’action ‘Delete item’.
Si l’on effectue un ‘Check Workflow’, il nous indique une erreur : Tous les blocs conditionnels doivent impérativement avoir une condition. Ajouter dans l’étape ‘Rétention’ un condition sur le type de tâche à supprimer par exemple.
C. Best Practices
Je n’aurais pas la prétention de citer toutes les best practices existantes. Je souhaite simplement récapituler les points que je trouve important.
Niveau fonctionnel :
• Soigner et approfondir l’étude des flux de d’activités de l’entreprise
• Intégrer les utilisateurs au cœur des processus
• Simplifier, adapter et optimiser les processus d’entreprise
• Comprendre et voir le portail comme partie intégrale du système d’information
Niveau technique :
• Etablir une documentation fonctionnelle et technique des workflows
• Découper et construire les workflows pour qu’ils soient le plus lisible possible
• Utiliser l’action ‘Log History’, afin de tracer le fonctionnement des workflows
III. CONCLUSION
Il est difficile de faire le tour de toutes les fonctionnalités de la création de worklows avec Microsoft Office SharePoint Designer.
Nous avons vu au travers de ce document la mise en place de workflow simple. Nous pouvons constater que créer un workflow, peut devenir rapidement compliqué. D’autre part, les actions existantes restent assez limitées. D’où l’intérêt de travailler au préalable avec les utilisateurs, afin de simplifier et rationnaliser les processus de gestion que l’on souhaite intégrer. Les coûts de mise en place, la stabilité du système ainsi que les coûts de maintenance seront optimisés.
L’introduction des workflow dans SharePoint montre un autre aspect de la plateforme. Nous ne pouvons plus parler de simple portail d’entreprise. On ne construit pas un portail web, nous sommes réellement dans une vision d’amélioration et d’optimisation du système d’information de l’entreprise.