Modèles de flux de travail invisibles (?!)

Je viens de subir un cas assez étonnant, survenant sur une instance de collection de site uniquement (et affectant donc le site racine et l’ensemble de ses sous-sites). Aucune idée de ce qui a pu générer cela … mais voici néanmoins un petit état des lieux de ma démarche.

Etat des lieux :

  • L’ensemble de fonctionnalités de collection de site faisant référence aux flux de travail étaient activés (Flux de travail, Flux de travail à trois, états, Flux de travail approbation de destruction, Flux de travail d’approbation de publication, Flux de travail SharePoint 2007, Options Web Analytics avancées).
  • /_layouts/wrkmng.aspx me confirme bien que l’ensemble des flux de travail sont « Actifs » (Administration de la collection de sites > Flux de travail).

Deux états de faits :

  • Lorsque j’essayais d’associer un flux de travail (via un compte administrateur de la collection de site) sur une bibliothèque de documents je n’ai à ma disposition que les flux de travail trois états et l’approbation de destruction de disponible. J’ai difficilement trouvé une source à mon soucis, mais pas de solution à l’horizon : Only Deposition Workflow is avaliable in SharePoint 2010
  • Lorsque je m’amusais à ouvrir le site racine via SPD je n’ai aucun « Globaly Reusable Workflow / Flux de travail réutilisable globalement » de disponible.

J’ai pu reproduire ce mode de fonctionnement (sauf côté SPD) en désactivant les flux de travail définis par l’utilisateur (Centrale d’administration > Paramètres généraux de l’application web > Flux de travail). Comme indiqué en introduction, seule une collection de sites était touchée par ces soucis.

J’ai, une énième fois, désactivé l’ensemble des fonctionnalités de collections de sites liées aux flux de travail (voir ci-dessus). A la réactivation de n’importe laquelle des fonctionnalités suscitée,  j’ai eu le droit au message d’erreur suivant :

Une liste, une enquête, un forum de discussion ou une bibliothèque de documents avec le titre spécifié existe déjà dans ce site Web. Veuillez choisir un autre titre.

Il était clair que l’activation de ces fonctionnalités étaient interrompus par un processus de création. L’ordre de désactivation a t’il généré cette erreur ? aucune idée. Néanmoins, en fouillant un peu ici et là, j’ai rapidement pu retrouver mes petits. A priori, tout se trouve concentré au niveau de la bibliothèque _catalogs/wfpub. Via SPD j’ai rapidement pu constater que, même si celui-ci existait, il n’était pas considéré comme étant une bibliothèque de documents SharePoint (et son icône associé). Une fois ce dernier renommé (en wfpub_old), les fonctionnalités ont de nouveau pu être redéployées. Par la même, les flux de travail étaient à nouveau activable.

Rien ne me permet d’affirmer la cause de ces dysfonctionnements. Je n’ai pas non plus poussé le vice à chercher/trouver les causes de tout cela, mais à force d’habitude, une certaine connaissance des méandres de SharePoint permet de s’affranchir de problèmes qui peuvent, à priori, sembler bloquants voir difficilement surmontables.

« 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