PowerApps Développeur – CODER

Introduction

Dans Office 365 vous ouvrez PowerApps et s’affiche le titre Développez rapidement des applications professionnelles.

Voilà une belle promesse, surtout que ces applications fonctionnent sur smartphone !
Mais qu’en est-il de l’investissement en temps, de la documentation disponible, des limites de ces apps, de leur diffusion, de leur maintenabilité ?

Voyons la réelle étendue des pouvoirs que vous donne PowerApps 😉

Pour développer une application, vous allez :

  1. Définir ou identifier les données manipulées
  2. Concevoir ou générer* vos pages et écrire du code
  3. Publier votre application V1 dans votre tenant O365
  4. Partager cette application avec vos collègues
  5. Demain vous ou une autre personne produira de nouvelles versions

Dans ce 1er article je me focalise sur les points 2. et 5. : CODER et MAINTENIR.

*La génération d’une App est possible depuis une modern list SharePoint, ceci est illustré plus avant dans cet article.

Autre article : https://blog.ai3.fr/PowerApps Developpeur – DEPLOYER

Exemple de besoin

Voici une application ultra simple, sans obligation de définir la structure et l’emplacement des données.

blog ai3 PowerAppsDev02 PowerApps Développeur - CODER blog ai3 PowerAppsDev03 PowerApps Développeur - CODER

Le code

Les instructions sont placées dans les événements (la capture écran est faite à partir de plusieurs captures)

blog ai3 PowerAppsDev04 PowerApps Développeur - CODER

Événement OnVisible de la page Main : la variable locale AddMode prend la valeur True (variable de type booléen).
Événement OnChange du champ Name : la variable locale CurrentName prend la valeur du champ Name.
Événement Default du champ Name : si mode ajout le champ est vide, sinon il contient l’élément sélectionné dans la liste.

Le choix des variables est essentiel pour la maintenance de l’application, ce qui est expliqué plus loin dans cet article. Il est important de les nommer avec soin.

La propriété Text du bouton AddOrUpdate est une formule qui positionne son libellé en « Ajouter » ou « Modifier » en fonction de la variable locale AddMode.
Le code de l’événement OnSelect de ce bouton :

  • La variable mémoire pour une liste est une collection
  • En mode ajout : ajouter un élément à la collection
  • Sinon mettre à jour
  • Puis dans les 2 cas passer en mode ajout (double point virgule pour enchaîner des instructions)

blog ai3 PowerAppsDev05 PowerApps Développeur - CODER

Les captures écran ci-dessus montrent que les utilisateurs aguerris aux formules Excel peuvent facilement faire la transition vers PowerApps.
La documentation PowerApps présente d’ailleurs le language comme des formules.
https://docs.microsoft.com/fr-fr/powerapps/maker/canvas-apps/formula-reference

blog ai3 PowerAppsDev06 PowerApps Développeur - CODERCependant plus les règles métier vont s’enrichir plus le code va être difficile à lire.
Une des idées qui a émergé de la communauté PowerApps  est la mise forme du code, à laquelle peuvent s’ajouter les commentaires « // ceci est un commentaire ».

 

User voice de la communauté PowerApps :
https://powerusers.microsoft.com/t5/PowerApps-Ideas/idb-p/PowerAppsIdeas

 

Au delà de la mise en forme du code et des commentaires, voyons plus généralement la maintenabilité des Apps.

La maintenabilité

Comme dans un classeur Excel avec de nombreuses formules réparties dans différentes cellules, il est difficile d’appréhender le code dans son ensemble.

La 1ère chose qui va fortement nous aider sont les variables, qui peuvent être locales ou globales.
En savoir plus  https://docs.microsoft.com/fr-fr/powerapps/maker/canvas-apps/working-with-variables#types-of-variables

En effet, PowerApps affiche les différentes variables et pour chacune :

  • Où elle est définie (où sa valeur est affectée), par exemple UpdateContext({AddMode: true})
  • Où est utilisée, par exemple If(AddMode;"";MyColl.Selected.Title)
  • Où elle est indirectement utilisée, par exemple :
    • La variable AddMode est utilisée pour initialiser valeur par défaut champ Name
    • Donc Name.OnChange est une utilisation indirecte de AddMode

Ainsi les variables permettent de « suivre le fil » des traitements.

blog ai3 PowerAppsDev07 PowerApps Développeur - CODER

La seconde chose qui va nous aider pour la maintenance est de produire une documentation technique dans une ou plusieurs pages de l’application, tel que :

blog ai3 PowerAppsDev08 PowerApps Développeur - CODER

Générer depuis SharePoint

Quand la source de données est une modern list SharePoint il est possible d’utiliser PowerApps pour personnaliser les formulaires, mais aussi pour créer une application mobile.

En un clic cette application est générée avec les fonctionnalités d’affichage de la liste, tri, recherche, ajout dans la liste, maj, suppression.
Il est ensuite possible de la personnaliser avec son propre code.

blog ai3 PowerAppsDev13 PowerApps Développeur - CODER

Conclusion

Cet article examine les points 2. et 5. du développement d’une application PowerApps :

1. Définir ou identifier les données manipulées
2. Concevoir ou générer vos pages et écrire du code
3. Publier votre application V1 dans votre tenant O365
4. Partager cette application avec vos collègues
5. Demain vous ou une autre personne produira de nouvelles versions

Pour coder une application il faut positionner des formules dans son IHM, cela favorise la prise en main de PowerApps par des personnes qui ne sont pas développeurs.
Pour la maintenance d’une application par d’autres personne que son auteur, je conseille d’appliquer les bonnes pratiques suggérées ici.

PowerApps est adapté aux développements en cycles courts [ Besoin  =>  App V1  =>  App V2  => … ]
Ceci dit le produit est en évolution rapide, cela se voit à travers les nombreuses idées émises par la communauté : Planned(152) Started(34) Completed(158)

Article sur les points 1.  3.  et 4.  : https://blog.ai3.fr/PowerApps Developpeur – DEPLOYER

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.