Reading Time: 7 minutes
Introduction
Nous avions tous à une certaines époque des fermes SharePoint on-premise avec des flux de travail pour modéliser nos processus business d’approbation, de partage de document…
Ces processus étaient souvent construit en utilisant le bon vieux SharePoint Designer qui permettait de construire nos flux et les publier sur notre plateforme. Aujourd’hui le Cloud est la et un nouveau service est à notre disposition: Power Automate.
Le but de cet article est de vous guider dans la manière de gérer et planifier la migration de flux SharePoint 2010 ou 2013 dans Power Automate.
Les flux SharePoint 2010 & 2013
Commençons déjà par expliquer le fonctionnement des flux de travail SharePoint 2010 & 2013 afin de bien comprendre la différence avec Power Automate. Si vous maitrisez déjà cet aspect, vous pouvez passer au chapitre suivant.
Les flux SharePoint 2010 étaient publiés sur la plateforme SharePoint Server et exécutés par le runtime SharePoint flux de travail. Les flux SharePoint 2010 ne sont plus supportés par Office 365 depuis Novembre 2020 (SharePoint 2010 workflow retirement – Office Support (microsoft.com) )
Les flux SharePoint 2013 étaient publiés sur la plateforme SharePoint Server et executés dans un processus dédié pour les flux de travail. Ces workflows ne sont plus supporté depuis Novembre 2020 sauf pour ceux qui ont été migrés sur O365 qui sont eux maintenus jusque janvier 2023.
Comme vous l’aurez compris ces 2 types de workflows sont vraiment dépendants de la plateforme SharePoint et nous avions à disposition des outils comme SharePoint 2010/2013 Designer pour développer ces workflows.
SharePoint Designer 2010
Un des points important à souligner également est que sur ce type de workflow, étant executé sur des fermes on-premise nous avions la possibilité de développer des custom activities et les déployer sur notre ferme. Des custom activities ne sont rien de plus que des actions de workflow que vous pouviez développer via une solution visual studio et ensuite déployer sur votre ferme afin de pouvoir les utiliser dans vos workflows. Bien évidemment, ce genre ne choses n’est possible que sur des fermes on-premise.
Et Power Automate alors ? c’est quoi la différence ?
power automate logo
Power Automate est un moteur de workflow totalement indépendant qui fait partie du service PowerPlateform dans Office 365.
Ce service n’est disponible que dans le cloud mais permet d’interagir avec des systèmes on-premise par le biais de solution comme la Data Gateway.
L’avantage de cette solution c’est que vu qu’elle est totalement indépendante, elle vous permet de construire des workflows pour pas mal d’application y compris sans interaction avec SharePoint. Contrairement aux flux de travail SharePoint qui eux ce limitait à des déclenchement à partir de données sur cette plateforme, power automate lui est capable de se déclencher à la reception d’un email dans une boite exchange par exemple.
Cette solution permet donc la modélisation de processus bien plus élargie que ce que nous connaissions avec SharePoint.
L’inconvénient est que cette différence ne permet pas de migrer de manière automatique les workflow SharePoint vers powerautomate. On parle alors plus de réécriture.
Réécriture dans Power Automate
Vous avez encore des workflow 2010 ou 2013 ? je vous conseil vivement donc de passer à la solution power automate si vous planifiez une migration O365 ou si vous êtes déjà sur O365. Si un partenaire dans le cadre d’un nouveau projet vous conseil le développement d’un workflow SharePoint 2013… c’est une erreur! Vous partirez déjà avec une dette technique et une deadline déjà communiquée par Microsoft sur le support de ces workflows.
Vu que nous parlons ici plus de réécriture que de migration, voici les quelques étapes que je considère nécessaire pour que cela se passe bien. Bien évidemment ce n’est pas exhaustif! Chaque projet/contexte est différent et particulier et donc nécessitera peut être des étapes supplémentaires.
Les pré-requis
Avant de faire du power automate, il faut avoir connaissance des pré-requis.
Des licences Power Automate Avoir migré son site dans Office 365 ou installer une datagateway avec une version de SharePoint supportant le modèle Hybride Quelques connaissance sur power automate et son fonctionnement. Un compte de service propriétaire des flux et des connexions
L’inventaire
Tant qu’a réécrire des workflows, c’est le bon moment aussi pour se poser les bonnes questions:
Mon workflow est-il toujours utilisé/nécessaire? Mon workflow est-il toujours en phase avec mon processus business? Mon workflow peut-il être amélioré par des tâches faisable dans powerautomate ?
L’idée est de dresser un inventaire de vos workflows en identifiant les informations suivantes:
Type de trigger Listes dépendantes Colonnes dépendantes Tâches Usage de custom activities ? Dépendance avec une solution de ferme?
Une fois que vous avez l’ensemble de ces informations et que vous en avez profiter pour vous poser les bonnes questions sur vos workflows, vous pourrez ainsi définir votre périmètre de réécriture précis.
L’inventaire peut être sous le format qui vous convient le mieux, pour ma part, j’opte généralement pour un bon vieux fichier excel avec une sheet par workflow afin d’avoir un inventaire clair et complet.
L’optimisation
Power Automate offre d’autres possibilités que les workflow SharePoint. Cela peut vous permettre notamment de répondre à un besoin qui n’était pas faisable en standard ou nécessitait le développement d’une custom activities.
C’est le moment de prendre le périmètre de réécriture et de chercher à optimiser/améliorer vos workflows.
Tout d’abord, concentrez vous sur les custom activities dont nous savons déjà que nous pourrons pas les récupérer. Identifiez ce que fait votre custom activities et intégrez cela à votre workflow. De quel manière je procède personnellement? Pendant l’inventaire, je fais un schéma draw.io me permettant de répertorier toutes les tâches de mon workflow, si je trouve des custom activities, jâintègre des actions power automate remplaçante à la place.
Exemple: Votre custom activities effectue un appel API et fait une mise à jour d’un élément dans SharePoint. ça tombe bien, une action powerautomate vous permet de faire un appel API. Remplacez donc cette custom activities par les étapes power automate qui vous permettrons de reproduire le flux d’origine.
Ensuite, on va rechercher l’optimisation. En effet, power automate permettant de faire pas mal de chose par le biais des conditions, contrôles et actions vous trouverez surement des améliorations à effectuer à votre workflow.
Personnellement je ne fais pas de travail en amont pour cette partie. Généralement je le fais au moment de la réécriture. Néanmoins si besoin, vous pouvez reprendre votre schéma et la liste des tâches power automate disponibles afin d’identifier des améliorations possibles et le prévoir dans votre réécriture.
La réécriture
Passons maintenant à la réécriture, pour cela il vous faut votre inventaire et vos schémas, si besoin vous pouvez garder SharePoint Designer ouvert avec les anciens workflow si ça peut vous aider. Normalement l’inventaire devrait suffire si vous avez mis l’ensemble des informations importantes dans celui ci.
Il vous suffit ensuite d’ouvrir power automate et de reproduire votre workflow, si ce dernier doit interagir avec des systèmes externes comme SharePoint, Exchange ou autre les tâches à disposition effectuerons la création de connecteur. Les connecteurs vous permettent d’avoir une meilleurs expérience power user lors de la construction de votre flux power automate. En effet, les connecteurs vous présente un panel de configuration et d’option adaptées pour la solution cible, derrière cela il ne s’agit que des appels à une API…
Attention, les connecteurs se configurent de basent avec votre identité utilisateur, veillez donc à bien disposer des droits.
Une fois votre flux réécrit, veillez à ne pas avoir d’erreur via le flux checker et effectuez un test via la fonction de test. (je ne vais pas m’étendre ici sur le fonctionnement de power automate, je ferais un article sur le sujet ultérieurement).
Une fois testé enregistrez le et validez le bon fonctionnement avec des utilisateurs.
Vue Power Automate
La configuration
Comme indiqué dans le chapitre précédent, si vous avez utilisé votre compte pour les connecteurs utilisé de votre flux, cela va poser un problème. Mais pourquoi?
Imaginons, votre compte est désactivé ou supprimé. Le flux utilisent votre compte pour les différents connecteurs qu’il utilise mais pire, vous êtes le seul propriétaire du flux! (Bon ok les admin O365 y ont accès mais imaginons qu’ils sont en vacance 🙂 ), Votre flux va tout simplement tomber en erreur ce qui est tout à fait logique.
Mais alors, c’est quoi la bonne pratique?
Pour ma part, je vous conseil un compte de service pour lâexécution de vos flux.
Assignez les droits au site SharePoint ou autre à votre compte de service, puis définissez votre compte de service comme propriétaire du flux par la même occasion. Si besoin, changez les connexions de vos connecteurs pour utiliser l’identité du compte de service.
Panel settings d’une action
La supervision & le monitoring
De base si votre flux est en échec, les propriétaires reçoivent un mail pour prévenir de lâéchec en mentionnant le nombre dâoccurrence.
La power plateforme vous permet également d’avoir quelques dashboard au format Power BI des executions, du statut etc…
Flow analytic dashboard
Vous pouvez au sein de powerautomate, consulter l’historique des executions mais aussi pour chaque execution consulter l’historique des tâches exécutées afin que si un échec est survenu, comprendre pourquoi, sur quelle tâche et avec quelles données en entrée et l’erreur retournée.
Il n’existe à ce jour malheureusement pas d’intégration avec Application Insight comme nous pouvons l’avoir avec les PowerApps, néanmoins les données de vos flux sont consultables via API et donc on peut imaginer intégrer votre outil de supervision préférer afin dâexécuter un PowerShell pour récupérer le statut des executions et provoquer une alerte si il y a des échecs.
La gouvernance
De manière générale, power automate & power apps sont des services cloud qui peuvent vite se transformer en Shadow IT. En effet, des power user qui auraient des droits pourrais très vite fabriquer des flux ou des apps indispensables au sein du SI sans que cela soit visible ou répertorié. Souvenez vous de la bonne époque des applications access indispensables au business…
Pour ce faire, Microsoft à mis à disposition un Kit COE: Kit Center of Excellence Microsoft Power Platform – Power Platform | Microsoft Docs
Je vous conseil grandement de le mettre en place au sein de votre organisation si vous comptez utiliser la powerplateform. Ce kit est composé d’une combinaisons de flux, apps et rapports vous permettant d’avoir une vision complète sur l’utilisation de la powerplateform au sein de votre tenant. Ce kit est bien évidemment customizable et peut donc être adapté en fonction de vos besoins. Je reviendrais sur ce sujet dans le cadre d’un autre article sur la mise en place de ce kit.
Conclusion
Power Automate est un composant formidable sur lequel il faudra investir rapidement surtout pour les entreprises disposants de flux SharePoint. Mais attention à l’opacité de la powerplateform de base! Voici ma manière d’aborder une réécriture de flux et comme spécifié, la manière d’aborder un problème dépend de la complexité et de son contexte, j’espère néanmoins vous donner des bases pour préparer vos réécriture au mieux 🙂
J’aime ça : J’aime chargement…
Articles similaires
mars 4, 2014 @ 11:53 am
Bonjour,
Y-a-t’il un moyen de limiter le nombre de participants?
mars 26, 2014 @ 11:21 pm
Bonjour à vous,
Oui en effet il est très facile d’adapter la méthode décrite.
Il vous suffit par exemple de rajouter une colonne à votre liste avec le nombre max de participant.
Puis de la même maniére aller vérifier que ce nombre n’est pas atteint.
Si besoin je peux prendre un peut de temps pour faire l’adaptation et la partager.
mai 26, 2015 @ 11:35 am
Bonjour,
J’essaye de réutiliser cette méthode dans sharepoint 2013 online. N’étant pas un expert, j’ai effectué toutes les étapes, une seule me pose problème « Vérifier les name de vos input ». Que faut-il modifier et ou trouver l’info ?
mai 28, 2015 @ 11:09 pm
Bonjour à vous,
Avec l’inspecteur de code de votre navigateur, pointez le champs concerné ou vous mettez les noms des gens peoplepicker et repérez l’ID du controle.
De cette façon, dans le javascript vous n’avez plus qu’a mettre le bon ID. le code fonctionnera parfaitement.
Je penses faire dans quelques semaines une sharepoint App pour SharePoint 2013 qui fera exactement ce qu’explique mon tutoriel et sera alimenté par la suite si besoin.
Dès ça publication je posterai un article, tenez vous au courant 😉
Valentin
juin 9, 2015 @ 6:28 pm
Désolé, je m’y connais très mal en javascript et globalement code. Quels sont les endroits qu’il faut modifier dans votre javascript du coup ?
L’ID peut-il avoir cette forme ? : ctl00_ctl40_g_caec594f_fe3d_4428_92e8_e9898c133c24_ctl00_ctl05_ctl08_ctl00_ctl00_ctl04_ctl00_ctl00_UserField_upLevelDiv
juin 10, 2015 @ 7:48 am
Bonjour à vous, ah effectivement sans le minimum de connaissance c’est un peu compliqué ^^
Justement je suis entrain de travailler en ce moment sur une Sharepoint App qui intégre ce mécanisme qui sera sur le store dans les prochaines semaines.
Sinon clairement, vous devez remplacer dans le code le « ff9 »
Avec l’inspecteur de code de votre navigateur, inspectez le people picker et naviguez dans les éléments enfant jusqu’a ce que vous trouviez un élément avec un ff quelque chose.
Une fois trouvé, si par exemple le votre est ff2, il suffit de remplacer ff9 dans mon code par ff2.
Normalement, tout devrais fonctionner ensuite.
Bien à vous,
Valentin
septembre 25, 2015 @ 12:00 pm
bonjour
je suis sous SharePoint 2013 et je voudrais faire un calendrier de formation avec nombre de place restant disponible aces formulaire d’ inscription et vous citez Justement je suis entrain de travailler en ce moment sur une Sharepoint App qui intègre ce mécanisme qui sera sur le store dans les prochaines semaines.
avez vous fait un exemple pour apprendre la méthode je suis débutant
merci
septembre 25, 2015 @ 12:51 pm
Bonjour à vous,
Oui en effet, un peu de retard dans la publication de celle ci mais elle est bien en cours de développement et sera en ligne ASAP. Je ferais un article sur celle ci via le blog.
Que sous entendez vous par apprendre la méthode?
L’application sera très basique en utilisation, c’est justement pour éviter de mettre les mains dans le code que je la développe. Vous n’aurez qu’a l’installer puis l’utiliser.
Bien à vous,
Valentin
septembre 8, 2016 @ 8:30 am
Bonjour
Avez vous abouti sur votre app pour sharepoint 2013?
Merci pour votre réponse et pour ce partage!
novembre 3, 2016 @ 8:53 am
Bonjour à vous, Non désolé par manque de temps je n’ai pas pu encore finaliser l’application SP2013. C’est dans ma todo list mais j’espère pouvoir la finaliser au plus vite ainsi que certain articles qui sont en attente de publication sur le blog. Désolé pour ce délais…
janvier 11, 2017 @ 11:31 am
Bonjour Je suis très interessé par votre application, est-elle en ligne?
Bien à vous,
Anthony
janvier 25, 2017 @ 8:36 pm
Bonjour, non c’est en cours.
Elle sera dispo en source libre sur codeplex et certainement sur le sharepoint store.
Bien à vous,
Valentin
janvier 26, 2017 @ 10:30 am
Bonjour,
Auriez-vous une solution sans SharePoint Designer, qui est interdit chez mon client?
Merci d’avance!
février 7, 2017 @ 5:01 pm
Bonjour à vous,
Vous pouvez effectuer l’implémentation dans une farm solution ou une SharePoint App tout dépend la version de SharePoint que vous utilisez. Mais étant donné que nous manipulons des contents page qui sont donc en base donnée ça me parait compliquer de faire cela sans SharePoint designer ou un autre outil.
Sachez que j’ai travaillé sur une SharePoint App que je dois finaliser et publier sur le store qui intègre ce qui est décrit dans l’article prêt à l’emploi.
Je n’ai pour le moment pas récupéré mes machines donc je dois encore patienter.
Bien à vous
février 13, 2017 @ 10:55 am
Bonjour Valentin,
Merci pour la réponse!
Faites-moi signe quand votre solution sera prête, elle devrait intéresser mon client.
Cordialement,
Thierry
février 13, 2017 @ 11:16 am
Bonjour à vous,
Pas de soucis, je ferais un article la dessus.
Dans un premier temps une app SP2013 sera publiée sur le sharePoint store et par la suite un WSP certainement via codeplex.
Bien à vous,
Valentin
mai 31, 2017 @ 2:28 pm
Bonjour,
Dans sharepoint 2013, je ne trouve pas lâID du contrôle peoplepicker commençant par « ff » même avec « inspecter » du navigateur.
Cordialement.
Pierre
mai 31, 2017 @ 2:45 pm
Bonjour à vous,
Pourtant il est bien la, il est obligatoirement ajouté afin que SharePoint puisse fonctionné correctement sauf si votre formulaire à subit des customisations.
Je vous conseil par le biais de l’inspecteur du navigateur de soit faire une recherche soit regarder a lâintérieur des éléments afin de le trouver.
Bien à vous,
Valentin
mai 31, 2017 @ 2:58 pm
L’ID est t’il bien sur la page de modification de l’element « EditForm.aspx »? Pouvez vous me donner le nom de la balise contenant l’ID?
Cordialement.
Pierre
mai 31, 2017 @ 3:25 pm
Ce sont des éléments input. Vous en avez un type= »hidden » qui contient les gens et un autre pour la saisie en type= »text »
mai 31, 2017 @ 3:48 pm
Je n’ai pas d’input sur la page DispForm.aspx contrairement à votre 3eme capture d’écran
mai 31, 2017 @ 3:59 pm
Il faut via SharePoint Designer créer un nouveau formulaire de liste en sélectionnant formulaire d’affichage de façon à en régénérer un.
juin 2, 2017 @ 10:21 am
Merci j’ai trouvé l’ID avec sharepoint designer 2013 et en visualisant le code d’un nouveau formulaire editform
juin 2, 2017 @ 11:08 am
Ce que je ne comprends pas c’est comment vous faites apparaître « Participants inscrits » en mode édition sur votre dispform.
Cordialement.
Pierre
juin 5, 2017 @ 9:22 am
En créant une nouvelle colonne à votre liste cela ajoute un nouveau champs à vos formulaires. Le champs est donc ajouté automatiquement, nous appliquons juste du javascript pour effectuer ce que nous voulons faire.
Cdt,
valentin