Maintenir des workflows 2013 : retour d’expérience

J’ai dû maintenir des applications SharePoint contenant des workflows 2013, ce qui peut être une galère 😉 blog ai3 keep-cool-all-problem-have-a-solution Maintenir des workflows 2013 : retour d'expérience

Voici quelques techniques que j’ai utilisées pour améliorer ces applications. Je prendrai l’exemple d’une gestion des demandes formations (training requests, les captures écran sont en anglais).

Commentez vos workflows grâce aux étapes (steps)

blog ai3 WkF04 Maintenir des workflows 2013 : retour d'expérienceUn bon code est un code commenté. Ce qui est facile à faire en utilisant les steps que l’on nomme clairement.

Je conseille de commencer le nom d’un step par un verbe à l’infinitif et de mettre 1 à 8 instructions par step.

Pensez aux api REST

Dans cet exemple de gestion des demandes de formations :

  • Le workflow ci-dessus se déclenche lorsqu’un utilisateur créé une nouvelle demande.
  • On voit dans la capture écran qu’une seconde liste est mise à jour : celle du suivi budgétaire des formations par département.
  • Quand une demande est modifiée par le service qui instruit ces demandes, un second workflow doit également mettre à jour le suivi budgétaire, selon des règles métier liées au statut de la demande :
    • La demande est au statut « émise »
    • Elle peut passer au statut « acceptée »
    • Ou « à revoir »
    • Ou « refusée »
    • Ou encore « annulée »
  • Ces règles métiers étaient gérées avec des colonnes cachées « ancien Statut » et « ancien Coût ».
  • Mais tous les cas de transitions n’étaient pas couverts et j’ai dû corriger cela.

J’ai totalement réécrit le second workflow en utilisant les api REST, quand une demande est mise à jour :

  • Une requête REST lit toutes les demandes de formation du département concerné
  • Le « Total dépensé » et le « Total engagé » sont remis à jour

Ce workflow est ainsi devenu plus simple et plus robuste.

Plusieurs articles sont disponibles sur le net pour l’utilisation des api REST dans les workflows, en voici un (en anglais).

Mettez en place les notifications d’erreurs

Les workflows 2013 s’exécutent sur des serveurs séparés de la ferme SharePoint, de manière asynchrone comme les workflows 2010. Si un élément de cette architecture est temporairement indisponible, votre workflow peut échouer. Il faut donc prévoir ces cas, même exceptionnels.

J’ai mis en œuvre avec succès la méthode de Dave Sampson’s :

  • Dans la liste cachée workflow history, d’abord ajouter une colonne calculée « Is error »
  • Ensuite créer un affichage avec comme critère de filtrage « Is error = Yes »
  • Enfin créer une alerte quand un nouvel élément apparaît dans cet affichage

La formule de la colonne “Is error” est =OR([Event Type]=0,[Event Type]=10).
Cette colonne semble nécessaire, alors que l’on aurait envie de créer un affichage « [Event Type]=0 OR [Event Type]=10 ».

blog ai3 WkF03 Maintenir des workflows 2013 : retour d'expérience

Dans mon cas les notifications d’erreurs sont envoyées au service support, qui a une adresse de messagerie générique. A noter que le user SharePoint associé à cette adresse doit alors avoir accès au site en lecture.

Conclusion

Les workflows SharePoint sont adaptés à des applications légères telle que cette gestion de demandes de formations, avec un volume de ~300 demandes par an.

L’application finale délivre un bien meilleur service qu’une gestion dans Excel, sourires chez les utilisateurs.

L’application est devenue plus fiable, plus facile à exploiter et à maintenir, sourires dans les équipes IT.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.