Automatiser les processus métier avec Power Automate — flux cloud, flux de bureau et gestion robuste des erreurs
· Mis à jour le: · Go Komura · Power Automate, RPA, Automatisation des processus métier, Flux de bureau, Flux cloud, PowerShell, VBA, Excel, Office, Réutilisation des actifs existants, Conseil technique
« Chaque matin, quelqu’un rassemble les CSV accumulés dans un dossier partagé, les compile dans Excel et envoie le résultat par e-mail à sa hiérarchie. » « Des valeurs sont recopiées à la main depuis plusieurs systèmes métier juste pour produire un récapitulatif. » Nous recevons régulièrement ce genre de demandes : automatiser ce type de tâche avec Power Automate.
Le premier petit flux se met en général à fonctionner en quelques dizaines de minutes. La difficulté commence après. Une fois le flux en production depuis un moment, il s’arrête parfois avec une erreur. Un simple changement mineur dans la mise en page de l’écran du système cible suffit à casser le flux. Personne n’a tranché où stocker le mot de passe, alors il reste écrit en clair, tel quel, dans une variable d’entrée « pour l’instant ». Il existe bien un « flux qui fonctionne », mais quand quelque chose tourne mal, personne n’est vraiment capable de le réparer — nous avons vu ce schéma se répéter plusieurs fois.
Power Automate a un coût d’apprentissage faible et permet de démarrer en no-code / low-code. C’est justement cette facilité qui fait qu’il est facile de laisser la conception de côté et de se retrouver malgré tout en production. Cet article aborde, dans l’ordre où l’on trébuche le plus souvent en pratique : la différence entre flux cloud et flux de bureau, la répartition des rôles avec PowerShell et VBA, la gestion des erreurs, la façon de stabiliser l’automatisation de l’interface utilisateur, le traitement des informations d’identification, la gouvernance et l’exploitation, et enfin comment repérer le moment où l’on dépasse le périmètre de Power Automate.
1. L’essentiel à retenir
- Power Automate se divise globalement en deux familles : les flux cloud (qui relient des services cloud via des connecteurs) et les flux de bureau (une RPA qui automatise les opérations d’écran et les applications Windows). Déterminer d’abord lequel des deux est réellement nécessaire est la première décision de conception.
- Si l’objectif se limite à automatiser une « tâche répétitive sur PC », PowerShell est souvent un meilleur point de départ que Power Automate Desktop. Tant que les clics ou les saisies à l’écran ne sont pas indispensables, PowerShell est généralement plus facile à maintenir et s’intègre mieux à la gestion de versions.
- Power Automate prend toute sa valeur lorsqu’il faut opérer l’écran d’un système existant peu ou pas relié à une API, ou lorsqu’on veut construire rapidement des flux de notification et d’approbation autour des connecteurs Microsoft 365 (Outlook, SharePoint, Teams, etc.).
- Avant de passer en production, quatre points doivent être intégrés dès la conception, et non ajoutés après coup : la gestion des erreurs (On Block Error), la stabilisation des sélecteurs d’interface, la gestion sécurisée des informations d’identification, et la gouvernance via les politiques DLP.12
- L’exécution non supervisée (unattended) nécessite une licence et des prérequis différents de l’exécution supervisée (attended). Reporter la conception de la licence expose au risque qu’un flux fonctionnant en environnement de test ne puisse pas être déployé en production.34
2. La forme générale de Power Automate
Power Automate n’est pas tant un produit unique qu’une plateforme regroupant plusieurs mécanismes d’automatisation.
flowchart TB
PA[Power Automate]
PA --> Cloud[Flux cloud]
PA --> Desktop[Flux de bureau / RPA]
PA --> Process[Exploration de processus]
PA --> Builder[AI Builder]
Cloud --> Auto[Flux automatisé<br/>déclenché par un événement]
Cloud --> Sched[Flux planifié<br/>exécution périodique]
Cloud --> Instant[Flux instantané<br/>démarrage manuel / bouton]
Cloud --> Connectors[Connecteurs<br/>SharePoint / Outlook / Teams / SQL, etc.]
Desktop --> Attended["Supervisé (attended)<br/>exécuté devant l'utilisateur"]
Desktop --> Unattended["Non supervisé (unattended)<br/>exécuté sur un serveur/PC dédié"]
Desktop --> UIAuto[Automatisation de l'interface utilisateur<br/>opération d'écran, intégration d'applications existantes]
- Le flux cloud est un mécanisme qui relie des services cloud entre eux via des connecteurs. Selon le type de déclencheur, il se divise en flux automatisé (à un événement), flux planifié (exécution périodique) et flux instantané (démarrage manuel).
- Le flux de bureau est une RPA (Robotic Process Automation) qui opère directement les applications et les écrans sous Windows. Il peut être appelé depuis un flux cloud ou s’exécuter de façon autonome.5
- Le flux de bureau se divise en outre en exécution supervisée (attended), qui s’exécute avec une personne devant l’écran, et exécution non supervisée (unattended), qui s’exécute sur un PC ou un serveur dédié sans intervention humaine.4
Une « machine dédiée » pour l’exécution non supervisée ne signifie pas simplement qu’elle ne doit pas être verrouillée. Sous Windows 10/11, l’exécution non supervisée échoue si la session de n’importe quel utilisateur subsiste, même verrouillée, indépendamment du fait qu’il s’agisse ou non de l’utilisateur utilisé pour la connexion. Sous Windows Server, le périmètre est un peu plus restreint : l’exécution est bloquée si une session verrouillée du même utilisateur que celui utilisé pour la connexion subsiste. Après une opération de maintenance ou une connexion RDP par un autre administrateur, on a tendance à se contenter de « verrouiller » ou de « déconnecter » la session, mais il faut impérativement que tout le monde se déconnecte (sign out).6
Lors d’une consultation, nous commençons toujours par distinguer « s’agit-il de relier des services cloud entre eux, ou d’opérer un écran ? ». Cela suffit déjà à clarifier une bonne partie du sujet.
3. Flux cloud, flux de bureau, PowerShell et VBA : comment les répartir
Même sous l’étiquette commune d’« automatisation », ces quatre outils excellent dans des domaines assez différents.
| Aspect | Flux cloud | Flux de bureau | PowerShell | VBA |
|---|---|---|---|---|
| Environnement d’exécution | Cloud Microsoft | PC / serveur Windows | PC / serveur Windows | Dans une application Office |
| Points forts | Intégration SaaS-à-SaaS, notifications, approbations | Opération d’écran, intégration d’applications héritées | Opérations sur fichiers, traitement par lots, appels d’API | Opérations dans une application Office, production de documents |
| Déclencheur | Événement, planification, manuel | Appel depuis un flux cloud, planification | Planificateur de tâches, manuel | Événements de l’application Office, manuel |
| Complexité logique | Moyenne (combinaison de connecteurs) | Moyenne à faible (centré sur l’opération d’interface) | Élevée (langage de programmation complet et flexible) | Élevée (flexible, mais cantonné à l’intérieur d’Office) |
| Gestion des erreurs | Consultée via l’historique d’exécution du flux | On Block Error, paramètres de nouvelle tentative | try/catch, codes de sortie | On Error Resume Next, etc. (relativement faible) |
| Gestion des sources | Possible de façon approximative via export (zip) | Possible de façon approximative via export (zip) | Se prête bien à une gestion textuelle avec Git | Intégré au classeur ; difficile à gérer |
| Cas adaptés | Flux d’approbation, notifications, intégration SaaS, flux métier autour de Microsoft 365 | Opération d’écran de systèmes existants sans API, intégration d’applications héritées | Traitement de gros volumes de données, traitement par lots récurrent, exécution serveur, traitement facile à tester | Travail d’un individu ou d’une petite équipe entièrement contenu dans Excel/Access |
Une idée reçue fréquente en pratique consiste à penser que « vouloir automatiser » signifie automatiquement « utiliser Power Automate ». Opérer via l’interface d’un système qui dispose déjà d’une API avec Power Automate Desktop est typiquement un cas où appeler directement cette API depuis PowerShell ou .NET serait plus stable. À l’inverse, lorsqu’il faut opérer l’écran d’un ancien système métier sans API ou d’une application Win32, l’automatisation de l’interface utilisateur d’un flux de bureau devient un choix réaliste.
Remarque : les contraintes d’Excel et de VBA, ainsi que la façon d’envisager leur remplacement, sont détaillées séparément dans « Qu’est-ce que VBA - limites, avenir, et schémas de migration réalistes », qui aborde également la combinaison d’Office Scripts et de Power Automate pour les flux métier sur Microsoft 365.7
4. Comprendre les licences
Les licences de Power Automate se répartissent globalement entre licences par utilisateur et licences par flux (processus).3
| Modèle de licence | Usage principal | Remarques |
|---|---|---|
| Droits inclus dans Microsoft 365 | Flux cloud utilisant des connecteurs standards | Les connecteurs premium et personnalisés sont généralement hors périmètre |
| Power Automate Premium (par utilisateur) | Connecteurs premium, création et exécution supervisée de flux de bureau, AI Builder et autres fonctionnalités complètes | Licence conçue pour une utilisation complète de l’automatisation cloud et bureau |
| Power Automate Process (par flux cloud / par machine standard) | Exécution non supervisée, licence attribuée au flux ou à la machine eux-mêmes | La licence se rattache à un « flux » ou à une « machine », pas à une personne ; une licence couvrant uniquement l’exécution supervisée ne permet pas d’exécuter un flux sans supervision. Une licence Process ne peut être attribuée à un flux cloud que si ce flux fait partie d’une solution — un flux resté dans la zone personnelle « Mes flux », souvent utilisée en phase de validation, ne peut pas en bénéficier tant qu’il n’a pas été déplacé |
| Power Automate Hosted Process (par machine hébergée / groupe de machines hébergées) | Exécution non supervisée sans avoir à gérer de machine physique | À ce jour, cette licence est réservée aux machines et groupes de machines hébergés par Microsoft ; l’utiliser comme substitut direct d’une licence Process sur une machine standard ou un flux cloud n’est pas encore disponible en disponibilité générale |
Ce qui complique les choses ici, c’est que le modèle de licence applicable dépend non pas de « qui a créé le flux », mais de « comment il s’exécute ». Les flux automatisés et les flux planifiés s’exécutent dans le contexte de licence du propriétaire du flux, tandis qu’un flux instantané déclenché par bouton s’exécute dans le contexte de licence de l’utilisateur qui l’a appelé. Si l’exécution non supervisée fait partie du plan, vérifier les exigences de licence dès la phase de validation évite de se retrouver bloqué juste avant le passage en production. Notons par ailleurs que l’ancien « module complémentaire d’exécution non supervisée (Unattended RPA add-on) » est désormais considéré comme legacy et a été remplacé par la licence Power Automate Process. Les modules complémentaires existants sont désormais traités comme équivalents à une licence Process, mais toute nouvelle attribution doit utiliser la licence Process.384
Un point à surveiller : une licence Process / Hosted Process seule ne remplace pas une licence utilisateur. Attribuer une licence Process à une machine (nécessaire pour l’exécution non supervisée) suppose que cette machine ait déjà été enregistrée par un utilisateur titulaire d’une licence Power Automate Premium. De même, lorsqu’un flux cloud appelle un flux de bureau en exécution supervisée ou non supervisée, l’utilisateur de la connexion utilisée pour l’exécution doit lui aussi détenir une licence Premium (ou une autre licence incluant le droit d’exécuter des flux de bureau). Se contenter de provisionner de la capacité Process sans tenir compte des licences utilisateur nécessaires à l’exploitation mène tout droit à un blocage au stade des tests fonctionnels.3
5. Conception pratique — agréger les CSV d’un dossier partagé dans un rapport Excel et l’envoyer par e-mail
Prenons comme exemple concret la tâche courante de « production d’un rapport quotidien ».
Objectif
- Collecter les CSV du jour dans un dossier partagé
- Agréger leur contenu et l’écrire dans un modèle de rapport Excel
- Enregistrer le rapport dans un dossier désigné
- Notifier les parties prenantes par e-mail
- En cas d’échec, notifier le responsable et consigner la cause dans un journal
flowchart TD
Start([Déclenchement planifié 06:30]) --> Block[[On Block Error : traitement d'agrégation]]
Block --> List[List files in folder<br/>récupérer les CSV du jour]
List --> Check{Fichiers trouvés ?}
Check -- Non --> NoticeEmpty[Enregistrer l'absence de fichiers et terminer]
Check -- Oui --> Read[Read from CSV file<br/>boucle fichier par fichier]
Read --> Agg[Agréger les valeurs dans des variables]
Agg --> Excel[Launch Excel<br/>ouvrir le modèle]
Excel --> Write[Write to Excel worksheet<br/>écrire les valeurs agrégées]
Write --> Save[Enregistrer et fermer Excel]
Save --> Mail[Send an email<br/>envoyer le rapport aux destinataires]
Mail --> Log[Ajouter le résultat au fichier journal]
Log --> End([Fin normale])
Block -. erreur .-> Handler[Gestionnaire d'erreur]
Handler --> CloseExcel[Fermer Excel si une instance reste ouverte]
CloseExcel --> LogErr[Enregistrer l'erreur dans le journal]
LogErr --> Notify[Notifier l'administrateur]
Notify --> End2([Enregistré comme une exécution en échec])
Voici les principales actions et leur rôle.
| Action | Rôle | Points de conception |
|---|---|---|
| List files in folder | Récupérer la liste des CSV cibles | Définir clairement le motif de nom de fichier et le critère de filtrage sur « le jour même » |
| Read from CSV file / Read from Excel worksheet | Lire les données | Vérifier la présence d’une ligne d’en-tête et l’encodage (UTF-8, etc.) |
| Set variable / Increment variable | Conserver les valeurs agrégées | Préfixer les noms de variables selon leur type les rend plus lisibles (par ex. txtPath, numTotal, dtToday, lstFiles) |
| Launch Excel / Use Excel | Opérer le modèle Excel | Toujours gérer le lancement et la fermeture d’une instance en paire (oublier de fermer laisse EXCEL.EXE actif en arrière-plan). Ce flux étant conçu pour l’exécution non supervisée, vérifiez aussi que le compte RPA dispose d’une licence Microsoft 365 Apps for enterprise (unattended) : sans elle, Office s’exécute en mode fonctionnalités réduites, avec un comportement qui peut différer de l’exécution interactive9 |
| Write to Excel worksheet | Écrire les résultats agrégés | Éviter de coder en dur les adresses de cellules ; repérer la position via des plages nommées ou une recherche d’en-tête |
| Send an email (V2) / actions Outlook associées | Notifier le résultat | Un chemin de fichier seul ne peut pas être joint tel quel. Convertissez-le d’abord en binaire avec l’action Convert file to binary data, puis définissez, dans Attachments, Name avec le nom du fichier de rapport et ContentBytes avec cette variable binaire10. Séparez également la mise en modèle des destinataires et de l’objet du reste de la logique |
| Write text to file (Append) | Consigner le journal d’exécution | Ajouter une ligne par exécution : date et heure, nombre d’éléments traités, résultat (succès/échec) |
Plutôt que de construire tout le flux comme une seule longue liste d’actions, le découper en sous-flux — « récupération des fichiers », « agrégation », « écriture Excel », « notification », « journalisation » — facilite les corrections ultérieures et les réexécutions isolées. Déclencher sur une planification depuis un flux cloud tout en déléguant le traitement réel à un flux de bureau appelé est également une structure qui reste facile à exploiter dans la durée.5
6. Concevoir la gestion des erreurs
Power Automate Desktop propose l’action On Block Error, qui permet de configurer la gestion des erreurs pour tout un bloc à la fois. Plutôt que de définir le « comportement en cas d’erreur » action par action, elle applique une gestion des erreurs commune à toutes les actions contenues dans le bloc.1
[On Block Error] Bloc de traitement d'agrégation
├─ List files in folder
├─ Read from CSV file (boucle)
├─ Launch Excel / Write to Excel worksheet
└─ Save Excel / Close Excel
[Gestionnaire d'erreur]
├─ Récupérer le détail de l'erreur (nom, lieu, action concernée, message détaillé) dans une variable avec l'action Get last error
├─ Fermer l'instance Excel si elle est restée ouverte (ne pas sauter le nettoyage justement en cas d'échec)
├─ Enregistrer dans le journal avec Write text to file (Append)
├─ Notifier l'administrateur avec Send an email (V2)
└─ Choisir « reprendre depuis la fin du bloc » ou « arrêter l'exécution du flux »
Voici quelques points à bien avoir en tête.
- La gestion des erreurs d’une action individuelle est prioritaire sur celle du bloc, donc si une action précise doit se comporter différemment, configurez-la individuellement, et laissez On Block Error couvrir tout le reste.1
- « Retry action if an error occurs » permet de retenter automatiquement une action, un nombre de fois et à un intervalle définis, pour des erreurs transitoires (latence réseau, fichier verrouillé, etc.). Faire de chaque erreur une candidate à la nouvelle tentative fait perdre du temps inutilement ; distinguez donc les erreurs qui méritent une nouvelle tentative de celles qui n’en méritent pas (incohérence de données, par exemple).1
- Pour consulter, à l’intérieur du gestionnaire d’erreur, le détail de l’erreur qui vient de se produire, placez explicitement une action Get last error. Elle renvoie une variable dotée de six propriétés — nom, emplacement, action concernée, sous-flux d’appartenance, détail et message de l’erreur — et n’est pas mise à disposition automatiquement comme une variable implicite. Pour éviter qu’une même valeur d’erreur soit réutilisée par erreur plus tard, il est plus sûr de l’effacer ensuite avec l’option « Clear error ».1
- Les journaux ne doivent pas se limiter à « succès/échec » : consignez aussi le nombre d’éléments traités, le nom du fichier concerné et le message d’erreur. Après coup, le journal est souvent le seul indice permettant de comprendre « pourquoi ça s’est arrêté ».
- Comme traitement après le bloc, choisissez explicitement entre « reprendre depuis la fin du bloc » et « arrêter l’exécution du flux ». S’arrêter en laissant une instance Excel ouverte conduit à des incidents comme un processus qui reste actif à l’exécution suivante ; c’est précisément en cas d’erreur qu’il faut penser au nettoyage (fermeture des instances).11
Pour qui est habitué à try/catch/finally en PowerShell, il est utile de se représenter le « bloc » d’On Block Error comme un try, le gestionnaire d’erreur comme un catch, et la séquence de nettoyage comme un finally — cette image facilite la conception.
7. Stabiliser l’automatisation de l’interface utilisateur
La principale cause d’instabilité d’un flux de bureau tient le plus souvent à la façon dont les éléments d’interface sont identifiés (le sélecteur).
- Par défaut, le sélecteur d’éléments d’interface enregistre un élément d’écran sous forme de sélecteur (une combinaison d’attributs). Si ce sélecteur inclut des attributs fragiles face aux mises à jour d’application ou aux changements d’affichage (un index séquentiel, un identifiant généré dynamiquement, etc.), le flux peut se casser même si l’écran paraît identique.12
- Remplacer
EqualsparContainsou une expression régulière pour les attributs dont la valeur change, et transformer en variables les valeurs dépendant du résultat d’une action précédente, produit des sélecteurs plus dynamiques et moins susceptibles de se casser.12 - Configurer plusieurs sélecteurs permet un repli automatique vers le suivant si le premier échoue. Prévoir un sélecteur de secours pour toute opération importante améliore la stabilité.12
- Lorsqu’un sélecteur se casse, la fonction Repair selector peut générer automatiquement des candidats de réparation. Cela vaut la peine de l’essayer avant de tout reconstruire manuellement.12
- Les transitions d’écran et les lancements d’application prennent un temps variable. Plutôt que de vous fier uniquement à un
Waitfixe, combinez des actions d’attente conditionnelle telles que « attendre une fenêtre » ou « attendre qu’un élément d’interface soit trouvé », et configurez en parallèle une nouvelle tentative automatique lorsque l’élément n’est pas trouvé.13 - Pour une cible d’automatisation qui refuse obstinément de se stabiliser (écran virtualisé, mise en page qui change fréquemment, etc.), ne vous entêtez pas sur l’opération d’interface : vérifiez d’abord s’il n’existe pas un mode d’intégration plus stable — API, échange de fichiers, accès à une base de données.
Faire fonctionner une automatisation de l’interface une première fois n’a rien de difficile en soi. Mais qu’elle fonctionne encore sans casse six mois plus tard dépend presque entièrement de la façon dont les sélecteurs ont été construits.
8. Gérer les informations d’identification en toute sécurité
Dans l’automatisation métier, c’est la gestion des informations d’identification (mots de passe, clés d’API, chaînes de connexion, etc.) qui est la source d’incidents la plus fréquente.
- Évitez d’écrire un mot de passe ou des informations de connexion directement comme valeur dans une variable d’entrée du flux. L’action Get credential permet de récupérer une information d’identification en toute sécurité depuis un « identifiant Power Automate » adossé à un coffre de secrets externe tel qu’Azure Key Vault ou CyberArk ; la valeur récupérée est marquée comme sensible et n’apparaît pas dans les journaux d’exécution du flux.1415
- Utiliser Azure Key Vault comme emplacement de stockage des secrets permet de centraliser côté Power Automate les informations de connexion vers Key Vault, évitant de disperser les informations d’identification flux par flux.15
- Pour l’exécution non supervisée, prévoyez un compte dédié dont le périmètre est réduit au strict nécessaire, plutôt que de réutiliser le compte qu’une personne utilise au quotidien. Plus les droits d’un compte sont étendus, plus l’impact potentiel d’un bug ou d’une erreur de configuration dans le flux s’étend lui aussi.
- Écrire un mot de passe en clair « temporairement, pour que ça marche » et poursuivre la validation ainsi a tendance à laisser cette valeur telle quelle jusqu’en production. Il est plus sûr de prendre l’habitude d’utiliser l’action Get credential dès la phase de validation.
9. Gouvernance et exploitation
Lorsque les flux créés par des individus ou de petites équipes se multiplient, un contrôle à l’échelle de l’organisation devient nécessaire.
- Les politiques de prévention de la perte de données (DLP) classifient les connecteurs utilisables dans les flux et les applications en catégories telles que « données métier uniquement », « données métier interdites » ou « bloqué », et empêchent qu’un même flux combine un connecteur de données métier avec un connecteur interdit aux données métier. C’est la première couche de gouvernance à mettre en place, car c’est elle qui empêche une fuite involontaire des données de l’organisation vers un service externe.16
- Les actions des flux de bureau peuvent elles aussi être classifiées et bloquées dans le même cadre de politiques DLP, mais cette couverture n’est pas activée par défaut. Il faut d’abord activer une fois le paramètre de locataire « Show desktop flow actions in DLP policies » dans le centre d’administration Power Platform, et ce paramètre ne peut plus être désactivé ensuite. Même après activation, seuls les modules et actions explicitement classifiés par une politique sont réellement contrôlés : avoir créé une politique DLP ne signifie donc pas que l’ensemble des flux de bureau est sous contrôle.2
- Regroupez les machines dédiées à l’exécution non supervisée en groupes de machines, afin de savoir clairement quel flux s’exécute sur quelle machine.
- L’historique d’exécution est consultable depuis l’écran d’administration et l’historique d’exécution de Power Automate. Intégrer une alerte en cas d’échec (notification Teams ou par e-mail) directement dans le traitement du flux permet de remarquer une anomalie sans que quelqu’un doive aller vérifier manuellement.
- Pour qu’un flux cloud accède à une ressource sur site inaccessible directement depuis le cloud — une base de données ou un partage de fichiers du réseau interne, par exemple — utilisez la passerelle de données locale (on-premises data gateway). Elle ne nécessite l’ouverture d’aucun port entrant côté cloud, et fait le pont en toute sécurité via une simple connexion sortante.17
- Séparer les environnements de validation et de production, et cloisonner les flux de bureau et les informations de connexion par environnement, évite qu’une modification en cours de validation n’affecte les flux en production.
10. Les limites de Power Automate, et quand escalader
Power Automate est puissant, mais pas universel. Dans les situations suivantes, envisagez de basculer vers PowerShell ou une application .NET.
| Situation | Décision | Raison |
|---|---|---|
| Traitement de données à l’échelle de centaines de milliers de lignes | Basculer vers PowerShell ou une application de traitement par lots | Les boucles d’un flux de bureau ne conviennent pas aux gros volumes de données |
| Logique métier complexe nécessitant des tests automatisés | Basculer vers une application .NET |
Tester unitairement un flux lui-même est difficile, et le coût de vérification augmente avec la complexité de la logique |
| Traitement résident à haute fréquence et faible latence | Basculer vers un service Windows / Generic Host + BackgroundService | Le coût de démarrage et d’exécution d’un flux ne convient pas au traitement temps réel |
| Le système cible dispose déjà d’une API | Basculer vers une implémentation appelant directement l’API | L’intégration par API est plus stable que l’opération d’interface, et son coût de maintenance est plus faible |
| La mise en page de l’écran cible change fréquemment | Éviter l’automatisation de l’interface, envisager une alternative | Le coût de maintenance des sélecteurs dépasse le coût d’exploitation |
| Un historique de modifications strict et une revue de code au niveau du code source sont indispensables | Basculer vers PowerShell / .NET géré sous Git |
L’export d’un flux (zip) fait office de sauvegarde approximative, mais ne se prête pas à la revue de code |
Quand on sent que « ce qu’on a construit avec Power Automate a grandi et est devenu trop complexe », plutôt que de continuer à étendre le flux de force, il est souvent plus judicieux, à terme, d’extraire le traitement principal vers .NET ou PowerShell, et de réserver Power Automate au déclenchement et à la notification. Un exemple concret d’automatisation de l’investigation et de l’archivage des journaux avec PowerShell est présenté dans un autre article, « PowerShell avancé — automatiser en toute sécurité l’investigation, l’archivage et le reporting des journaux ».
11. Conclusion
Power Automate est étonnamment simple jusqu’au premier pas. Mais cette facilité a un revers : « même en bâclant la conception, ça finit par fonctionner, au moins une fois ». Qu’un flux mis en production reste maintenable sur la durée dépend presque entièrement du nombre de décisions discrètes réglées dès le départ.
Choisir entre flux cloud et flux de bureau, et identifier quels traitements il vaut mieux confier à PowerShell ou à .NET : faire ce tri en amont réduit considérablement les reprises ultérieures. Gestion des erreurs, sélecteurs d’interface, informations d’identification, licences, politiques DLP — pour chacun de ces sujets, « les intégrer dès le départ » revient nettement moins cher que « les corriger une fois que ça a cassé ». Et être capable, lorsqu’un flux grandit et se complexifie, de faire le choix de basculer le traitement vers .NET ou PowerShell plutôt que de continuer à l’étendre de force, détermine tout autant s’il restera utilisable durablement.
Il existe un tel écart de conception entre « un flux qui fonctionne, tant bien que mal » et « un flux auquel on peut se fier en toute tranquillité ». Plus l’automatisation touche à des systèmes métier existants ou à des actifs Excel / VBA, plus les décisions de conception prises au départ pèsent lourd sur le coût de maintenance à long terme.
Articles connexes
- Qu’est-ce que VBA - limites, avenir, et schémas de migration réalistes
- PowerShell avancé — automatiser en toute sécurité l’investigation, l’archivage et le reporting des journaux
- Comment créer une sortie de rapport Excel - tableau de décision entre l’automatisation COM, Open XML et l’approche par modèles
Domaines de conseil associés
KomuraSoft LLC accompagne les projets d’automatisation et de modernisation progressive qui préservent les actifs métier Excel / VBA / Windows existants, ainsi que les revues de conception de plateformes d’automatisation incluant Power Automate.
- Valorisation et migration des actifs existants
- Conseil technique et revue de conception
- Développement d’applications Windows
- Contact
Références
-
Microsoft Learn, Handle errors in desktop flows. Sur la gestion des erreurs par bloc avec On Block Error, sa priorité par rapport aux actions individuelles, et la configuration de la nouvelle tentative. ↩ ↩2 ↩3 ↩4 ↩5
-
Microsoft Learn, Data loss prevention (DLP) policies. Sur l’application des politiques DLP aux flux de bureau, et sur le mécanisme de classification métier/non-métier et de blocage. ↩ ↩2
-
Microsoft Learn, Types of Power Automate licenses. Sur les types de licences par utilisateur et par flux, et sur le contexte de licence des flux automatisés / instantanés. ↩ ↩2 ↩3 ↩4
-
Microsoft Learn, Attended and unattended scenarios for process automation. Sur la différence entre exécution supervisée et non supervisée, ainsi que sur les licences et modes d’exécution requis pour chacune. ↩ ↩2 ↩3
-
Microsoft Learn, Trigger desktop flows from cloud flows. Sur la structure permettant à un flux cloud d’appeler un flux de bureau. ↩ ↩2
-
Microsoft Learn, Run unattended desktop flows. Sur le fait que, sous Windows 10/11, l’exécution non supervisée échoue si la session de n’importe quel utilisateur subsiste, même verrouillée ; que sous Windows Server, seule une session verrouillée de l’utilisateur de connexion lui-même est concernée ; et sur la nécessité de se déconnecter (sign out) plutôt que de verrouiller ou de se déconnecter du bureau à distance. ↩
-
Microsoft Learn, Run Office Scripts with Power Automate. Sur l’automatisation combinant Office Scripts et Power Automate, et sur la licence requise. ↩
-
Microsoft Learn, Deep dive on specific licenses. Sur le détail des licences Power Automate Premium, Process et Hosted Process. ↩
-
Microsoft Learn, Overview of the unattended robotic process automation with Microsoft 365 Apps for enterprise. Sur le fait qu’en l’absence d’une licence Microsoft 365 Apps for enterprise (unattended), les applications Office utilisées en exécution non supervisée fonctionnent en mode fonctionnalités réduites. ↩
-
Microsoft Learn, Office 365 Outlook actions reference. Sur la nécessité de convertir un fichier en binaire avec Convert file to binary data avant de l’envoyer en pièce jointe avec Send an email (V2), et de le transmettre via Name / ContentBytes. ↩
-
Microsoft Learn, Employ robust error handling. Sur les recommandations pour concevoir la gestion des erreurs. ↩
-
Microsoft Learn, Build a custom selector. Sur la façon de rendre les sélecteurs dynamiques, le repli via plusieurs sélecteurs, et la fonction Repair selector. ↩ ↩2 ↩3 ↩4
-
Microsoft Learn, Automate using UI elements. Sur la façon de désigner les éléments d’interface, et sur l’approche de l’attente et de la nouvelle tentative. ↩
-
Microsoft Learn, Secure your data. Sur la récupération sécurisée des informations d’identification via l’action Get credential, et sur leur absence des journaux d’exécution. ↩
-
Microsoft Learn, Create an Azure Key Vault credential. Sur la configuration d’Azure Key Vault comme emplacement de stockage des secrets. ↩ ↩2
-
Microsoft Learn, Data policies. Sur l’approche de gouvernance fondée sur la classification des connecteurs (données métier uniquement / données métier interdites / bloqué). ↩
-
Microsoft Learn, On-premises data gateway. Sur le mécanisme de pont sécurisé entre les données sur site et les services cloud. ↩
Articles associés
Articles récents partageant les mêmes étiquettes, pour approfondir des sujets proches.
Migrer les macros Excel VBA vers Power Automate — Ce qu'il faut remplacer par des scripts Office, et ce qu'il faut garder en VBA
Un guide pour savoir si les macros Excel VBA peuvent migrer vers Power Automate : ce que les scripts Office peuvent remplacer, ce que seu...
Automatiser la saisie de données dans les systèmes centraux hérités avec Power Automate for desktop — Remplacer la saisie manuelle depuis Excel et le papier par l'automatisation de l'interface utilisateur
Un guide pratique pour remplacer la saisie manuelle dans d'anciens systèmes centraux sans API par l'automatisation de l'interface utilisa...
Se préparer à l'abandon de VBScript : guide d'audit pour VBA, les macros Excel et les outils internes
Face à l'abandon progressif de VBScript, cet article structure l'inventaire de VBA, des macros Excel et des outils internes, la détection...
Gestion des erreurs et stratégie de nouvelle tentative dans Power Automate — éviter qu'un flux qui fonctionnait ne s'arrête sans que personne ne le remarque
Un ensemble de modèles de conception pour éviter qu'un flux Power Automate ne s'arrête sans que personne ne s'en aperçoive. Nous détaillo...
Automatiser les PDF de bons de commande et de factures reçus par e-mail avec Power Automate ── Concevoir l'enregistrement, le tri, la notification et la lecture
Un guide pratique pour automatiser avec Power Automate l'enregistrement, le tri et la notification des PDF de bons de commande et de fact...
Sujets associés
Ces pages replacent le sujet dans un contexte plus large de services et de décisions.
Thèmes techniques Windows
Portail des sujets sur le développement Windows, l'analyse des incidents et la valorisation des actifs existants.
Services liés à ce sujet
Cet article est directement lié aux services suivants.
Réutilisation et migration d'actifs existants
Réutilisation et migration d'actifs COM / ActiveX / OCX et de dépendances 32 ou 64 bits.
Questions fréquentes
Questions souvent posées lors d’une consultation sur le sujet de cet article.
- Comment choisir entre flux cloud et flux de bureau ?
- Le flux cloud est un mécanisme qui relie des services cloud entre eux via des connecteurs ; il convient aux flux d'approbation, aux notifications, à l'intégration SaaS et aux flux métier autour de Microsoft 365. Le flux de bureau est une RPA qui opère directement les applications et les écrans sous Windows ; c'est un choix réaliste lorsqu'il faut opérer l'écran d'un ancien système métier sans API ou d'une application Win32. Lors d'une consultation, commencer par distinguer « s'agit-il de relier des services cloud entre eux, ou d'opérer un écran ? » clarifie déjà beaucoup les choses.
- Faut-il utiliser Power Automate ou PowerShell ?
- Si l'objectif est simplement d'automatiser une tâche répétitive sur un PC et que les clics ou saisies à l'écran ne sont pas indispensables, PowerShell est souvent plus facile à maintenir et s'intègre mieux à la gestion de versions avec Git. Opérer l'interface d'un système qui dispose déjà d'une API est normalement plus stable en appelant directement cette API depuis PowerShell ou .NET. Le traitement de données à l'échelle de centaines de milliers de lignes, une logique complexe nécessitant des tests automatisés, ou un traitement résident à haute fréquence relèvent également plutôt de PowerShell ou .NET. Si un flux devient trop complexe, en extraire le traitement principal et réserver Power Automate au déclenchement et à la notification rend l'ensemble plus facile à maintenir.
- Quelle licence faut-il pour exécuter des flux de bureau en mode non supervisé ?
- L'exécution non supervisée nécessite une licence différente de l'exécution supervisée : la licence Power Automate Process, qui se rattache à un flux ou à une machine plutôt qu'à une personne. L'ancien module complémentaire d'exécution non supervisée est désormais considéré comme legacy et a été remplacé par la licence Process. Par ailleurs, la licence Process seule ne remplace pas une licence utilisateur : l'enregistrement de la machine nécessite un utilisateur titulaire d'une licence Power Automate Premium. Enfin, sous Windows 10/11, l'exécution non supervisée échoue si la session de n'importe quel utilisateur reste verrouillée ; il faut donc que tout le monde se déconnecte complètement (sign out).
- Pourquoi l'automatisation de l'interface utilisateur d'un flux de bureau devient-elle instable ?
- La cause principale tient le plus souvent à la façon dont les éléments d'interface sont identifiés (le sélecteur). Si le sélecteur inclut des attributs fragiles face au changement, comme un index séquentiel ou un identifiant généré dynamiquement, le flux peut se casser même si l'écran paraît identique. En pratique, il convient de remplacer Equals par Contains ou une expression régulière pour les attributs dont la valeur change, de configurer plusieurs sélecteurs pour permettre un repli automatique, et d'utiliser la fonction Repair selector pour générer des candidats de réparation en cas de rupture. Il est également important de ne pas se fier uniquement à des attentes fixes (Wait) et de les combiner avec des actions d'attente conditionnelle. Que le flux fonctionne encore sans casse six mois plus tard dépend presque entièrement de la façon dont les sélecteurs ont été construits.
Profil de l’auteur
Page de présentation de l’auteur de l’article.
Go Komura
Représentant de KomuraSoft LLC
Spécialisé dans le développement de logiciels Windows, le conseil technique et l’analyse de pannes, notamment pour les systèmes existants et les incidents difficiles à reproduire.
Liens publics