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 :

- 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.
| Les demandeurs | |
| Les « validateurs » (les personnes du Service RH) | |
![]() | Une 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. |
![]() | Une 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 |
| La 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. | |
![]() | Les é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.
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
![]() | 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)
![]() | 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. 
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 ».
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
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 »
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 »
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 »
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
- 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 »
- 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
- 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 »
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 »
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 »
Voici donc notre Etape 1 du workflow
Il ne nous reste que l’envoi du mail de validation par le « Service RH ».
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).
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 »
Il ne reste plus qu’à créer une demande pour vérifier le bon fonctionnement du flux.
Le mail a bien été envoyé et contient bien les informations ad-hoc.
Accès à la liste de tâches « Validation Absence »
Ouverture de la Tâche « Validation Absence », puis Modification
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
Il est possible de transmettre un 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 :
Héberger votre Site Sharepoint Server ou SharePoint Foundation
Développer des workflow ou d’autres fonctionnalités autour de SharePoint, Exchange…
Contactez-nous !
Contactez-nous et prenons le temps de discuter de votre projet :


































