Aller au menu Aller au contenu

Par Yann Lacasse, Conseiller Intégrateur de données

J’ai récemment tenté l’expérience Power Apps pour la création d’une application qui permettrait d’afficher des valeurs provenant de SQL Server et de pouvoir les modifier tout en conservant les valeurs d’origine visibles. Ce fut une expérience rafraîchissante à l’extérieur du monde SQL, quoique très proche, qui m’a ramené au temps où je créais des fichiers Excel pour répondre aux besoins de mes camarades de classe. La sensation d’utilisation de Power Apps est très proche d’Excel, et oserais-je dire d’Access ? Microsoft avait pour objectif de viser une clientèle expérimentée en création d’application, mais aussi expérimentée en Excel. Selon moi, bien qu’il y ait quelques améliorations à faire, c’est une mission réussie!

Dans le monde des données, il y a toujours eu une relation amour-haine avec Excel : tout le monde sait moindrement l’utiliser, les clients peuvent faire pratiquement ce qu’ils veulent avec, mais Excel peut entraîner énormément d’erreurs dans les processus ETL. Power Apps est le début d’une solution à ce problème : si bien construite, une application Power Apps permet d’afficher des données tout en permettant de les modifier dans un cadre prévu à cet effet et répondant aux besoins du client. Fantastique !

Bien sûr, Power Apps possède ses limites, l’une des plus grandes est sa limite de 500 enregistrements provenant d’une source de données. Cependant, il faut se placer en contexte : Power Apps n’est pas un outil d’exploration des données. Ce titre revient à Power BI. Heureusement, Power Apps et Power BI s’intègrent très bien ensemble. Vous pouvez ainsi vous retrouver avec un Power BI dans lequel se trouve un Power Apps interagissant directement avec les données sélectionnées par l’utilisateur dans un graphique de Power BI !

Une autre limitation: Power Apps peut rapidement devenir lent si vous lui demandez trop d’opérations. L’une des astuces que j’ai trouvées : faire interagir Power Apps avec SQL Server. Il est possible de demander à Power Apps de déléguer des opérations de recherches de données à SQL Server – on se rappelle la limite de 500 enregistrements. L’un des plus grands pièges de Power Apps serait de reconstruire une architecture de données dans l’application, un peu l’équivalent de ce qu’on pouvait faire avec Excel avant qu’on apprenne l’existence des bases de données.

Également, Power Apps est conçu pour développer une application avec un seul développeur à la fois. Si une équipe souhaite travailler sur Power Apps, il faudra que tout le monde se synchronise. Cependant, puisque Power Apps est souvent une interface, d’autres éléments de l’application peuvent être travaillés par d’autres membres de l’équipe. Dans mon cas, j’étais sur l’interface, un collègue était sur les processus d’affaires et un autre sur la base de données.

Aussi, tous les objets de Power Apps possèdent des propriétés modifiables, mais n’affichent pas aisément toutes les propriétés différentes de leur valeur par défaut. Il s’agit d’une limitation, car lorsqu’un bogue surgira, à moins d’avoir participé à son développement, il sera fastidieux de trouver son origine. Ici, la seule bonne solution est une documentation appropriée de l’application…

Somme toute, Power Apps possède un excellent potentiel d’amener les utilisateurs à ajouter et modifier des données dans un environnement sécurisé pour nos précieuses données. La clé est de simplement optimiser la spécialité de chaque outil afin d’offrir une interface simple et facile d’utilisation pour nos chers utilisateurs.

Power Apps : un jeu de galeries et de collections

J’ai utilisé Power Apps afin de créer une interface de saisie pour les utilisateurs afin qu’ils puissent modifier des données qui leur sont présentées et en rajouter à leur guise. Pour ce faire, j’ai utilisé les galeries. Lors de mon exploration de Power Apps, j’ai découvert trois objets principaux pour afficher ou modifier des données:

·        les tables qui permettent de simplement afficher des données;

·        les formulaires qui permettent d’insérer des données;

·        les galeries qui permettent d’afficher et de modifier des données.

Compte tenu de l’objectif de mon application, il était alors naturel d’utiliser les galeries. Ces dernières offrent par défaut des modes différents selon les besoins, que ce soit pour la présentation de photos ou de tables de données. Elles possèdent également un mode de fonctionnement particulier permettant d’éviter de devoir reproduire des critères pour chaque ligne de données présentées. Elles se basent sur le principe que toutes les lignes de votre table respecteront le même modèle et, lors du développement, elles présentent uniquement la ligne modèle. Cette façon de faire permet de grandes possibilités de personnalisation.

Create a gallery in Power Apps

Avant de poursuivre, je dois mentionner les collections. Il s’agit de petits jeux de données créés par Power Apps pour contenir les données. Ces collections sont facilement manipulables et permettent de créer des niveaux d’abstractions intéressants. Dans mon application, au démarrage, j’ai pris la peine de créer plusieurs collections pour aller chercher toutes les données dont j’avais besoin et éviter à mon application de constamment faire des appels à la base de données. Mes collections avaient plusieurs fonctions : créer des filtres, créer des choix de sélection pour des listes déroulantes, servir de sources de données à afficher et conserver les modifications apportées aux données.

Ainsi, les galeries peuvent utiliser les collections comme source de données, ce que je recommande fortement. Chaque ligne de la collection sera affichée dans la galerie en respectant la ligne modèle établie. Lors de la création d’une collection, il est possible de lui spécifier des colonnes supplémentaires ou de la créer sur le modèle d’un objet SQL d’une base de données. Pour l’affichage de mes données, j’ai choisi de prendre le modèle existant de ma base de données et de rajouter des colonnes marqueurs booléens afin de permettre le suivi de l’évolution de la ligne selon les modifications de l’utilisateur. Par exemple, si vous souhaitez afficher une ligne rouge pour indiquer qu’elle sera supprimée, la colonne ajoutée pour suivre la suppression permettra à la galerie d’afficher uniquement la ligne à supprimer en rouge.

Ainsi, au fur et à mesure que les utilisateurs modifiaient ou ajoutaient des valeurs, celles-ci étaient enregistrées dans les collections appropriées, une pour ajouter des enregistrements et une pour historiser celles qui étaient modifiées ou supprimées. Une fois l’utilisateur satisfait de ses modifications, il ne lui reste qu’à appuyer sur un bouton «Sauvegarder» qui ne faisait que rouler des boucles dans les collections pour les ajouter dans la base de données.

Power Apps, un outil dans un écosystème

Power Apps permet de créer des applications pour les entreprises à usage interne. Dans cette notion, on peut facilement imaginer que Power Apps deviendra l’interface de choix pour plusieurs processus de l’organisation. Sa ressemblance, par rapport à son utilisation, avec Excel permet à plusieurs professionnels de l’entreprise de se retrouver facilement dans la création d’applications afin de faciliter le travail ou de permettre à des développeurs de créer des interfaces de saisie rapidement. Cependant, je mettrais l’accent sur le développement d’applications Power Apps comme uniquement des interfaces utilisateurs.

Lors de mon projet, Power Apps était constamment connecté à une base de données SQL, ce qui lui permettait d’interagir avec toutes les données connectées sans devoir les gérer pour exploiter mon application au mieux et  laisser son travail à ma base donnée. Afin d’alléger l’application, l’un des choix structuraux a été de présenter toutes les données à l’application sous forme de vues et que lorsque celle-ci devait enregistrer les modifications, celle-ci le faisait sur une des tables qui alimentait les vues. Ce choix nous a permis d’éviter plusieurs opérations de recherche (LookUp) dans l’application et de les déléguer à la base de données. La différence de performance était visible. Il est à noter ici que Power Apps n’est pas capable d’effectuer des modifications sur une table qui ne contient pas de clé primaire.

En se positionnant ainsi, on peut facilement élaborer des applications plus complexes utilisant des flux de Power Automate, des tableaux de bord de Power BI ou d’autres outils.

Actions processus

Vous avez des questions?

Écrivez-nous