Résoudre les problèmes liés aux scripts Office en cours d’exécution dans Power Automate
Power Automate exécute des scripts en votre nom dans des sessions Excel indépendantes. Cela entraîne des modifications comportementales susceptibles de créer des problèmes avec certains scripts ou scénarios. Il existe également des limitations et des comportements que les rédacteurs de scripts de plateforme Power Automate doivent connaître. Veillez à lire les articles Résoudre les problèmes liés aux scripts Office et aux limites et exigences de la plateforme avec les scripts Office, car la plupart de ces informations s’appliquent également aux scripts dans les flux.
Conseil
Si vous commencez à utiliser des scripts Office avec Power Automate, commencez par Exécuter des scripts Office avec Power Automate pour en savoir plus sur les plateformes.
Importante
Pour utiliser des scripts Office dans Power Automate, vous devez disposer d’une licence professionnelle Microsoft 365. Les licences Office 365 Entreprise E1 et Office 365 F3 peuvent utiliser des scripts avec Power Automate, mais n’ont pas d’intégrations Power Automate directement dans Excel.
Éviter les références relatives
Power Automate exécute votre script dans le classeur Excel choisi en votre nom. Le classeur peut être fermé lorsque cela se produit. Toute API qui s’appuie sur l’état actuel de l’utilisateur, telle que Workbook.getActiveWorksheet
, peut se comporter différemment dans Power Automate. Cela est dû au fait que les API sont basées sur une position relative de la vue ou du curseur de l’utilisateur et que cette référence n’existe pas dans un flux Power Automate.
Certaines API de référence relatives lèvent des erreurs dans Power Automate. D’autres ont un comportement par défaut qui implique l’état d’un utilisateur. Lors de la conception de vos scripts, veillez à utiliser des références absolues pour les feuilles de calcul et les plages. Cela rend votre flux Power Automate cohérent, même si les feuilles de calcul sont réorganisées.
Méthodes de script qui échouent dans les flux Power Automate
Les méthodes suivantes lèvent une erreur et échouent lorsqu’elles sont appelées à partir d’un script dans un flux Power Automate.
Classe | Méthode |
---|---|
Graphique | activate |
Range | select |
Classeur | getActiveCell |
Classeur | getActiveChart |
Classeur | getActiveSlicer |
Classeur | getSelectedRange |
Classeur | getSelectedRanges |
Méthodes de script avec un comportement par défaut dans les flux Power Automate
Les méthodes suivantes utilisent un comportement par défaut, au lieu de l’état actuel d’un utilisateur.
Classe | Méthode | Comportement de Power Automate |
---|---|---|
Classeur | getActiveWorksheet |
Retourne la première feuille de calcul du classeur ou la feuille de calcul actuellement activée par la Worksheet.activate méthode . |
Feuille de calcul | activate |
Marque la feuille de calcul comme feuille de calcul active pour les besoins de Workbook.getActiveWorksheet . |
L’actualisation n’est pas entièrement prise en charge dans Power Automate
Les scripts Office ne peuvent pas actualiser la plupart des données lorsqu’ils sont exécutés dans Power Automate. La plupart des méthodes d’actualisation, telles que PivotTable.refresh
, ne font rien lorsqu’elles sont appelées dans un flux.
Workbook.refreshAllDataConnections
S’actualise uniquement lorsque PowerBI est la source. En outre, Power Automate ne déclenche pas d’actualisation des données pour les formules qui utilisent des liens de classeur.
Méthodes de script qui ne font rien dans les flux Power Automate
Les méthodes suivantes ne font rien dans un script lorsqu’elles sont appelées via Power Automate. Ils retournent toujours avec succès et ne génèrent aucune erreur.
Classe | Méthode |
---|---|
PivotTable | refresh |
Classeur | refreshAllPivotTables |
Feuille de calcul | refreshAllPivotTables |
Méthodes de script avec un comportement différent dans Power Automate
Les méthodes suivantes agissent différemment dans les flux Power Automate que lorsqu’elles sont exécutées via Excel.
Classe | Méthode | Comportement de Power Automate |
---|---|---|
Classeur | refreshAllDataConnections |
Actualise uniquement les sources PowerBI. Pour les autres sources, la méthode retourne correctement, mais ne fait rien. |
Sélectionner des classeurs avec le contrôle d’explorateur de fichiers
Lors de la génération de l’étape Exécuter le script d’un flux Power Automate, vous devez sélectionner le classeur qui fait partie du flux. Utilisez l’explorateur de fichiers pour sélectionner votre classeur, au lieu de taper manuellement le nom du classeur.
Pour plus de contexte sur la limitation de Power Automate et une discussion sur les solutions de contournement potentielles pour la sélection dynamique des classeurs, consultez ce thread dans la communauté Microsoft Power Automate.
Passer des tableaux entiers en tant que paramètres de script
Power Automate permet aux utilisateurs de passer des tableaux à des connecteurs en tant que variable ou en tant qu’éléments uniques dans le tableau. La valeur par défaut consiste à passer des éléments uniques, ce qui génère le tableau dans le flux. Pour les scripts ou autres connecteurs qui prennent des tableaux entiers en tant qu’arguments, vous devez sélectionner le bouton Basculer pour entrer l’intégralité du tableau pour passer le tableau en tant qu’objet complet. Ce bouton se trouve dans le coin supérieur droit de chaque champ d’entrée de paramètre de tableau.
Différences de fuseau horaire
Les fichiers Excel n’ont pas d’emplacement ou de fuseau horaire inhérent. Chaque fois qu’un utilisateur ouvre le classeur, sa session utilise le fuseau horaire local de cet utilisateur pour les calculs de date. Power Automate utilise toujours l’utc.
Si votre script utilise des dates ou des heures, il peut y avoir des différences de comportement quand le script est testé localement et quand il est exécuté via Power Automate. Power Automate vous permet de convertir, de mettre en forme et d’ajuster les heures. Consultez Utilisation des dates et des heures à l’intérieur de vos flux pour obtenir des instructions sur l’utilisation de ces fonctions dans Power Automate et transmettre des données vers et à partir de scripts dans Power Automate pour savoir comment fournir ces informations d’heure pour le script.
Champs de paramètre de script ou sortie retournée n’apparaissant pas dans Power Automate
Il existe deux raisons pour lesquelles les paramètres ou les données retournées d’un script ne sont pas reflétés avec précision dans le générateur de flux Power Automate.
- La signature de script (les paramètres ou la valeur de retour) a changé depuis l’ajout du connecteur Excel Business (Online).
- La signature de script utilise des types non pris en charge. Vérifiez vos types par rapport aux restrictions pour le paramètre Scripts Office et les types de retour.
La signature d’un script est stockée avec le connecteur Excel Business (Online) lors de sa création. Supprimez l’ancien connecteur et créez-en un pour obtenir les paramètres les plus récents et retourner les valeurs de l’action Exécuter le script.
Certaines API web non disponibles avec les flux Power Automate
Certaines API web, telles que TextEncoder
et Crypto
, peuvent ne pas être disponibles lors de l’exécution de scripts Office dans des flux Power Automate. Pour obtenir la liste complète des API web, consultez API web MDN .
Power Automate retourne l’erreur *API* is not defined
, où *API*
spécifie une bibliothèque telle que TextEncoder
, lors de l’exécution d’un script qui utilise une API non prise en charge.