Les entreprises ont besoin d’outils pour développer rapidement des apps mobiles à partir des applications métiers existantes. Ces apps doivent être accessibles sur toutes sortes de terminaux et pas seulement pour les collaborateurs qui travaillent sur les données et retiennent habituellement toute l’attention des équipes IT. C’est la cible de la refonte des PowerApps de Microsoft. Les applications modernes couvrent tout le spectre des modes de développement, depuis celles qui se génèrent sans code ou en limitant le recours au code (low code) jusqu’aux applications cloud massives orientées services. Au milieu de tout cela, il y a une place pour des apps dont la complexité ne demande pas un développement conséquent mais qui requièrent tout de même un peu plus qu’un assemblage de composants par drag-and-drop. Et c’est très clairement un créneau important comme en atteste le récent rachat de MuleSoft et de sa plateforme de gestion d’API par Salesforce pour 6,5 Md$.

Microsoft de son côté continue à développer sa suite d’applications et de services dans ce domaine, l’évolution la plus significative en la matière concernant PowerApps. Parallèlement à ses applications métiers Dynamics, PowerApps - qui a commencé sa carrière fin 2015 et a été récemment améliorée - joue un peu pour Microsoft le rôle que Mulesoft va jouer pour Salesforce. C’est une plateforme servant à relier les utilisateurs aux données métiers. 

PowerApps, le L4G pour les besoins métiers d'aujourd'hui 

Bien sûr, le sujet n’est pas nouveau. Dès les années 1990, les langages dit de 4ème génération (L4G) tels que Forté, de même que la première génération de Visual Basic permettaient de construire un pont entre les mainframes et mini-ordinateurs et les premiers réseaux de PC. En fournissant aux développeurs des langages de programmation et des environnements pour bâtir rapidement des applications client-serveur, ils ont fait évoluer l’informatique métier en supportant de nouveaux workflows et de nouvelles façons de travailler. La situation actuelle est similaire. Il faut relier les applications sur site aux plateformes SaaS et fournir pour les terminaux mobiles des interfaces orientées sur les tâches à accomplir. Par exemple, si les utilisateurs sont des techniciens de maintenance, ils auront besoin de savoir où ils vont et ce qu'ils doivent faire, tandis que des agents de surveillance devront régulièrement badger à certains points-clés de leur tournée. Les personnes employés sur des activités de service comme celles-ci doivent tous fournir des données à des applications SaaS et à des bases de données d'entreprise.

Comme les L4G qui l’ont précédé, PowerApps propose une bibliothèque de composants pour bâtir des interfaces utilisateurs pour les postes de travail et, surtout, pour les mobiles. Disposer d’une app pour iOS et Android dispense les utilisateurs d’en telécharger sur les app stores et de demander au département informatique l’autorisation d’en utiliser. 

Connecteurs et Common Data Service 

Pouvoir réaliser rapidement des interfaces utilisateurs résout un certain nombre de problèmes, mais la véritable valeur de L4G comme PowerApps vient d’un ensemble de connecteurs pré-construits et personnalisés qui relient le code développé aux systèmes de back-end. La solution n’inclut pas seulement des connecteurs vers les services de Microsoft, mais aussi vers d’autres plateformes cloud et vers les systèmes sur site. Certains d’entre eux, par exemple ceux pour Salesforce, Amazon Redshift et IBM DB2, induisent un surcoût par rapport aux abonnements souscrits par les entreprises à la suite bureautique en ligne Office 365 ou aux solutions de gestion Dynamics. Mais l’essentiel nécessaire pour démarrer est accessible dès la souscription d’un compte PowerApps. 

L’un des services les plus importants de l’entité Business Applications de Microsoft est peut-être Common Data Service (CDS), originellement dénommé Common Data Model. Il s’agit d’un jeu de modèles de données pré-définies pour les objets métiers les plus courants qui vont permettre de constituer la colonne vertébrale d’une application ou d’un ensemble d’analyses métiers. PowerApps s’appuie sur un sous-ensemble du modèle désormais dénommé CDS for apps et qui fait partie d’une récente mise à jour de la plateforme métier de Microsoft. En combinant les entités standards que l’éditeur de Redmond continue d’enrichir et les types de données personnalisées par les entreprises elles-mêmes, le Common Data Service garantit qu’il n’y a qu’un seul modèle de données pour toutes les applications et un seul ensemble d’entités et que toutes les applications Dynamics de l’entreprise, les flux serverless Flows de Microsoft, de même que les PowerApps fonctionnent tous avec la même compréhension des données sous-jacentes. Avec le service Common Data, tout ce dont on a besoin, c’est d’une connexion aux données pour commencer à construire une app.

Ce service est une base de données simplifiée comme Access ou FileMaker avec des outils pour gérer les entités stockées et les relations entre entités. Comme dans une base de données relationnelle, il est possible d’avoir plusieurs relations entre les entités, mais chacune d’entre elles se comporte comme s’il s’agissait de sa propre table, avec ses propres champs et ses propres vues (qu’il est possible de personnaliser pour chaque application accédant aux données). On peut également assigner des règles métiers aux entités pour gérer la validation des données et appliquer une logique métier de base aux mises à jour. 

Passer des données au code dans PowerApps

Une fois que le modèle de données est défini, on peut utiliser des services comme Power Query pour importer des données depuis des sources externes dans le service Common Data. Les analystes métiers connaissent bien Power Query parce qu’il fait partie des fonctionnalités analytiques d’Excel et qu’il s’agit aussi d’un composant clé de Power BI. Ici, on l’utilisera pour les fonctions d’ETL (extraction, transformation, loading), en tirant parti de ses capacités de transformation pour formater les données et les relier aux schémas choisis. 

PowerApps est un environnement de programmation visuel, qui permet de bâtir du code à partir de blocs et d’éléments d’interface utilisateur sur un canevas web. Une application desktop permet de gérer certaines tâches de développement et de design, mais il faudra passer par le web pour construire et gérer les intégrations avec les applications. Les apps peuvent être bâties par tout utilisateur sachant déjà élaborer une macro Excel, mais c’est avec des développeurs dédiés disposant de compétences sur l’intégration d’application que l’on pourra en tirer le maximum, des profils capables à la fois de jongler entre différentes sources de données et API et de construire des interfaces utilisateurs PowerApps. 

Attention à la gestion des licences

Cela posé, il convient aussi de formuler certaines mises en garde sur la solution, notamment sur les licences. Chaque entreprise devra mélanger les licences qu’elle possède pour pouvoir délivrer ses apps aux utilisateurs, dans la mesure où les offres Office 365 Entreprise (plans) ne disposent pas toutes des droits adéquats pour utiliser des fonctionnalités telles que Common Data Service. Par exemple, si le plan Office 365 E donne à un PowerApps fonctionnant avec Graph et avec les données stockées dans Office 365, il faudra en revanche des plans PowerApps additionnels pour les analystes métiers et les administrateurs, de même même que pour les utilisateurs si l’on doit ajouter le service Common Data aux applications. Tous les utilisateurs n’auront pas besoin du même plan, il faudra donc choisir judicieusement en fonction des besoins respectifs des utilisateurs quel offre permettra de faire des économies. 

Des outils flexibles

Les entreprises ont besoin de flexibilité et pour les départements informatiques, et fournir les applications appropriées aux collaborateurs doit constituer un objectif clé pour les départements IT. Il n’est pas possible que le développement d’applications se fasse sur plusieurs années, ni même sur plusieurs mois. Pour fournir les outils dont les métiers ont besoin, les équipes informatiques vont devoir utiliser une plateforme d’intégration pour raccorder les systèmes de back-end, ajouter des workflows et des IU aussi souvent que nécessaire. Dans un environnement de développement centré sur l’univers de Microsoft, PowerApps fournit le moyen de le faire.

Les développeurs passent beaucoup de temps à développer des applications et des services complexes qui supportent des rôles et des tâches de certains utilisateurs. Cela conduit souvent à ignorer les besoins d’autres utilisateurs, dans les départements services par exemple, qui finissent par être relégués à la portion congrue sur le support IT, voire à en être privés pour leurs tâches quotidiennes. La possibilité de recourir à PowerApps permet de changer la donne, en disposant d’une plateforme pour bâtir rapidement des applications mobiles utilisables - qui peuvent être modifiées - qui fonctionnent à travers plusieurs plateformes et s’intègre avec l’existant.