« Approbation – SharePoint 2010 » et démarrer le flux de travail lorsqu’un élément est modifié

Le workflow Out-of-the-Box  intitulé « Approbation – SharePoint 2010 » permet de piloter l’approbation de contenu d’un élément, en mettant à jour son état d’approbation. Ce workflow nous met à dispositions une batterie d’options permettant de couvrir un ensemble de cas. En l’occurence, à l’association de ce flux de travail à une liste SharePoint (ou bibliothèque, etc), plusieurs options de démarrage sont donc disponibles :

  • Autoriser le démarrage manuel de ce flux de travail par un utilisateur authentifié disposant des autorisations de modification d’éléments.
  • Démarrer le flux de travail lorsqu’un nouvel élément est créé.
  • Démarrer le flux de travail lorsqu’un élément est modifié.

Fait étonnant : lorsque l’on sélectionne le démarrage du flux de travail à la modification d’un élément, l’état d’approbation n’arrive jamais en état d’approbation « Approuvé ». Cela mérite une explication.

Lorsqu’on observe (voir capture ci-contre) les options de fin de tâche du flux de travail – via SharePoint Designer. On observe plusieurs choses :

  1. Il existe une conditionnelle qui teste si l’option de démarrage « démarrer le flux de travail lorsqu’un élément est modifié » n’est pas définie (égale à « Non »).
  2. Cette conditionnelle n’a pas d’embranchement « Sinon ». Autrement dit, si vous avez activé l’option de démarrage lié à une modification, les actions incluses dans la conditionnelle ne pourront jamais s’exécuter.
  3. La définition de l’état d’approbation du document en « Approuvé » (différente du statut du workflow) est définie dans cette conditionnelle.

ApprovalOptions

Utiliser cette fonctionnalité nécessite donc une intervention manuelle de chaque approbateur pour approuver chaque élément (en plus du worklow et des tâches associées).

Pour palier à ce soucis il va nous falloir modifier le workflow « Approbation – SharePoint 2010 ». Voici un petit mode oépratoire pour rapidement mettre en oeuvre une solution :

  • Ouvrez le site sur lequel vous voulez implémenter ce workflow via SharePoint Designer 2010.
  • Rendez-vous dans le menu des flux de travail, faites un clic sur « Approbation – SharePoint 2010 » et « Copier puis Modifier ».
  • Cliquez sur « Modifier le flux de travail »
  • Cliquez sur le processus du flux de travail : l’élément directement à droite de « Démarrer le processus »
  • Cliquez sur « Modifier le comportement du processus de tâche global »
  • Modifiez le workflow pour que la rubrique « Lorsque le processus de tâche se termine » ressemble à l’exemple suivant (voir catpure d’écran ci-dessous)
  • Enregistrez. Publiez. Ajoutez un workflow comme à l’accoutumé, via le menu des flux de travail de votre liste ou bibliothèque SharePoint.

ApprovalOptionsModified