Blog
Tutoriel
Power Apps

Power Apps : les fonctionnalités avancées (Tutoriel)

Le low code permet de développer rapidement des fonctionnalités avancées à moindre coût. Cette approche innovante aide les entreprises à surmonter les contraintes budgétaires tout en favorisant l'innovation. Voyons comment elle transforme le développement d'applications.

27/8/2024
Power Apps : les fonctionnalités avancées (Tutoriel)

C’est quoi Power Apps ?

Microsoft Power Apps, un des éléments fondamentaux de la Power Platform, permet de développer des applications sur mesure, en minimisant le temps de développement, et donc le coût.

On ne tombera pas dans le cliché erroné de dire que PowerApps permet de concevoir des applications sans avoir à écrire de code. Si votre application a une logique complexe, ça se reflètera forcément dans le code.

Cependant, Power Apps garde l’avantage sur plusieurs points :

- Les éléments (boutons, menus déroulants, zones de texte, galeries d’images ou de données, etc…) sont glissés et déposés et sont paramétrés, sans devoir écrire tout le code qui les définit

- Power Apps fonctionne avec tout un environnement qui facilite le stockage et l’interaction avec les données (que ce soit Dataverse ou SharePoint), et peut déclencher des automatisations avec Power Automate

- Les applications étant liées au compte Microsoft, elles peuvent être utilisées en navigateur, intégrée dans Teams, et sur mobile via l’application Power Apps (disponible sur l’App Store d’Apple et sur Google Play)

Pour plus d’info sur les bases de Power Apps, allez lire les articles de Jasper, PowerApps c'est quoi et Power Apps pour les nuls.

exemple application power apps youngdata

Allons plus loin : l’environnement de Power Apps

Une fois que l’on a passé cette étape de « low code VS full stack », comment utiliser Power Apps à son plein potentiel ?

Dans cette série d’articles, je vous propose de découvrir à chaque fois une thématique illustrée par 3 fonctionnalités.

On commence donc ici avec la vision d’ensemble de PowerApps. Car au-delà d’être une plateforme de développement et utilisation d’applications, c’est aussi et surtout une composante de tout l’environnement Power Platform. Et pour débloquer pleinement le potentiel de Power Apps, mieux vaut connaître cet ensemble.

Laisser Power Automate exécuter les traitements les plus lourds

Dans Power Apps, on aime bien la fonction Patch(). Elle permet de mettre à jour et créer de nouvelles lignes dans une table. Là où les choses se corsent, c’est si on a un Patch avec une grande quantité de données, encore plus s’il y a des variables qui changent au sein d’une boucle ForAll().

Dans ce genre de situation, une application peut vite devenir lente et perdre en fluidité.

La solution ? Transmettre le gros œuvre à PowerAutomate.

Par exemple, voici une page d’application permettant de mettre à jour des prix et des taux de TVA d’articles, en sélectionnant les lignes qu’on veut éditer :

Capture d’écran d’une application exemple. Les lignes sélectionnées sont modifiées et synchronisées avec la base de données

Une fois les modifications faites, l’usage le plus courant serait de faire une mise à jour des informations pour chaque ligne éditée comme suit :

Capture d’écran du bouton « patch ». la boucle et le calcul dans la formule alourdissent l’application

Mais en cas de volumétrie plus importante, le ForAll peut prendre du temps, car c’est un traitement ligne par ligne. De plus, il y a un calcul dans le patch qui n’aide pas forcément à la fluidité de l’application.

L’autre approche consiste donc à utiliser Power Automate, qui se chargera de faire tout le traitement, laissant l’application tourner fluidement en parallèle.

Capture d’écran du bouton « Flux ». La collection est envoyée presque telle quelle, en version allégée

Le flux est d’ailleurs créé directement dans l’application, en passant par l’onglet « Power Automate » dans le volet de gauche, puis « ajouter un flux », puis « créer un nouveau flux ».

Capture d’écran du volet gauche de Power Apps en mode édition. Le flux y est créé directement en même temps qu’il est ajouté à l’application

Le flux ne comporte que le déclencheur et 3 actions :

  • le déclencheur Power Apps permettant de transmettre au flux notre JSON d’articles
  • une action d’analyse de JSON pour qu’on puisse itérer sur les articles
  • une boucle « appliquer à chacun » contenant notre dernière action
  • une action « mettre à jour une ligne » permettant de faire nos calculs de prix ttc et de mettre à jour toutes les lignes concernées

Capture d’écran de la première partie du flux, où le JSON est analysé pour être exploité ensuite

Capture d’écran de la seconde partie du flux. Les prix sont calculés, et les infos sont envoyées dans la table correspondante

Le flux s’exécute et mets les lignes à jour un peu plus lentement que la fonction Patch, mais l’application n’est pas ralentie ni bloquée le temps que ce traitement s’effectue. On peut en plus accélérer le traitement en mettant du parallélisme sur l’exécution du « Appliquer à chacun »

Alimenter ses bases de données avec des Flux de données

Maintenant, imaginons que vous soyez justement en pleine transition vers Dataverse (pour comprendre l’intérêt de Dataverse, rendez-vous ici). Le plus délicat, c’est de transférer vos données… ou peut-être pas ! Les flux de données (qu’on préfère souvent appeler DataFlow) vous permettent un chargement rapide et automatisé de vos données dans Dataverse.

Pour cela rien de plus simple :

1 - Depuis la page d’accueil de Power Apps, cliquez sur « Flux de données ». Si vous ne le voyez pas directement dans le menu, cliquez sur « Plus », et il sera dans la liste (je vous conseille fortement de l’épingler en cliquant sur le pin)

Capture d’écran du menu de Power Apps, les composants les plus importants se trouvent ici

2 - Une fois sur la page des flux de données, cliquez sur « Nouveau flux de données ». Une fenêtre s’ouvre, et vous avez juste à lui donner un nom pour ensuite cliquer sur « Créer »

Capture d’écran de la création du nouveau dataflow

3 - Il faut ensuite choisir la source de données. Pour l’exemple, je vais prendre un fichier Excel (soyons honnête, ça représente la majorité des cas)

Choix de la source du Dataflow. Beaucoup de connecteurs sont possibles, mais on en reparlera !

4 - Vu qu’on peut directement ajouter un fichier, autant utiliser cette fonctionnalité (l’alternative aurait été un stockage du fichier sur Sharepoint, pour ensuite utiliser ce fichier sharepoint comme source)

Paramétrage de la source avec un fichier Excel

5 - Si vous avez déjà utilisé cette méthode, le flux de données utilisera automatiquement une connexion déjà existante. Sinon, il suffit de renseigner les différents champs (nom de la connexion, et se connecter). On clique ensuite sur « Suivant »

6 - On sélectionne notre feuille de données, et on clique sur « Transformer »

Aperçu des données sources, on y est presque !

7 - Si on a des modifications ou corrections à effectuer, c’est maintenant. L’interface est assez intuitive si vous avez utilisé Power Query dans Power Bi par exemple. Si tout est ok il ne reste qu’à faire le « mappage des colonnes » en cliquant sur « suivant »

Ecran de traitement et transformation des données, comme dans Power Query

8 - 2 options, soit vous avez été prévoyant et vous avez déjà créé la table en avance, soit vous n’avez rien du tout, et c’est encore plus simple : il vous suffit alors de renseigner le nom de la table en cochant « charger dans une nouvelle table »

Paramétrage de la sortie vers une nouvelle table

Dans le cas où la table existe déjà, il suffit de la sélectionner, et de faire correspondre les colonnes du flux avec les colonnes de la table

Paramétrage de la sortie vers une table existante

Une fois publié, le flux tourne pendant quelques minutes et la table est remplie !

Affichage des données nouvellement chargées dans Dataverse

Créer et utiliser des connecteurs personnalisés

Cette partie est plus technique, mais permet de s’affranchir des limitations d’environnement. En utilisant un connecteur, on peut appeler n’importe quelle API depuis une application, et récupérer ou envoyer des données via cette API.

Tout se passe dans l’onglet « connecteurs personnalisés », où il faut cliquer sur « créer un nouveau connecteur ».

Je vais ici utiliser une API gratuite et sans authentification, car c’est le cas le plus simple. Il s’agit d’une API de données météo (fournie par open-meteo), utile dans le cadre d’une application de logistique où il faut planifier des trajets. Deux options possibles : On peut paramétrer le connecteur en renseignant des champs, ou en passant par l’éditeur Swagger.

Option 1 : paramétrage en remplissant les différents champs (simple en apparence, mais plus long)

Option 2 : paramétrage en éditeur Swagger (ne partez pas, ce n’est pas si horrible !)

L’éditeur swagger parait intimidant au début, mais c’est en fait l’option la plus simple. Etant aujourd’hui à l’âge de l’IA générative, il suffit de lui donner les informations importantes pour que tout le swagger soit généré.

Dans la documentation de cette API, on voit que toutes les informations d’entrée sont fournies dans l’URL cible. Par exemple, pour Montpellier du 27/08/2024 au 31/08/2024, voici l’url cible

URL de l’API contenant tous les paramètres nécessaires

On peut voir que la première partie correspond à l’hôte de l’API, la partie « /v1/ » est ce qu’on appelle l’URL de base, et le « forecast ? » correspond au chemin d’accès du endpoint qu’on souhaite interroger. Les couples paramètres/valeur se suivent ensuite, séparés par un « & » à chaque fois.

La documentation nous permet également de tester et d’obtenir un json de réponse. C’est un cas idéal, car avec cet élément, une IA générative comme ChatGPT peut littéralement finir le travail pour nous.

Prompt et réponse ChatGPT avec Power Apps
Prompt et réponse de Chat GPT. Le premier jet est tout à fait correct, mais n’hésitez pas à faire plusieurs essais en cas de message d’erreur

Dès le premier essai, le YAML que me fournit ChatGPT est cohérent et fonctionnel !
Il ne reste qu’à le copier/coller dans l’éditeur Swagger du connecteur. 

Une fois que le connecteur est enregistré, il suffit d’aller dans une application Power Apps en mode édition. Dans le volet de gauche, en cliquant sur l’onglet de données, on peut ajouter notre connecteur. 

Onglet « données », où le connecteur est disponible pour l’utiliser dans l’application

Une fois dans l’application, il peut être appelé et sa réponse est stockée dans une variable qu’on exploite ensuite 

Formule d’appel du connecteur : On appelle notre endpoint « GetTempRain », et on lui transmet les paramètres dont il a besoin. Le « .hourly » permet de récupérer une sous-partie de la réponse, où se trouvent les données

Et vous avez maintenant une API directement accessible dans votre application, sans avoir besoin de stocker vous-même les données où que ce soit !

Ecran de récupération des données pour la zone et la période spécifiée (Il ne manque plus qu’à rajouter un peu de design)

Cette fonctionnalité fait d’ailleurs une très bonne transition vers les fonctionnalités du prochain billet de blog de cette série, qui concernera les sources de données dans Power Apps😉

Un projet sur la suite Power Platform ?

Faites-nous part des défis de votre entreprise et nous vous aideront à dynamiser votre activité grâce à la Power Platform

Contacter l'agence

D'autres articles à ce sujet

Tous nos contenus
Les Incontournables de Power Apps : La fonction Patch()
Power Apps
Les Incontournables de Power Apps : La fonction Patch()

Maîtrisez la fonction Patch() dans Power Apps pour créer, modifier et fusionner des données tout en optimisant vos applications et performances.

Quentin MAILLY
Quentin MAILLY
December 17, 2024
Tutoriel
Vidéo
Cas d’usage : Application de suivi de sa tournée infirmière avec Power Apps
Power Apps
Cas d’usage : Application de suivi de sa tournée infirmière avec Power Apps

Créez une application de suivi des tournées infirmières avec Power Apps, optimisez UI/UX et simplifiez gestion des patients et tâches administratives.

Manon CHAIX
Manon CHAIX
December 3, 2024
Article
Vidéo
Intégration d’Outlook dans PowerApps
Outlook
Power Apps
Intégration d’Outlook dans PowerApps

Découvrez comment intégrer Outlook à PowerApps pour centraliser vos emails, automatiser les flux et optimiser vos processus métiers.

Louis-Etienne RICHIER
Louis-Etienne RICHIER
November 26, 2024
Tutoriel
Vidéo