Ecran Liste des formations

Concevoir une application Power Apps

Cet article décrit une méthode pratique pour concevoir une application Power Apps ou un flux Power Automate (flow).

Si vous rencontrez des erreurs dans les manipulations ci-dessous, lisez l’article qui explique comment débuguer les erreurs dans Power Apps.

Gardez à l’esprit que l’interface a pu évoluer fortement depuis que cet article a été rédigé.

L’effet démonstration

Par où commencer pour développer une application Power Apps ? Quelles approches permettent de concevoir un flux de travail Power Automate ?

Toutes ces questions peuvent paraître paradoxales tant l’accès aux outils et leurs utilisations sont simples.

En effet, avec ces outils le développement rapide est la priorité.

Par ailleurs, d’autres mettent en avant des cas d’usage simples ou parfois construits sur commande.

Enfin certains présentent brillamment le processus de création d’une application ou d’un flux mais ils passent sous silence la partie maintenance, souvent fastidieuse. Pourtant, celle ci représente généralement la majeure partie du développement.

Or, ce n’est pas si simple de créer une application car l’outil, aussi puissant soit-il, reste un outil.

La réalité

Dans la vraie vie, la réalité est généralement différente.

En effet, vous devez résoudre des problèmes riches et complexes

Pour vous, il y a, non seulement des connaissances nouvelles à acquérir, mais aussi des efforts d’imagination à déployer lors de la prise en mains de ces outils.

Notamment, c’est encore moins facile si vous ne connaissez pas les habitudes mentales de l’informaticien.

De plus, une personne qui jongle quotidiennement avec des notions complexes de trésorerie n’est pas forcément à l’aise avec la création d’une liste SharePoint.

Idem pour les responsables Ressources Humaines qui doivent évaluer avec discernement les employé.es mais dont le métier n’est pas d’imaginer les enchaînements de tâches d’un flux Power Automate.

Alors, comment faire pour développer une application Power Apps ou un flux Power Automate ?

Concevoir une application Power Apps : Objectif

Tout d’abord, Power Apps et Power Automate sont comme un couteau de l’armée suisse, dotés de plein de fonctionnalités et de possibilités.

Concevoir une application Power Apps : Couteau suisse
Concevoir une application Power Apps : Couteau suisse

Il faut donc apprendre à les utiliser.

Aussi, l’objectif de cette publication est de proposer une démarche simple de développement d’une application ou d’un flux.

Bien sûr, il serait prétentieux de vouloir résumer des livres entiers, des cours magistraux ou des travaux pratiques sur une année en quelques lignes.

Aussi, nous allons prendre un exemple simple. Ensuite, par analogie et extrapolation, vous arriverez certainement à définir votre méthode 🙂

Donc, vous voulez développer une application Power Apps.

Notamment, cette application Power Apps doit permettre d’inscrire un participant à une session de formation.

L’exemple est simple mais il n’est pas trivial. En particulier, dans ce scénario, les personnes doivent s’inscrire à une formation sur la base d’une liste. Ce n’est pas vous qui vous inscrivez directement à la formation. Ce qui rend l’exercice un peu moins simple.

Par ailleurs, vous travaillerez avec des listes SharePoint. C’est d’ailleurs un bon réflexe de raisonner en terme de tables ou de listes.

Enfin, en bas de l’article, un lien permet de télécharger l’application Power Apps, ainsi que les fichiers Excel nécessaires pour créer les listes SharePoint.

Concevoir une application Power Apps : inscrire des participants à un événement

Pour inscrire de futurs participants à un événement professionnel, une activité ou une formation, il faut collecter des informations pratiques sur les participants mais aussi sur l’événement.

Donc la première étape est de lister les informations nécessaires sur les futurs participants : nom, email, téléphone, société, etc.

Pour l’instant, il n’est pas utile de lister toutes les informations nécessaires. En fonction des besoins, vous pourrez toujours ajouter de nouvelles informations. Power Apps et Power Automate sauront en bénéficier.

Notamment, dans notre exemple, nous nous contenterons du strict minimum.

Premièrement, chacune de ces informations va devenir une colonne dans SharePoint.

En particulier, vous allez créer la liste SharePoint qui se nomme Participants.

Ensuite, vous allez créer ou renommer les colonnes :

  • parTitre (ex-colonne Title). Elle contient le titre de la personne : M., Mme, etc.
  • parNom est de type Une ligne de texte. Elle contient le nom et prénom de la personne à inscrire à une formation.
  • parMatricule est de type Une ligne de texte. Elle contient le matricule de la personne à inscrire. Elle sert à identifier de manière unique un participant. Cette colonne servira à créer une relation entre deux listes.

Concevoir une application Power Apps : liste des participants

Vous allez préfixer le nom des colonnes avec ‘par’ (pour Participants). C’est un peu lourd à lire mais cela simplifie considérablement la saisie des formules dans Power Apps et cela limite les erreurs aussi. Ensuite, les préfixes des listes sont toujours en minuscules dans ce plan de nommage.

Par ailleurs, dans cet exemple simplifié, le type de toutes les colonnes est Une ligne de texte.

Dans la pratique, il vaut mieux identifier correctement et tout de suite le bon type : Personne, Nombre, Devise, Oui/Non, etc. En effet, le changement d’un type de colonne, ou la création d’une colonne avec le bon type, est ‘couteux’ en terme de temps avec Power Apps et Power Automate.

Normalement, vous devez créer les colonnes sans accent. Ensuite, vous pouvez les renommer avec un accent.

Pour information, il est possible de faire disparaître complètement la colonne Titre, si nécessaire. Toutefois, ce n’est pas ce qui nous intéresse.

Notamment, quand vous créez un identifiant, la valeur ne doit jamais être significative. Si vous mettez une valeur significative, vous le regretterez tôt ou tard. Le mieux c’est de prendre une lettre avec un numéro de séquence : M001, M002, M003, etc.

Puis, insérez 3 lignes dans la liste Participants.

Liste SharePoint Participants
Liste SharePoint Participants

Maintenant, il faut gérer les sessions de formations. Notez que vous pouvez inscrire un participant à plusieurs formations simultanément.

Liste des sessions de formations

Dans ce scénario, nous distinguons clairement une formation, d’une session de formation :

  • Une formation possède un plan de cours, des prérequis, une durée et un prix.
  • Une session de formation concerne une formation donnée à une date précise et dans un lieu précis.

Dans la suite, nous traitons uniquement les sessions de formation.

Ensuite, vous allez créer la liste des sessions de formations.

Là aussi, il faut identifier les colonnes nécessaires : Nom de la formation, Date de début, Date de fin, Ville, Nombre de participants maximum, Nombre de participants inscrits, etc.

Notamment, vous allez créer la liste SharePoint qui s’intitule Sessions.

Ensuite, vous pourrez créer les colonnes :

  • sesTitre (ex-Title). Elle contient le nom de la session.
  • sesDebut est de type Date. Elle contient la date de début de la session de formation.
  • sesFin est de type Date. Elle contient la date de fin de la session de formation.
  • sesVille est de type Une ligne de texte. Elle contient la ville où se déroule la session.
  • sesIdentifiant est de type Une ligne de texte. Elle contient l’identifiant de la session. Elle sert à identifier de manière unique une session. Cette colonne servira à créer une relation entre deux listes.

Puis, insérez 2 lignes dans la liste Sessions.

Liste des sessions de formations
Liste des sessions de formations

Créer une relation entre deux listes SharePoint

Notez que vous pouvez inscrire un participant à plusieurs formations simultanément.

Par ailleurs, une session de formation peut avoir plusieurs participants.

Si vous cherchez à représenter ce que cela veut dire, vous obtiendrez quelque chose comme:

  • Formation X : Pierre, Paul, Jacques sont inscrits
  • Formation Y : Jacques, Sophie sont inscrites
  • Formation Z : Sophie, Pierre, Virginie sont inscrites

La relation se nomme N x N ou Plusieurs à Plusieurs.

La solution classique à ce problème consiste à créer une nouvelle liste qui va stocker chaque couple session, participant, soit :

  • Formation X : Pierre
  • Formation X : Paul
  • Formation X : Jacques
  • Formation Y : Jacques
  • Formation Y : Sophie
  • Formation Z : Sophie
  • Formation Z : Pierre
  • Formation Z : Virginie

Notamment, cela revient à faire le produit cartésien.

Toutefois, il serait lourd et peu commode de stocker le nom de la session et le nom des participants. Vous allez plutôt stocker sur chaque ligne l’identifiant de la session et l’identifiant du participant.

  • S00001 : M2608
  • S00001 : M0034
  • S00001 : M4402
  • S00304 : M4402
  • S00304 : M1234
  • S00202 : M1234
  • S00202 : M2608
  • S00202 : M7806

Ensuite, il ne reste plus qu’à créer la liste Inscriptions, qui va stocker ces informations.

Liste des inscriptions

La liste des inscriptions des participants aux sessions de formations doit être créée.

En particulier, il suffit de stocker dans la liste Inscriptions les identifiants des deux autres listes SharePoint.

Ensuite, vous pouvez créer les colonnes :

  • insSessionID (ex-Title). Elle contient l’identifiant de la session : S00001, S00344, etc.
  • insParticipantID est de type Une ligne de texte. Elle contient l’identifiant du participant : M0044, M2468, etc.
  • insConfirmation est de type Oui/Non. Elle indique si la personne est inscrite ou non à la formation. L’intérêt de cette colonne est apparue lors du développement de l’application Power Apps.

Ensuite, il sera facile de récupérer les informations détaillées des sessions et des participants grâce à ces identifiants dans les listes.

Liste des inscriptions aux sessions de formations
Liste des inscriptions aux sessions de formations

Concevoir une application Power Apps

Attention. Ce chapitre n’explique pas en détail comment créer l’application Power Apps. Vous trouverez sur ce site des dizaines d’exemples de création d’applications Power Apps et Power Automate. Il suffit de filtrer les publications sur les catégories Power Apps ou Power Automate. Par exemple : Créer une application Power Apps d’entreprise, etc.

L’application Power Apps doit permettre à un participant de s’inscrire à une session de formation. Cette application se nomme appInscriptions.

Pour créer l’application Power Apps, nous partons d’une zone de dessin vierge.

Connexions

Dans cette application, nous créons une connexion pour chacune des listes Participants, Sessions, Inscriptions. Cela fait trois connexions.

Connexions Power Apps
Connexions Power Apps

Collection

La collection colInscriptions est créée dans App.OnStart.

Elle sert à gérer dynamiquement les inscriptions.

ClearCollect(colInscriptions;{INSSessionID:"";INSParticipantID:"";INSConfirmation:false});;
Clear(colInscriptions);;

La collection est directement liée à la liste Inscriptions. Les champs de la collection sont préfixés par INS en majuscules. Dans la liste SharePoint les champs sont préfixés par ins en minuscules.

Ecran Liste des formations

Il y a deux écrans : Liste des formations, Détail d’une formation.

Sans surprise, cette liste affiche la liste des sessions de formation. Une simple galerie, rattachée à Sessions, affiche les sessions.

Il n’y a pas de formules sur OnVisible.

Un simple clic sur une session ouvre l’écran de détail.

Ecrans Détail d’une formation

Cet écran est plus complexe que le précédent car il affiche le détail d’une formation, ainsi que la liste des participants et il permet de sélectionner un participant. La sélection d’un participant est fait sous forme d’un pop-up.

Il y a une formule sur onVisible qui va être expliqué au fur et à mesure.

/* La collection colInscriptions est mise à jour à partir de la liste des participants */
Refresh(Participants);;
Clear(colInscriptions);;
ForAll(Participants;Collect(colInscriptions;{INSSessionID:E01galSessions.Selected.sesIdentifiant;INSParticipantID:parMatricule;INSConfirmation:false}));;
/* La collection colInscriptions est mise à jour à partir de la liste des inscriptions déjà réalisées */
Refresh(Inscriptions);;
ForAll(Inscriptions;Patch(colInscriptions;LookUp(colInscriptions;And(INSSessionID=E01galSessions.Selected.sesIdentifiant;INSParticipantID=insParticipantID));{INSConfirmation:insConfirmation}));;
/* le popup locPopUpShow ne doit pas apparaître à l'affichage de l'écran */
UpdateContext({locPopUpShow:false});;
Concevoir une application Power Apps : détail d'une formation
Concevoir une application Power Apps : détail d’une formation

Dans cet écran, la partie relative au programme et aux prérequis n’est pas traité car elle ne présente pas d’intérêt. De plus, le principe est présenté pour afficher la liste des participants inscrits.

Lors d’un clic sur le bouton Inscriptions, un pop-up s’affiche. Le pop-up est contrôlé, ainsi que ses champs, par la variable locale locPopUpShow, qui est définie dans la propriété OnVisible de l’écran.

Détail d'une formation avec Pop-up
Détail d’une formation avec Pop-up

Un clic sur le ?, en face d’un participant, transforme le ? en OUI.

Détail d'une formation (pop-up avec sélection)
Détail d’une formation (pop-up avec sélection)

Un clic sur le bouton Confirmer permet d’enregistrer les participants sélectionnés.

/* Le popup doit disparaître pour revenir au détail de la formation */
UpdateContext({locPopUpShow:false});;
/* Suppression de la liste Inscriptions: les couples Session, Participant */
Refresh(Inscriptions);;
ForAll(colInscriptions;RemoveIf(Inscriptions;And(ThisRecord.insSessionID=INSSessionID;ThisRecord.insParticipantID=INSParticipantID)));;
/* Création dans la liste Inscriptions: des couples Session, Participant pour la sélection */
Refresh(Inscriptions);;
ForAll(colInscriptions;If(INSConfirmation;Patch(Inscriptions;Defaults(Inscriptions);{insSessionID:INSSessionID;insParticipantID:INSParticipantID;insConfirmation:INSConfirmation})))

Concevoir une application Power Apps : téléchargement de l’application Power Apps

Pour télécharger l’application Power Apps de gestion des formations : https://coudr.com/c3appformations

Il s’agit d’un fichier compressé ZIP, qui contient :

  • appInscriptions.msapp : l’application Power Apps appInscriptions à importer dans votre environnement,
  • Participants.xlsx : un fichier Excel pour créer la liste SharePoint Participants,
  • Sessions.xlsx : un fichier Excel pour créer la liste SharePoint Sessions,
  • Inscriptions.xlsx : un fichier Excel pour créer la liste SharePoint Inscriptions.

Le billet Comment importer un fichier Power Apps explique la méthode pour récupérer intégralement l’application.

Commentaires

Laisser un commentaire

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