Retrouvez la vidéo de notre présentation « Progressez sur Power Automate » lors de l’événementaMS Lausane qui a eu lieu le 19 Avril. Lors de cette vidéo nous avons abordé les thèmes suivants :
Lors de la création de ma dernière application, j’ai constaté qu’il y avait des lenteurs pendant le chargement des écrans. Il existe plusieurs raisons possibles (le nombre trop important de contrôles dans l’application, le temps de chargement des sources de données…).
Je vous conseille de toujours vérifier votre application avec les outils évoqués ci-dessous avant de la mettre à disposition. Ils vous permettront d’identifier les problèmes existants et d’améliorer vos applications.
Le premier outil à disposition dans Power Apps et simple d’utilisation est le vérificateur d’application. Pour y accéder sélectionnez l’onglet stethoscope en haut à droite de votre application. L’outil comporte différentes sections.
Lors de l’analyse de mon application, la section « performances » affichait des problèmes. Le vérificateur m’a indiqué qu’il y avait des références vers d’autres écrans, ce que j’ai corrigé. J’utilisais dans mes formules l’objet gallery.Selected alors que la galerie était dans un autre écran. Cette correction m’a permis de passer de 6 secondes de chargement à 2 secondes. Quand on fait référence à des contrôles d’un autre écran cela peut avoir un impact assez important. Il est possible d’en oublier à cause des copier/coller par exemple.
N’hésitez pas à parcourir les sections pour corriger vos problèmes. Si vous arrivez à respecter l’accessibilité c’est encore mieux
Pour obtenir plus de précisions et identifier un problème, il y a un autre outil : le moniteur. Vous pouvez l’ouvrir depuis les paramètres ou l’éditeur de Power Apps.
C’est un outil qui permet de visualiser et surveiller l’ensemble des événements qui se déroule dans votre application. Le moniteur examine le déroulement d’une session afin de diagnostiquer et résoudre vos problèmes. Il permet de surveiller la navigation entre les pages, les exécutions des fonctions, les problèmes liés aux échanges avec les sources de données, etc pour comprendre le comportement de l’application de façon précise.
Retrouvez la vidéo de notre présentation « Les bonnes pratiques du développement Power Apps » lors de l’événement Power Platform French Summit 2021 qui a eu lieu le vendredi 19 Novembre. Lors de cette vidéo nous avons abordé les thèmes suivants :
Il arrive parfois que le bloc action que vous recherchez dans Power Automate n’existe pas. Par exemple avec le connecteur Teams, il est possible de créer un canal dans une équipe Teams mais il n’existe aucune action pour renommer un canal. Cependant cela est réalisable avec le service graph.
Il est maintenant plus simple d’effectuer des actions avec Graph depuis Power Automate grâce au connecteur ‘HTTP with Azure AD’ qui est un connecteur premium.
Voici la marche à suivre pour utiliser simplement Graph dans Power Automate.
Utilisez le connecteur ‘HTTP with Azure AD’ dans Power Automate
Ce connecteur va vous permettre d’interroger l’API Graph sans avoir à passer par une application ou à récupérer un jeton de connexion au préalable.
Pour cela ajoutez l’action « Invoquer une requête HTTP » dans un Power Automate.
Puis configurez votre action, dans mon cas je souhaite utiliser Graph. J’indique donc l’url du service que je souhaite interroger : https://graph.microsoft.com.
Il suffit maintenant de réaliser sa requête, pour cela n’hésitez pas à vous rendre sur le site Graph Explorer afin de prendre connaissance des requêtes possibles.
Ci-dessous, un exemple pour récupérer les informations de son profil.
Ci-dessous le résultat :
Utilisez la requête suivante pour renommer un canal Teams
Il vous suffit de changer la requête pour renommer votre canal Teams. Attention : Vous devez avoir le droit de renommer le canal de l’équipe Teams.
L’utilisation du langage JSON est de plus en plus présent au sein de l’environnement Microsoft 365. Je l’avais déjà évoquélors de mon article précédent. C’est pourquoi lors de notre dernière présentation avec Baptiste Mulot le samedi 6 juin 2021 lors des Power Saturday 2021, nous avons présenté l’utilisation de JSON pour présenter ses données. Nous y avons abordé la mise en forme de liste 365 avec ses nouveautés mais aussi la mise en place et l’utilisation des adaptives cards.
Je souhaitais vous partager quelques outils utilisés pendant cette conférence. Pour les listes Microsoft, vous pouvez :
Utiliser la solution sp-formatter pour synchroniser votre code entre Visual Code et votre liste SharePoint. Voici le lien vers de dépôt git https://github.com/pnp/sp-formatter. Cette manipulation permet de faciliter le développement de la mise en forme JSON. Il vous faudra installer un add-on in Edge ou chrome et une extension sur Visual Studio Code.
Utiliser le site https://adaptivecards.io/designer. Basez-vous sur les modèles proposés et adaptez-les en fonction de vos besoins. Pour cela cliquer sur New card.
J’espère que ces astuces vous serviront. Bon développement !
Il est possible d’avoir des informations concernant l’utilisation de votre site SharePoint. Mais si cela n’est pas suffisant pour vous, savez-vous qu’il existe une fonctionnalité qui permet de connaitre qui a consulté les documents ou pages de votre site SharePoint et quand. Pour activer cette fonctionnalité sur votre site SharePoint, il faut avoir au minimum les droits de propriétaire.
Vous devez aller dans les paramètres du site, puis dans l’onglet « Action du site » sélectionnez le lien « Gérer les fonctionnalités du site ». Ensuite il faut descendre en bas sur le dernière élément de la page pour activer la fonctionnalité « Visionneuses SharePoint ».
Maintenant vous pouvez observer qui a consulté et quand les documents ou les pages du site. Pour cela, sélectionnez un fichier ou une page et cliquez sur les vues.
Ensuite vous verrez apparaitre les statistiques sur le fichier ou la page.
L’action « initialiser la variable » du bloc « Variable » permet simplement de mettre en place des variables mais ce n’est pas toujours le bon choix. Si vous souhaitez définir des variables qui ne vont pas évoluer, alors il vaut mieux utiliser l’action « Analyser JSON » présente dans le bloc « Opération de données ». Avec cette méthode, vous pouvez définir plusieurs constantes facilement à un seul endroit, et les utiliser simplement par la suite dans votre Power Automate en utilisant le créateur de formule.
Dans l’image ci dessus, il est possible d’utiliser les variables URL et GUID facilement et celles-ci sont typées. Attention, Il ne faudra pas oublier de générer le schéma à partir de l’échantillon dans l’action « Analyser JSON ».
L’intérêt de cette méthode est de stocker les propriétés du trigger mais aussi des urls, les guid des listes… que vous allez utiliser dans les blocs suivants. Ainsi quand les éléments du Power Automate évolueront tels que le trigger ou certaines listes, vous devrez changer les variables à un endroit unique et non dans tout le Power Automate. Cela servira également si vous souhaitez adapter le Power Automate dans un autre cas ou environnement. Voir l’exemple ci-dessous.
Si vous souhaitez faire la même chose avec les blocs actions présents dans « Variable », il sera nécessaire d’ajouter autant d’actions que de variables. Vous pourriez aussi initialiser une variable de type objet qui contiendrait les constantes, mais par la suite les variables ne seraient pas typées et ne seraient pas proposées dans l’éditeur de formules.
Récupérer le contenu JSON depuis un fichier stocké sur SharePoint
Il est possible de stocker le fichier json qui contient vos constantes dans une bibliothèque SharePoint. Pour cela vous devez utiliser le connecteur « SharePoint » et l’action « Récupérer le contenu du fichier en fonction de l’emplacement ». Dans ce cas il n’est pas nécessaire de convertir le contenu du fichier, vous le récupèrez directement dans le format souhaité.
Récupérer le contenu JSON depuis un fichier stocké dans OneDrive
Il est aussi possible de stocker le fichier json qui contient vos constantes dans votre espace personnel OneDrive. Pour cela, vous devez utiliser le connecteur « Onedrive » et l’action « Récupérer le contenu du fichier en fonction de l’adresse ». Une fois que vous avez récupéré le contenu, il faut le convertir à l’aide de la fonction base64ToString.
Créer des variables dynamiques pour les propriétés de vos contrôles dans une application Power Apps
L’objectif de cet article est de définir rapidement et de centraliser les propriétés des contrôles que vous allez utiliser dans une application PowerApps. En règle générale nous définissons les propriétés d’un contrôle, puis nous le dupliquons dans l’application.
Par exemple : j’ai ajouté un bouton que j’ai personnalisé, sa couleur de fond est rouge, son texte est blanc, ses bords sont arrondis… Pour avoir une application homogène, je vais dupliquer mon bouton personnalisé dans les écrans de l’application pour créer un nouveau bouton. Si jamais je dois faire évoluer la couleur alors je vais devoir reparcourir tous les boutons utilisés dans mon application.
Afin de ne pas avoir à faire cela, il est préférable de définir des variables dans la propriété OnStart de l’application où les valeurs des propriétés des contrôles seront définies.
Voici un exemple de variables à définir dans la propriété OnStart de votre application :
Dans l’exemple proposé, jai crée un object qui contient des couleurs, un autre le format de la police et aussi la taille du texte. Ensuite viendra la variable glbAppStyle qui contiendra autant d’objets qu’il y a de composants.
Vous retrouverez un exemple complet de ces variables et objets dans le fichier ci-dessous.
Ensuite il vous suffit de faire un écran, où vous disposerez chacun des types de contrôles que vous souhaitez. Ses propriétés devront être associées aux valeurs définies dans la variable du OnStart de l’application (comme dans le Gif ci-dessous). L’écran que vous venez de créer sera votre référence, il contiendra les contrôles à utiliser et à dupliquer dans votre application.
En utilisant une copie de ces contrôles par la suite, il n’est plus nécessaire de tous les parcourir pour les mettre à jour. Il suffira de mettre à jour les variables que vous avez défini dans la propriété OnStart de votre application, pour modifier l’ensemble des contrôles de votre application.
Définir les mêmes variables pour toutes vos applications
Pour que ces variables soient définies à un seul endroit et non pas dans chacune de vos applications, je vais créer un composant Power App. Celui-ci aura une variable de sortie gblAppStyles, qui sera égale à l’objet défini ci-dessus. Tandis que dans sa propriété OnReset définira les variables gblAppColors, glbAppFont, gblAppSizes. Vous pouvez en ajouter d’autres si nécessaire. Notre composant est terminé, on peut maintenant le publier. Le composant utilisé pour cet exemple est disponible ci-dessous, il contient aussi les contrôles dans la partie écran. Vous pouvez donc copier ceux-ci dans vos nouvelles applications.
Maintenant lors de la création d’une nouvelle application PowerApps, nous allons faire appel à notre composant pour charger la variable gblAppStyles. Pour cela on va recharger notre composant dans la propriété OnStart et sauvegarder sa sortie gblAppStyles dans la propriété OnVisible de notre écran principal.
Ci-dessus ma nouvelle application, dans laquelle j’ai ajouté les contrôles liés aux variables dynamiques comme lors de la présentation précédente et qui intègre mon composant.
Nos contrôles sont définis grâce aux variables de l’objet gblAppStyles. Alors quand on mettra à jour notre composant cela affectera directement les éléments présents dans notre application. Voici un exemple :
Le composant va permettre de définir des variables présentes dans différentes applications. Ainsi lorsque l’on devra modifier les propriétés des contrôles : la couleur par exemple, on pourra le faire depuis le composant afin que cela se répercute sur les contrôles des applications qui l’utilisent lors de la mise à jour de celui-ci.
Vous souhaitez rendre vos listes SharePoint plus esthétiques et dynamiques. Le format JSON vous permettra de mettre en forme vos colonnes ainsi que vos vues de façon simple et rapide.
Les intérêts sont divers :
Sachez qu’il existe un mode conception qui va vous proposer des mises en forme pour vos colonnes et vos vues. Ce mode permettra à tous mettre en place des affichages de type JSON.
On observe que dans ce mode, il n’est pas nécessaire de connaitre le langage JSON pour appliquer et configurer ses affichages.
Les profils avancés peuvent aller plus loin, en respectant le format JSON et en utilisant les schémas fournis par Microsoft. https://developer.microsoft.com/json-schemas/sp/v2/row-formatting.schema.json Pour connaitre les possibilités du langage JSON, je vous invite à regarder cette présentation que nous avons réalisé avec Baptiste Mulot lors du Global Microsoft Developer Bootcamp le 25 novembre 2020.
Dans mon cas, j’ai donné uniquement l’autorisation User.ReadWrite de type délégué à l’application.
Une fois votre connecteur en place dans Flow, alors vous pouvez lier votre bouton PowerApps vers Flow.
Par défaut le trigger de votre Flow sera PowerApps, nous ajouterons ensuite l’action personnalisée de votre connecteur définit précédemment dans Flow, dans mon cas je l’ai appelé Graph.
Ensuite je complète le champ body de mon Action « Graph » afin d’effectuer la requête « https://graph.microsoft.com/v1.0/me/ ».
Puis je lance mon Flow pour tester son fonctionnement.
Dans l’historique des exécutions de mon Flow, je remarque que celui-ci a fonctionné. Je copie le corps de la sortie de ma requête.
J’édite de nouveau mon Flow, j’ajoute une action « Réponse », et j’ajoute le texte copié précédemment dans la pop-up « Utiliser l’exemple de charge utile pour générer le schéma » afin que le composant génère le bon Schéma JSON.
Information : Je n’ai pas ajouté l’action « répondre à PoweApps » afin de retourner le résultat de la requête, car celle-ci est seulement capable de nous retourner des résultats de type texte, booléen, fichier, messagerie, nombre et date et non pas des tables ou objets.
Je clique sur terminer et je modifie le JSON afin que la réponse soit correcte.
Information : Si votre JSON ne correspond pas à la réponse de votre requête ou qu’il contient une erreur alors l’application PowerApps va probablement générer une erreur.
J’ajoute dans corps de l’action « Réponse » de ma requête précédente et je sauvegarde mon Flow.
Je peux maintenant retourner sur PowerApps, mon Flow est disponible.
Je stocke le résultat du Flow dans la variable globale me, lors du clique sur mon bouton ajouté précédemment.
Je peux maintenant observer les valeurs retournées, dans les étiquettes définies précédemment. Mon premier champ texte affichera le display name de l’utilisateur courant tandis que le second affichera son adresse mail.
Je lance mon application, et lorsque je clique sur le bouton « Charger les données » le display name et l’adresse mail de l’utilisateur courant apparaissent.
Et voilà Vous êtes maintenant capable d’utiliser Graph depuis PowerApps. N’oubliez pas de modifier les droits de votre application, si jamais vos appels depuis Flow nécessitent plus d’autorisations.