Migration des processus – Power Automate et Office Scripts
Introduction
Après avoir réussi à migrer vos formulaires vient le temps de vous attarder aux processus qui faisaient tout l’intérêt de votre application, ceux qui généraient des fichiers, des documents, des courriels ou ouvraient des navigateurs web pour se connecter.
Objectifs
Dans ce chapitre, vous allez découvrir les similarités sur les traitements que vous aviez dans les macros VBA et les actions possibles dans les flux Power Automate. Seront vus les principales structures de flux, ainsi que les connecteurs les plus couramment utilisés.
Bien que ces flux devraient arriver à effectuer la quasi-totalité des traitements que vous effectuiez avec VBA, il se peut que certains cas de figure soient trop personnalisés pour rentrer dans un flux. Dans ce cas, il faudra passer par Office Script, dérivé du JavaScript, qui est évoqué à la fin du présent chapitre.
Enfin, la migration des processus est une opportunité pour revoir les traitements qui étaient effectués jusqu’à présent, et l’occasion de les changer.
Les macros VBA
Lorsque vous vous attaquez à la partie qui est souvent décisive dans le cadre de l’application Excel ou Access existante, il vous faut comprendre l’objectif des macros, leur finalité.
Il ne vous sera pas nécessaire de reprendre chacune des étapes que vous aviez en VBA, car plusieurs d’entre elles pourraient devenir inutiles avec Power Automate. Il est également possible que certaines étapes soient remplacées par d’autres dans Power Automate.
Ici, vous chercherez surtout à comprendre quelles sont les actions qui se font dans les macros, quelles opérations sont réalisées, et par quels déclencheurs elles s’exécutent.
Qu’il s’agisse de manipulation de données (ajout, lecture, modification, suppression), de création de documents depuis un modèle ou un fichier vierge Office (document Word, classeur Excel, courriel Outlook) ou de calcul intermédiaire dans des fonctions dédiées, il existe probablement des flux Power Automate modèles qui effectuent des actions très similaires, et qui ne nécessiteront pas beaucoup d’ajustements pour arriver à un résultat identique (ou suffisamment similaire dans le cas de changements liés à la migration).
Selon la source de données que vous aviez utilisée initialement (enregistrements de table Access, lignes de feuille Excel), vous retrouverez les actions liées à votre nouvelle source (table Dataverse - incluant Dataverse for Teams, ou liste SharePoint) qui permettent d’effectuer les traitements que vous...
Power Automate
Définition générale
Power Automate est un service de Microsoft permettant d’automatiser des tâches et des processus métier, en connectant différentes applications et services cloud. Il offre une interface visuelle et intuitive pour créer des flux de travail automatisés, appelés "flux", qui peuvent être déclenchés par des événements spécifiques ou exécutés sur demande. Power Automate facilite l’automatisation de diverses actions telles que l’envoi de notifications, la collecte de données, la création de rapports, et bien plus encore, contribuant ainsi à accroître l’efficacité opérationnelle et à réduire les tâches manuelles répétitives.
Connecteurs
Les connecteurs dans Power Automate sont des interfaces qui permettent à l’utilisateur de connecter différents services et applications cloud pour automatiser des processus. Ils facilitent l’intégration de données et d’actions entre des systèmes hétérogènes sans nécessiter de codage complexe. Power Automate propose une vaste gamme de connecteurs prêts à l’emploi pour des services tels que Microsoft 365, SharePoint, Outlook, OneDrive, mais aussi des services tiers comme Google Drive, Twitter/X, Salesforce, etc.
Chaque connecteur fournit des actions et des déclencheurs spécifiques permettant de manipuler des données et d’initier des flux de travail en réponse à des événements. Les utilisateurs peuvent également créer leurs propres connecteurs personnalisés pour intégrer des applications ou des services qui ne sont pas nativement pris en charge.
Les connecteurs facilitent l’automatisation des processus métier en permettant aux utilisateurs de créer des flux de travail fluides et cohérents qui traversent les frontières des différentes applications et services utilisés au sein de l’organisation.
Dans l’image suivante, trois actions successives utilisent trois connecteurs différents, Excel Online, SharePoint Online et Dataverse.
La liste des connecteurs disponibles dans Power Automate est disponible à l’adresse suivante :...
Équivalence entre VBA et Power Automate
Qu’il s’agisse de fonctions de manipulation de valeurs numériques, de dates ou encore de chaînes de caractères, vous trouverez parmi les fonctions Power Automate de nombreuses équivalences aux fonctions VBA les plus courantes.
Ci-dessous une liste non exhaustive des équivalences que vous pourrez trouver.
Opérateurs
Opérateurs arithmétiques
Nom |
Symbole ou mot-clé |
Équivalence Power Automate |
Exemple VBA (résultat) |
Exemple Power Automate |
Addition |
+ |
add() |
1 + 2 (3) |
add(1,2) |
Soustraction |
- |
sub() |
5 - 4 (1) |
sub(5,4) |
Multiplication |
* |
mul() |
3 * 2 (6) |
mul(3,2) |
Division |
/ |
div() |
6 / 4 (1.5) |
div(float(6),4) |
Division entière |
\ |
8 \ 3 (2) |
div(8,3) |
|
Modulo |
Mod |
mod() |
10 Mod 3 (1) |
mod(10,3) |
Exposant |
^ |
5 ^ 2 (25) |
À noter que la division et la division entière dépendent des types de données qui se divisent l’un ou l’autre, qui doit être soit entier (division entière) soit flottant (division).
De plus, il n’existe pas, à ce jour de fonction équivalente pour l’exposant/puissance dans Power Automate, ce qui vous oblige à effectuer une boucle.
Cette fonction Exposant existe en revanche déjà dans les fonctions Power Fx (Power(5,2) retourne 25).
Opérateurs de comparaison
Nom |
Symbole |
Fonction Power Automate |
Exemple VBA (retournera True) |
Exemple Power Automate |
Strictement supérieur à |
> |
greater() |
6 > 5 |
greater(6,5) |
Supérieur ou égal à |
>= |
greaterOr Equals() |
4 >= 4 |
greaterOr Equals(4,4) |
Strictement inférieur à |
< |
less() |
3 < 8 |
less(3,8) |
Inférieur ou égal à |
<= |
lessOrEquals() |
7 <= 7 |
lessOr Equals(7,7) |
Égal à |
= |
equals() |
9 = 9 |
equals(9,9) |
Différent de |
<> |
not(equals()) |
0 <> 5 |
not(equals(0,5)) |
Comme vous pouvez le constater, il n’existe pas d’équivalence immédiate pour l’opérateur Différent de, mais on peut l’obtenir en combinant l’opérateur equals avec l’opérateur booléen not, dont nous parlons ci-dessous.
Opérateurs logiques ou opérateurs booléens
Nom |
Mot-clé |
Fonction Power Automate |
Exemple VBA (retournera True) |
Exemple Power Automate |
Et |
And |
and() |
A And B |
and(a,b) |
Ou |
Or |
or() |
A Or B |
or(a,b) |
Non |
Not |
not()... |
Tests d’un flux
Lorsque vous avez construit vos applications VBA, vous les avez testées selon plusieurs scénarios, pour les blinder par rapport aux saisies erronées, aux cas de figure qui pouvaient faire dérailler un traitement.
Pour tester un flux Power Automate, depuis l’interface de modification du flux, dans le ruban cliquez sur le bouton Tester en haut à droite.
Lorsque le test a lieu, le comportement de l’interface est identique à celui de son exécution, avec les actions qui sont identifiées avec une icône selon la réussite, l’échec ou l’absence d’exécution.
Le test consiste à faire s’exécuter un flux en condition réelle, avec au besoin des valeurs de paramètres à saisir manuellement.
Une fois que le flux s’est déjà exécuté au moins une fois, il est possible de reprendre les mêmes conditions d’exécution, en choisissant l’occurrence d’exécution précédente pour relancer un test.
Office Scripts
Si vos traitements sous VBA sont tellement complexes que ni les formules Power Fx dans les applications Power Apps ni les flux Power Automate ne peuvent reproduire les traitements que vous aviez dans vos applications Office, il vous reste une façon d’exécuter des actions dans vos fichiers Excel : Office Scripts.
Office Scripts est une fonctionnalité intégrée à Microsoft Office, conçue elle aussi pour simplifier et automatiser les tâches. Elle est accessible depuis l’onglet Automatiser dans Excel en ligne.
Les scripts Office utilisent un langage de programmation simplifié basé sur TypeScript. Cette approche permet aux utilisateurs de tirer parti des fonctionnalités de programmation avancées tout en restant conviviale pour les non-développeurs. Les scripts peuvent être enregistrés en tant que macros, ce qui permet de les exécuter rapidement en un clic ou de les planifier pour s’exécuter automatiquement à des moments spécifiques.
Bien que cette option soit possible, le virage depuis Office vers la Power Platform vise aussi un changement du tout code au low-code/no-code.
Voici à titre d’exemple un bloc de code Office Script.
function main(workbook: ExcelScript.Workbook, Mme_Mr : string,
No_Facture : string, Date_Facture : string, Montant_Facture : number, ...
Conclusion concernant la migration des processus
Avec les nombreuses options qui s’offrent à vous pour transformer des instructions VBA en équivalence de flux Power Automate, la migration des processus de vos applications devrait se faire sans grande difficulté.
Tâchez de vous détacher du ligne à ligne de vos macros VBA, pour vous concentrer sur les actions que les instructions réalisent réellement, pour utiliser les actions de flux les plus pertinentes et proches de vos besoins.
Si vos macros étaient particulièrement complexes, n’hésitez pas à segmenter votre flux en plusieurs sous-flux enfants, pour en garder une lisibilité. D’autre part, la gestion d’erreur peut être une couche que vous ajouterez en fin de transformation, pour construire un flux dans un scénario sans erreur, et adapterez ensuite les gestions d’erreurs au besoin.