Ecran Liste des formations

Méthodes pour concevoir une application Power Apps ou un flux Power Automate

En bref

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

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 ?

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

En effet, avec ces outils, l’accent est souvent mis sur le développement rapide.

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

Par ailleurs, 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, les utilisateurs qui utilisent Power Apps ou Power Automate sont souvent confrontés à des problèmes riches et complexes, dont la nature est nouvelle pour eux.

Pour ces utilisateurs, 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.

C’est d’autant moins facile que l’utilisateur est éloigné des habitudes mentales de l’informaticien.

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 ?

Objectif

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.

Couteau suisse
Couteau suisse

Il faut donc apprendre à les utiliser.

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 🙂

Nous voulons développer une application Power Apps.

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

L’exemple est simple mais il n’est pas trivial. Notamment, dans ce scénario, les personnes sont inscrites à 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, nous faisons l’hypothèse que toutes les données sont stockées dans des listes SharePoint.

C’est d’ailleurs un bon réflexe de raisonner en terme de tables ou de listes.

Allons-y.

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.

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.

Liste des participants

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.

Dans notre exemple, nous nous contenterons du strict minimum.

Chacune de ces informations va devenir une colonne dans SharePoint.

Pour ce faire, la liste vierge SharePoint qui s’intitule Participants est créée.

Ensuite, les colonnes sont renommées ou créées :

  • parTitre est la colonne Title qui a été renommée. 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.

Le nom des colonnes est préfixé 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. Les préfixes des listes sont toujours en minuscules dans mon plan de nommage.

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, les colonnes doivent être créées sans accent. Ensuite, elles sont renommées avec l’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.

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.

Insérez 3 lignes dans la liste Participants.

Liste SharePoint Participants
Liste SharePoint Participants

Maintenant, il faut gérer les sessions de formations. Un participant peut être inscrit à 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.

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

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.

Pour ce faire, la liste vierge SharePoint qui s’intitule Sessions est créée.

Ensuite, les colonnes sont créées :

  • sesTitre est la colonne Title qui a été renommée. 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.

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

Un participant peut être inscrit à 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 est dite 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

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

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.

Il suffit de stocker dans la liste Inscriptions les identifiants des deux autres listes SharePoint.

Ensuite, les colonnes sont créées :

  • insSessionID est la colonne Title qui a été renommée. 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

Créer l’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.

Ecrans

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

Liste des formations

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.

Ecran Liste des formations
Ecran Liste des formations

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});;
Détail d'une formation (écran initial)
Détail d’une formation (écran initial)

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})))

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.

Et l’application Power Automate ?

C’est prévu. Patience 🙂

Article mis à jour le 25.07.2021

Laisser un commentaire

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