Une solution concrète pour un pain point métier, avec la Power Platform
- Nada Brisville
- 7 déc. 2024
- 6 min de lecture

Hey, voici Tina, une secrétaire dynamique, toujours là pour ambiancer l'open space ! Comme c'est bientôt Noël, elle veut proposer aux 388 collaborateurs de l'entreprise de participer à un secret santa d'ampleur qui aura lieu le jour de la fête de Noël de l'entreprise.
Avez-vous déjà organisé un Secret Santa ? Si oui, vous savez à quel point cet évènement aussi basic puisse-il paraitre, peut demander d'efforts, car tout est manuel et rien ne justifie d'investir dans un outil concret pour du oneshot.
Grâce à la Power Platform, ce sera un jeu d'enfant pour elle !
Voici le processus imaginé :

Démo Time !
Voici la démo d'une solution concrète, en vidéo. Ensuite, j'expliquerais étape par étape la mise en place de cette solution.
Guide Step by Step
On va commencer par la création d'un formulaire simple avec Microsoft Forms.
J'ai choisi uniquement 2 questions :
Le souhaite de participer ou pas (obligatoire)
Un indice sur l'identité
Les reste des informations sur l'utilisateur peuvent être récupérées automatiquement.
Tip : Si vous avez Copilot, vous pouvez lui demander de rédiger les questions pour vous ou améliorer votre formulaire.

Une fois créé, il ne reste plus qu'à le partager avec l'équipe (ou l'entreprise entière dans le cas de Tina).
Attention à bien cocher "Record name" pour récupérer les identités des personnes et "One response per person" pour avoir des réponses uniques.

Nous allons ensuite créer une liste Sharepoint toute simple pour stocker les Matchings.

Maintenant, direction Power Apps : make.powerapps.com

Ici, nous allons choisir une application vide, de type Canvas :
Puis on lui donne un nom et un format.

Avant d'attaquer la partie sérieuse, on va s'amuser un peu 😊
Vous pouvez créer un joli écran, avec de belles images de Nöel, des flocons qui tombent... Bref, amusez-vous !

Pour ma part, je vais faire simple, je vais juste insérer une image de type Gif animé.

On insère une image, on clique sur la propriété image à droite, puis charger.

Maintenant, on s'attaquer à la data. On va connecter l'app aux résultats du forms directement. Généralement, vous les trouverez dans un excel dans votre ondrive.
Il faut aller à gauche dans la partie "Données", puis "Ajouter des données".
Et on va chercher le connecteur "Excel Online (Business) ".


Normalement, vous allez retrouver votre Excel dans l'emplacement "Onedrive for Business".

Une fois votre fichier trouvé, il vous sera demandé de séléctionner une table. Vous prenez la table qui a été créé par défaut.

Dans l'étape d'après, vous cliquez sur le 2ème choix et séléctionnez ID. L'excel aura déjà une colonne ID par défaut.

Et tant qu'on y est, on va aussi connecter notre Sharepoint à notre application. En choisissant le connecteur Sharepoint dans la liste.

Et il ne restera plus qu'à trouver votre liste Sharepoint, puis séléctionner la liste "Matching Secret Santa".

Top ! Maintenant, on retourne à l'arborescence de l'app (en haut à gauche), puis on va ajouter une table. Cette tablenous permettra juste de voir les inscrits. Donc on va la lier directement à la table excel des réponses :

Ici, on modifie les champs pour ne choisir que ceux qu'on veut voir.

Ok, la partie la plus importante commence. Accrochez-vous !
On va créer un bouton, qu'on va "programmer" pour faire le matching.
On va donc dans "insérer" -> "un bouton" et on le place là on veut.

Pour le matching, il me faut 3 collections :
Collect1 : dans laquelle on va trouver la liste des inscrits
Collect2 : dans laquelle on va trouver aussi la liste des inscrits au début mais à qui on enlèvera à chaque matching la personne qui vient d'être matchée. Donc c'est une collection intermédiaire
pairs : qui va contenir la paire Donneur/Receveur de cadeau, vide au début
Let's go !
On va initialiser nos variable au chargement de notre écran. Donc dans la propriété onVisible de notre Screen, comme ceci :
ClearCollect(collect1;Filter('OfficeForms.Table';Participation="Oui"));;
ClearCollect(collect2;Filter('OfficeForms.Table';Participation="Oui"));;
ClearCollect(pairs;Blank())
Comme vous voyez, on prends le soin de ne garder que les personnes qui ont répondu "Oui" à la participation.

On retourne sur le "onSelect" de notre bouton. Et là, on va avoir 2 fonctions successives :
Pour toutes les personnes inscrites dans notre collect1, qu'on appelera Donneurs, on va ajouter dans la collection pairs la personne courante puis on fera un "shuffle" et on attribuera une personne aléatoire en plus (avec la condition que ça ne soit pas la même personne).
Puis on supprime de la collect2 si la personne a été sectionnée.
ForAll(
collect1 As Donneur;
Collect(
pairs;
{
Name : Donneur.Name;
Email : Donneur.Email;
Indice : Donneur.'Indice sur votre identité';
Receveur : First(
Shuffle(
Filter(
collect2 As Receveur;
Donneur.Name <> Receveur.Name)
)
)
}
);;
RemoveIf(
collect2;
CountRows(
Filter(pairs;
Receveur.Name=collect2[@Name]
)
) >= 1
)
);;
On ajoute notre duo Donneur/receveur avec toutes leurs infos dans la liste sharepoint avec un patch :
ForAll(
pairs As Paired;
Patch('Matching Secret Santa';
Defaults('Matching Secret Santa');
{
Nom:Paired.Name;
Email:Paired.Email;
Indice:Paired.Indice;
Nom_Affecte:Paired.Receveur.Name;
Email_Affecte:Paired.Receveur.'Email'
}
)
)
On ajoute ces fonctions successivement dans la même fenêtre.

Ensuite, on va créer un nouvel écran à afficher quand le matching sera fini. On peut dupliquer l'écran actuel pour garder la plus part des éléments, et supprimer les éléments qu'on ne veut pas.

Ici, on insère juste un label (ou texte) pour afficher la réussite du projet.

Puis on retourne dans notre premier écran pour ajouter la fonction navigate à notre bouton de matching.
Navigate(Screen1_1)

Super ! On peut maintenant tester notre App avec le petit "play" en haut à droite. On appuye sur le bouton. Et on voit bien que ça a été peuplé dans notre sharepoint.

On va maintenant automatiser l'envoi des notifications aux participants. On aura 2 types de notifications Teams :
Une pour donner le nom de la personne à qui offrir un cadeau
Une pour donner un indice de son secret santa (s'il a laissé un indice)
On va déclencher cette automatisation depuis Power Apps, via un 2ème bouton.
On aura très bien pu intégrer l'automatisation dans le premier bouton, mais pour donner plus de visibilité à la démo, j'ai choisi 2 boutons séparés.
On ajoute donc un bouton qu'on va renommer "notifier les participants".

Et ensuite, on va dans les 3 petits points à gauche, pour créer un Power Automate qui sera déclenché depuis notre Power Apps.

On clique sur "Créer un flux".

Et on choisi "A partir de zéro".

Ca nous ouvre une fenêtre avec un décelencheur de type Power Apps et à partir de là, on peut commencer à construire notre flux.

On va d'abord chercher le connecteur Sharepoint et séléctionner l'action : "Obtenir les éléments", pour obtenir tous les éléments de notre liste Sharepoint de Matching des secret Santa.


N'oubliez pas de renommer chaque action, et le flux lui-même pour plus de visibilité.
Ensuite, on ajoute un "for each", une boucle qui va venir agir sur chaque élément de la liste. Vous la trouvera sous le connecteur du type "contrôle".
Puis on insère la valeur de la sortie d'avant, comme ceci :

Ici, on va avoir une première action simple : envoi d'une notification Teams à la personne de la ligne courante, avec le nom de la personne affectée.
Donc pour ça, on va chercher le connecteur Teams et on clique sur "publier le message dans une conversation ou un canal".

Puis on va populer les champs avec les informations qu'on a récupéré automatiquement.

Maintenant, on va passer à la personne qui reçoit. On veut lui envoyer une notification aussi, mais uniquement si son Secret Santa lui a laissé un indice. Pour cela, on va créer une nouvelle étape, avec une condition sur l'indice : si vide = false.
empty(item()?['Indice'])
Pour choisir la valeur nulle, on va dans expression, on ecrit "null", puis on clique sur OK. Là, on a vérifié si l'indice n'est pas null.
Si c'est bon, alors on envoi une notification Teams, sinon, on ne fait rien.

Astuce : Vous pouvez copier l'étape Teams d'avant et la coller dans le "Si oui", puis modifier juste ce qui vous intéresse.

Il n'y a plus qu'à peupler avec les informations qu'on veut envoyer.

Et voilà, vous pouvez enregistrer votre flux !
On arrive à la dernière étape. Celle de lier ce Power Automate au bouton dans Power Apps. Rien de plus simple, il suffit d'aller sur la propriété "OnSelect" du bouton, cherche le nom du flow et exécuter son Run, comme ceci :

Et voilà, il n'y a plus qu'à lancer l'application en live pour lancer le matching devant tout le monde et les notifier en presque temps réel !
Effet garantit 😉
J'espère que ce format Step-by-Step vous a plu 😉
A bientôt pour un autre article de la série : Une solution concrète pour un pain point métier, avec la Power Platform.
Kommentare