S'abonner à openhost.fr sur Twitter

Créer un Workflow avec SharePoint 2010

Si vous avez déjà utilisé SharePoint Foundation ou SharePoint Server, vous avez certainement vu qu’il était possible de créer des workflow ? A quoi cela sert-il ? Comment créer un workflow dans SharePoint ?

Dès que l’entreprise s’équipe d’un outil de travail collaboratif, on constate que les utilisateurs s’adaptent très rapidement aux nouvelles possibilités offertes :
Les trois types de workflow dans SharePoint 2010

  • Partage de listes de Contacts
  • Partage de listes de Tâches
  • Partage de Listes de Documents
  • Partage de listes de Réclamations …
  • Partage de Calendriers

Vient ensuite le souhait de pouvoir automatiser quelques processus métier de la société. Par exemple :

  • Valider un devis avant son envoi au client
  • Réserver une salle de réunion sans intervention humaine
  • Valider une demande d’achat de matériel
  • Valider une demande  d’absence

Un workflow (flux de travail) permet donc de modéliser un processus de l’entreprise.

Un flux se déclenche via un évènement au sein du SharePoint comme : l’ajout ou la suppression et la modification d’un élément d’une liste ou d’une bibliothèque mais aussi le changement d’une valeur/colonne au sein d’une liste/bibliothèque.

Un flux contient des actions (exemple : envoyer un mail, changer la valeur d’une colonne…)

Cas concret de workflow : Les demandes d’Absences et leur circuit de validation

Voici un exemple classique de workflow souvent utiliser pour parcourir les différentes étapes de création d’un workflow avec SharePoint 2010.

Il existe trois types de Flux au sein de SharePoint 2010

  • Flux de travail de site: S’applique au niveau d’un site dans son entier
  • Flux de travail de liste : S’applique à une liste ou une bibliothèque SharePoint
  • Flux de Travail réutilisable : S’applique à un type de contenu*

* Cf définition d’un type de contenu dans SharePoint

Dans le cas de notre exemple qui nous servira de fil rouge durant le reste de cet article, le principe est donc extrêmement simple :

Deux intervenants (des personnes)

  • Le demandeur (un salarié de l’entreprise par exemple)
  • Le service RH (une personne habilitée à valider la demande d’absence)

Que nous faut-il pour démarrer un workflow ?

Une liste d’utilisateurs ayant accès aux Site de Partage (SharePoint) que vous utilisez pour implémenter cette fonction.

Utilisateur BleuLes demandeurs
Utilisateur VertLes « validateurs » (les personnes du Service RH)
Liste Personnalisée SharePoint 2010Une 1ère  Liste SharePoint qui contiendra les demandes d’Absence. Ces demandes sont rédigées par les utilisateurs (les salariés) via un simple Formulaire automatiquement généré par SharePoint.
Liste de Tâches SharePoint 2010Une 2ème Liste SharePoint qui contiendra les demandes de Validation. Ces demandes seront automatiquement générées par le workflow afin qu’une personne du service RH reçoive une« invitation » par mail à valider la demande d’absence.Ces demandes s’appuient sur une Liste SharePoint de type Tâches
Un workflowLa création d’un workflow décrivant étape par étape de que doit réaliser le processus en fonction de là où il en est. Quand un Evènement apparaît cela déclenche une autre Action au sein du workflow ou cela fait passer le processus dans une autre Etape.
Etolie de workflowLes événements seront représentés par ce symbole

Voici donc, de manière schématique, le processus de validation d’une demande d’absence.

Schéma type d'un workflow simple d'une validation de demande d'absence/congés

Schéma type d'un workflow simple d'une validation de demande d'absence/congés

Rappel sur les éléments d’une Liste SharePoint

Une Liste SharePoint contient des lignes et des colonnes à l’image de ce que fait Microsoft  Excel.

  • Les colonnes verticales sont dénommées « Champ ou plus précisément Colonne »
  • Les lignes horizontales sont dénommées « Enregistrement »

Pour mémoire, SharePoint crée toujours, avec toute nouvelle liste, les champs

  • ID : référence unique de chaque ligne de la liste (dans notre de chaque demande) : Un ID
  • Crée par
  • Identité de la personne ayant créé la ligne
  • Crée le
  • Date de création de la ligne
  • Modifié le
  • Date de modification de la ligne
Liste Personnalisée SharePoint 2010

La liste des demandes d’absences

Cette Liste, que nous allons ajouter à notre site SharePoint,  sera basée  sur modèle de  « Liste Personnalisée » et contiendra les champs suivants :

Date de début (date)

  • Indique la date du début de l’absence

Date de fin (date)

  • Indique la date du dernier jour de l’absence

Le type d’absence concernée (liste de choix)

  • CP : Congé payé
  • CS : Congé sans solde
  • CC : Congé Conventionnel
  • AM : Arrêt maladie
  • RTT : RTT
  • CF : Congé Formation
  • AA : Absence Autorisé / Récupération

Remarque (ligne de texte)

  • Commentaires permettant au demandeur de transmettre des informations lors de sa demande

Statut (liste de choix)

  • En cours de traitement (valeur par défaut)
  • Validé
  • Refusé

Commentaires RH (ligne de texte)

Formulaire de demande d'absence/congés avec un workflow SharePoint 2010

Formulaire de demande d'absence/congés avec un workflow SharePoint 2010

Liste de Tâches SharePoint 2010

Liste contenant les demandes de Validation automatiquement générées par le workflow

 Cette seconde liste sera automatiquement alimentée par le workflow qui viendra créer une nouvelle tâche lors du dépôt d’une demande.

Il suffira donc de mémoriser dans cette liste :

  • La référence de la demande (ID de l’enregistrement de la demande)
  • La nature de la validation faite ultérieurement par le service RH
  • Validé ou Refusé
  • Un commentaire rédigé par le service RH pour informer éventuellement le demandeur sur la nature du refus (ou autre raison)

ATTENTION :

  • Des champs vont être « automatiquement » ajoutés par SharePoint dans cette liste de tâches servant à gérer le workflow
  • Une erreur classique consiste à créer ces champs vous-même.
  • Dans ce cas il s’en suit une erreur de publication de la part de SharePoint Designer qui ne peut pas les créer automatiquement puisque ils existent déjà…
  • Nous parlons, dans notre cas des champs
    • Accepter-Refuser
    • Commentaire
  • Pour la liste de tâches « Validation Absence », utilisez le modèle de liste par défaut, sans rajouter de champ.Liste de Tâches SharePoint 2010
Un workflow

Création du workflow avec SharePoint Designer 2010

  • Depuis SharePoint Designer (SPD) nous allons donc créer un nouveau flux de travail se basant sur la liste « Demande d’Absences »
  • Le flux se nommera également « Demande d’Absences »
  • Nous souhaitons que le flux de traitement (workflow) démarre dès qu’un utilisateur dépose une demande, donc d’un point de vue programmation, dès qu’un utilisateur  « ajoute » un élément dans la liste « Demandes Absences ».
Ajouter un nouveau workflow - Donner un nom et une description

Ajouter un nouveau workflow - Donner un nom et une description

Accéder aux paramètres du workflow - Flux de Travail

Accéder aux paramètres du workflow - Flux de Travail

Modification des paramètres de lancement du workflow demande d'absence/congé

Modification des paramètres de lancement du workflow demande d'absence/congé

Nous rentrons donc maintenant dans le vif du sujet.

Il nous faut donc démarrer notre première étape du flux de traitement de la demande d’absence  : Envoyer un mail au service RH une fois que la demande a été déposée.

Depuis SharePoint Designer :

  • 1ère action : Envoyer un mail au service RH après le dépôt d’une nouvelle demande.
  • On a vu précédemment que l’ajout d’un nouvel élément dans la liste « Demande d’Absences »  allait lancer l’exécution du workflow
Ajouter une action à une étape d'un workflow SharePoint 2010

Ajouter une action à une étape d'un workflow SharePoint 2010

Ajouter une action Envoyer un courrier électronique

Ajouter une action à une étape d'un workflow SharePoint 2010

Ajouter un champ d'information provenant d'une colonne dans un mail envoyé par un workflow

Ajouter un champ d'information provenant d'une colonne dans un mail envoyé par un workflow

Ajouter un champ d'information provenant d'une colonne dans un mail envoyé par un workflow

Ajouter un champ d'information provenant d'une colonne dans un mail envoyé par un workflow

Vous constatez que vous pouvez « customiser » le contenu du mail qui sera envoyé vers le service RH en venant y insérer des « champs » ou « colonnes » de la liste de « Demande d’Absences »

Customiser l'envoi d'un mail par le biai d'un workflow

Customiser l'envoi d'un mail par le biai d'un workflow

Pour tester cette première étape, ajoutons un élément à la liste et voyons ce qu’il se passe.

Pour cela nous devons sauvegarder le « Flux de Travail » et le publier sur le serveur afin de le rendre opérationnel.

Il est intéressant de noter qu’il est possible de vérifier la présence d’erreurs ou d’incohérences dans notre « workflow »

Vérification des erreurs pouvant exister dans un workflow

Vérification des erreurs pouvant exister dans un workflow

Et maintenant !

  • Après avoir mis en place l’envoi d’un mail lors de l’ajout d’un nouvel élément dans la liste « Demande d’ Absence », il nous faut créer une nouvelle Tâche dans « Validation Absence » afin que le service RH puisse consulter la liste des demandes en cours et leur Etat (traité – non traité)
  •  A la création de cette tâche, nous allons devoir récupérer des informations du nouvel élément « Demande d’Absence » fraichement créé.
  •  Les « Actions » du workflow SharePoint permettent de récupérer tout ou partie des champs (colonnes) de l’ élément de la liste qui vient de « déclencher » le workflow.
  •  Ceci se met en place en utilisant l’Action « Collecter »
Ajouter une action : Collecter les Données d'un utilisateur

Ajouter une action : Collecter les Données d'un utilisateur

Lors de cette Action, nous allons donc « Collecter » des « données » de l’ « utilisateur » venant de déposer sa demande d’Absence. Les informations (données) recueillies vont être stockées dans des « Variables » que nous allons créer. Puis, avec ces informations, nous allons pouvoir effectuer un suivi à la fois de la demande et de la validation

Wizard / Assistant, permettant de définir les colonnes supplémentaires devant être utilisées dans la liste des Tâche de suivi des validations

Wizard / Assistant, permettant de définir les colonnes supplémentaires devant être utilisées dans la liste des Tâche de suivi des validations

  • Nous allons créer une variable pour stocker les informations que nous allons récupérer
  • Cette première variable « IdDemandeAbsence » va stocker le numéro unique (ID) de la demande d’Absence. Ceci nous permettra ensuite de pouvoir pointer sur la bonne demande à traiter.
  • Il ne faut pas, en effet, que le service RH, en validant une tâche de « Validation d’Absence » se retrouve à valider la demande d’une autre personne.
  • C’est donc « IdDemandeAbsence » qui va nous servir de clé unique pour bien gérer les interactions entre « Demande d’Absence » et « Tâche de Validation »
Resultat de données Utilisateur collectées

Resultat de données Utilisateur collectées

  • Maintenant que nous avons collecté les deux valeurs
    • Validé/Refusé
    • Commentaire
  • Nous devons les sauvegarder dans notre liste « Validation d’Absence »
  • Pour cela nous allons utiliser l’Action « Définir le champ dans l’élément actif »
Définir le Champ dans l'élément Actif

Définir le Champ dans l'élément Actif

  • L’opération se complique à ce stade
  • Nous allons donc devoir faire un lien entre la « demande » et la « validation » par le biai de notre variable IdDemandeAbsence
  • Afin de récupérer le bon « Statut » de la « demande »
Rattacher la demande à la validation

Rattacher la demande à la validation

Il est important de bien noter ce point :

C’est en changeant le Statut du champ « Accepter-Refuser » que le service RH déclenchera le changement (la mise à jour) du champ « Statut » dans la « demande d’Absence »

Nous allons donc devoir, pour le flux en cours impactant la « demande d’absence », aller rechercher dans l’ensemble des tâches de « Validation d’absence » celle qui correspond bien : c-a-d celle qui a le même IDdemaneAbsence

Dans la liste de tâches « Validation d’Absence »

Nous voulons récupérer la valeur de la colonne (champ) « Accepter/Refuser »

Mais uniquement pour la demande encours, celle ayant   pour valeur « IDDemandeAbsence »

Recherche de Choix

Recherche de Choix

Nous venons de récupérer le champ « Accepter/Refuser » pour le synchroniser avec le champ « Etat » de la « demande d’absence », nous allons faire de même avec le champ « Remarque »

Recherche de Choix

Recherche de Choix

Voici donc notre Etape 1 du workflow

Il ne nous reste que l’envoi du mail de validation par le « Service RH ».

Synthèse de la première étape du workflow

Synthèse de la première étape du workflow

Une fois que le service RH a répondu à la « demande » en changeant le « Statut » en :

  • Validé
  • Refusé

Il faut envoyer un mail au demandeur (ayant déposé la demande d’absence) pour l’informer de la réponse faite par le service RH.

Mais cette fois le contenu du mail contiendra des champs de la liste « Validation d’Absence ».

Le mail doit être envoyé au demandeur : Rien de plus simple puisque SharePoint connaît tous les utilisateurs de l’entreprise et donc leur e-mail (via l’AD).

mail de validation fin du workflow demande absence conge 1

mail de validation fin du workflow demande absence conge 1

mail de validation fin du workflow demande absence conge 2

workflow demande absence conge 2

sauvegarder publier tester son workflow sharepoint 2010

sauvegarder publier tester son workflow sharepoint 2010

Sauvegarder, vérifier les erreurs, publier votre workflow

Lors de la publication, la liste de tâches « Validation d’Absence » va être modifiée par SharePoint pour y créer les champs

  • Accepter-Refuser
  • Commentaires

Contenu de la liste de tâches « Validation Absence »

contenu de son workflow sharepoint 2010

contenu de son workflow sharepoint 2010

Il ne reste plus qu’à créer une demande pour vérifier le bon fonctionnement du flux.

Sauvegarde publier tester son workflow sharepoint 2010 poster une demande absence

workflow sharepoint 2010 poster une demande absence

Le mail a bien été envoyé et contient bien les informations ad-hoc.

sauvegarde publier tester son workflow sharepoint 2010 recevoir mail de notification

workflow sharepoint 2010 recevoir mail de notification

Accès à la liste de tâches « Validation Absence »

sauvegarde publier tester son workflow sharepoint 2010 creation de la tache pour le service rh

workflow sharepoint 2010 creation de la tache pour le service rh

Ouverture de la Tâche « Validation Absence », puis Modification

sauvegarde publier tester son workflow sharepoint 2010 validation par le service rh

workflow sharepoint 2010 validation par le service rh

sauvegarde publier tester son workflow sharepoint 2010 validation par le service rh 2

workflow sharepoint 2010 validation par le service rh 2

Dans la Boite Aux Lettres du Demandeur

Deux mails:

  • 1er confirmant le dépôt de la demande
  • 2ème avec la réponse du service RH
workflow sharepoint 2010 recevoir mail de confirmation

workflow sharepoint 2010 recevoir mail de confirmation

Sauvegarder publier tester son workflow sharepoint 2010 recevoir mail de confirmation

workflow sharepoint 2010 recevoir mail de confirmation

Il est possible de transmettre un historique du flux

Sauvegarder publier tester son workflow sharepoint 2010 historique du flux

workflow sharepoint 2010 historique du flux

Sauvegarder publier tester son workflow sharepoint 2010 historique du flux

workflow sharepoint 2010 historique du flux

Nous espérons que cet article accompagné de cet exemple vous aidera à faire vos premiers pas dans la réalisation de workflow avec SharePoint 2010.

Vous l’avez compris, si vous êtes arrivé jusque là, que les workflow sont des outils particulièrement puissants pour simplifier les processus de l’entreprise et, par corolaire, faire gagner du temps à tous les acteurs.

Néanmoins la mise en place d’un workflow peut s’avérer complexe dans la phase préparatoire. Il est important de bien définir le processus de l’entreprise que l’on souhaite modéliser.

Si vous cherchez un partenaire pour :


Vous souhaitez en savoir plus sur nos solutions ?
Contactez-nous et prenons le temps de discuter de votre projet :

Votre Prénom et NOM (obligatoire) :

Votre email (obligatoire) :

Votre numéro de téléphone (recommandé) :

Sujet / Projet :

Votre message : (obligatoire)

Anti-spam : combien y a t-il de lettres dans le mot OPENHOST ? 

application workflow • hosted sharepoint • sharepoint • SharePoint Designer • sharepoint foundation • software workflow • workflow • workflow designer •