Exercice : utiliser des données relationnelles Dataverse
Contoso, comme de nombreuses entreprises, dispose de plusieurs emplacements et permet à ses collaborateurs de travailler à domicile. Parfois, ces collaborateurs doivent venir au bureau et ont besoin d’un bureau à utiliser lors de leur visite. Auparavant, Contoso demandait à ses collaborateurs de faire le tour du bureau à leur arrivée pour trouver un bureau disponible. La société a depuis découvert que ce type de système d’espaces de travail partagés (ou partage de bureau) a créé des défis pour le support informatique et les licences. Par conséquent, Contoso a récemment créé une solution Microsoft Power Platform permettant à ses collaborateurs de voir les bureaux disponibles et d’en réserver un à l’avance.
Dans cet exercice, vous allez améliorer l’application canevas à partir de Power Apps.
Objectifs
Dans cet exercice, vous allez découvrir comment utiliser les relations suivantes :
Un-à-plusieurs et plusieurs-à-un
Plusieurs-à-plusieurs
Condition préalable
Pour réaliser cet exercice, vous avez besoin d’un environnement avec Microsoft Dataverse.
Exercice 1 : importer une solution
Dans cet exercice, vous allez importer une solution initiale dans votre environnement de test, puis charger des exemples de données à l’aide d’un flux de cloud Microsoft Power Automate. Cette solution comporte cinq tables, une application canevas, une application pilotée par modèle et un flux de cloud.
Tâche 1 : importer la solution initiale
Dans cette tâche, vous allez importer une solution dans votre environnement.
Vous devez télécharger le fichier zip pour mener cet exercice à bien. Cliquez sur Télécharger une fois le lien ouvert.
Accédez à Power Apps Maker Portal, puis sélectionnez l’environnement que vous souhaitez utiliser pour ce labo.
Cliquez sur Solutions > Importer la solution.
Cliquez sur Parcourir.
Sélectionnez la solution ContosoHotDesking_1_0_0_0.zip, puis cliquez sur Ouvrir.
Cliquez sur Suivant.
Recliquez sur Suivant.
Dans la liste déroulante Sélectionner une connexion, cliquez sur + Nouvelle connexion.
Cliquez sur Créer.
Fournissez vos informations d’identification.
Fermez l’onglet ou la fenêtre de navigateur des connexions.
Cliquez sur Actualiser.
Cliquez sur Importer, puis attendez la fin de l’importation de la solution.
Tâche 2 : charger des exemples de données
Dans cette tâche, vous allez exécuter un flux de cloud permettant de créer des exemples de données.
Cliquez sur Solutions, puis sélectionnez la solution Hot Desking Contoso que vous avez importée pour l’ouvrir.
Cliquez sur Flux de cloud, puis sélectionnez le flux Charger des exemples de données de partage de bureau pour l’ouvrir.
Cliquez sur Exécuter.
Cliquez sur Exécuter le flux.
Cliquez sur Terminé, puis attendez la fin de l’exécution du flux. Cliquez sur le bouton Actualiser pour afficher le statut de l’exécution du flux. Un statut Réussi devrait s’afficher une fois le flux exécuté.
Tâche 3 : exécuter des applications
Dans cette tâche, vous allez exécuter les applications Hot Desking Manager et Hot Desking pour vous familiariser avec elles. Ensuite, vous allez achever la configuration des données.
Accédez à Power Apps Maker Portal, puis sélectionnez l’environnement que vous utilisez pour ce labo.
Cliquez sur Applications, puis sélectionnez l’application Hot Desking Manager pour la lancer.
Cliquez sur Bureaux, puis veillez à disposer d’exemples de données.
Cliquez sur Emplacements, puis veillez à disposer d’exemples de données.
Cliquez sur Fonctionnalités de bureau, puis veillez à disposer d’exemples de données.
Cliquez sur Emplacements, sélectionnez trois emplacements, puis cliquez sur Modifier.
Dans le champ Contact principal, sélectionnez votre utilisateur, puis cliquez sur Modifier.
Fermez l’application Hot Desking Manager.
Vérifiez qu’Applications est toujours sélectionné, sélectionnez l’application Hot Desking, puis cliquez sur Modifier. L’application devrait s’ouvrir dans le studio d’application.
> [!div class="mx-imgBorder"] > [![Screenshot of the Edit button highlighted and the Hot Desking application selected.](../media/edit-application.png)](../media/edit-application.png#lightbox)
Sélectionnez l’écran HomeScreen, puis cliquez sur Lire.
Cliquez sur Nouvelle réservation.
Sélectionnez Bâtiment 1, Bureau fermé et Bureau n° 1.
Sélectionnez une date future, puis Réserver pour 9h00.
Recliquez sur Nouvelle réservation.
Sélectionnez Bâtiment 2, Salle des équipes et Bureau n° 2.
Sélectionnez une date future, puis Réserver pour 13h00.
Ajoutez quelques réservations supplémentaires avec différentes combinaisons.
Vous devriez désormais disposer d’au moins quatre réservations. Fermez l’aperçu.
Développez la liste déroulante ReserveDeskScreen et Gallery3, puis sélectionnez Button1.
Accédez à la barre de formule, puis examinez la formule pour OnSelect. Lorsque l’utilisateur sélectionne l’option Réserver, une fonction Patch() permet de créer une ligne Réservation. Cette nouvelle ligne a des relations avec le bureau et votre utilisateur. La relation utilisateur est définie à partir d’une variable globale établie dans l’application au démarrage.
Examinez d’autres formules de l’application pour vous familiariser avec le fonctionnement du processus.
Ensuite, cliquez sur le bouton Précédent.
Ne quittez pas cette page.
Exercice 2 : créer une relation
Dans cet exercice, vous allez créer une relation pour des bureaux favoris. Il s’agit d’une relation plusieurs-à-plusieurs entre les tables User et Desk. Cette relation vous permet d’implémenter une fonctionnalité où un utilisateur peut marquer un bureau comme favori.
Tâche : créer une relation
Dans cette tâche, vous allez créer une relation pour des bureaux favoris.
Cliquez sur Tables.
Recherchez et sélectionnez la table Desk.
Cliquez sur la liste déroulante Relations et sur + Nouvelle relation, puis sélectionnez Plusieurs-à-plusieurs.
Sélectionnez Utilisateur pour Table (plusieurs) associée, puis cliquez sur Terminé.
Cliquez sur Enregistrer la table.
Cliquez sur Solutions, puis sur Publier toutes les personnalisations.
Attendez la fin du processus de publication.
Exercice 3 : ajouter des informations à un écran de réservation
Dans cet exercice, vous allez modifier la galerie de réservations pour afficher les réservations créées par l’utilisateur actif au lieu d’afficher toutes les réservations. Vous allez également afficher plus d’informations sur la liste de réservations.
Tâche : modifier l’application
Dans cette tâche, vous allez modifier l’application Chef de produit Contoso.
Accédez à Power Apps Maker Portal, puis sélectionnez l’environnement que vous utilisez pour ce labo.
Cliquez sur Applications, sélectionnez l’application Hot Desking, puis cliquez sur Modifier.
Développez HomeScreen, puis sélectionnez Gallery5.
Accédez à la barre de formule, puis définissez la propriété Items sur la formule suivante. Cette formule entraîne le filtrage d’une réservation associée à l’utilisateur actif et utilise la relation un-à-plusieurs entre l’utilisateur et la table Reservation.
LookUp(Users,'Primary Email'=currentUserEmail).'Reservations (contoso_Reservation_ReservedFor_SystemUser)'
Cliquez sur l’icône Modifier la galerie.
Accédez à la liste déroulante Insérer, puis sélectionnez Libellé de texte.
Ensuite, redéfinissez la propriété Text sur la formule suivante. Cette formule utilise la relation un-à-plusieurs entre les tables Reservation et Desk.
ThisItem.Desk.Name
Redimensionnez et repositionnez le libellé.
Toujours en mode d’édition, cliquez sur Libellé pour en ajouter un autre.
Sélectionnez le libellé que vous avez ajouté, puis définissez la propriété Text sur la formule suivante. Cette formule montre que vous utilisez deux niveaux de profondeur dans les relations, en commençant par la réservation et en utilisant le Bureau pour obtenir l’Emplacement.
ThisItem.Desk.Location.Phone
Redimensionnez et repositionnez le libellé.
Toujours en mode d’édition, recliquez sur Libellé.
Sélectionnez le libellé que vous avez ajouté, puis définissez la propriété Text sur la formule suivante.
If(IsBlank(ThisItem.Desk.Location.'Primary Contact'),"No Primary Contact",ThisItem.Desk.Location.'Primary Contact'.'Full Name')
Redimensionnez et repositionnez le libellé.
La galerie de réservations devrait maintenant ressembler à l’image suivante :
Cliquez sur Fichier > Enregistrer.
Cliquez sur le bouton Précédent.
Ne quittez pas cette page.
Exercice 4 : ajouter un bureau favori
Dans cet exercice, vous allez ajouter une icône permettant aux utilisateurs de sélectionner leurs bureaux favoris. Vous allez également ajouter un libellé affichant les fonctionnalités du bureau.
Tâche : ajouter un favori
Dans cette tâche, vous allez ajouter un bureau favori et ajouter un libellé pour afficher les fonctionnalités du bureau.
Développez FindDeskScreen, puis sélectionnez GalleryDesks.
Cliquez sur l’icône Modifier la galerie.
Accédez à l’onglet Insérer, cliquez sur Icônes, puis sélectionnez l’une des icônes. Vous allez définir l’icône spécifique à l’étape suivante à l’aide d’une formule. Par conséquent, pour cette étape, peu importe l’icône que vous choisissez.
Cliquez sur l’icône que vous avez ajoutée, puis définissez la propriété Icon sur la formule suivante. Cette formule entraîne l’affichage de l’icône représentant un pouce vers le haut rempli si l’utilisateur n’a pas indiqué ce bureau comme favori ou de l’icône représentant un pouce vers le haut si l’utilisateur a déjà sélectionné le bureau comme favori.
`If(CountIf(ThisItem.Users, ThisRecord.User = currentUser.User) > 0, Icon.ThumbsUp,Icon.ThumbsUpFilled)` > [!NOTE] > The CountIf does encounter [delegation](/power-apps/maker/canvas-apps/delegation-overview/?azure-portal=true) challenges, if you have a large amount of rows in your app you might have to use an alternate approach.
Vérifiez que l’icône est toujours sélectionnée. Sélectionnez OnSelect, puis collez la formule suivante. Cette formule entraîne l’association ou la dissociation de ce bureau et de l’utilisateur connecté, selon que l’utilisateur a déjà ajouté le bureau en tant que favori.
If(CountIf(ThisItem.Users, ThisRecord.User = currentUser.User) > 0, Unrelate(ThisItem.Users, currentUser), Relate(ThisItem.Users, currentUser))
Repositionnez l’icône dans la galerie, comme illustré dans l’image suivante :
Vérifiez que vous êtes toujours en mode d’édition de galerie. Accédez à l’onglet Insérer, puis cliquez sur Libellé.
Sélectionnez le libellé que vous avez ajouté, puis définissez la propriété Text sur la formule suivante. Cette formule entraîne la concaténation des noms de fonction du bureau et utilise la relation plusieurs-à-plusieurs entre les tables Desk et Desk Features.
Concat(ThisItem.'Desk Features', Name, " , " )
Redimensionnez et repositionnez le libellé pour mieux l’adapter à l’espace.
Cliquez sur l’icône Enregistrer.
Cliquez sur le bouton Précédent.
Cliquer sur Lire pour prévisualiser l’application.
La galerie devrait ressembler à l’image suivante. Cliquez sur l’icône représentant un pouce vers le haut de l’un des bureaux.
L’icône devrait se transformer en pouce vers le haut. Recliquez sur l’icône.
L’icône devrait de nouveau représenter un pouce vers le haut rempli. Recliquez sur l’icône.
Fermez l’aperçu.
Ne quittez pas cette page.
Exercice 5 : filtrer les bureaux
Dans cet exercice, vous allez ajouter un filtre à la galerie de bureaux si l’utilisateur sélectionne une fonctionnalité dans la liste déroulante.
Tâche : filtrer les fonctionnalités
Dans cette tâche, vous allez ajouter un filtre pour les fonctionnalités.
Cliquez sur GalleryDesks.
Accédez à la barre de formule, puis définissez la propriété Items sur la formule suivante. Cette formule va filtre les bureaux pour afficher uniquement les bureaux ayant la fonctionnalité sélectionnée. N’oubliez pas d’inclure la virgule.
,IsBlank(filterFeatures.Selected) || Desk in filterFeatures.Selected.Desks.Desk
Cliquez sur Fichier > Enregistrer.
Cliquez sur le bouton Précédent.
Cliquez sur Lire.
Notez les fonctionnalités de bureau disponibles pour le bâtiment sélectionné.
Sélectionnez une fonctionnalité dans la liste déroulante. Seuls les bureaux ayant la fonctionnalité sélectionnée devraient s’afficher.
Sélectionnez différents bâtiments et fonctionnalités pour vous assurer que l’application se comporte comme prévu.
Fermez l’aperçu.
Fermez le concepteur d’applications.