De nombreux "citizen developpers" créent leur première application Power Apps en se servant d'un fichier Excel comme support de données, et ce souvent par méconnaissance de SharePoint. Alors, certes, rappelons que SharePoint N'EST PAS un SGBDR (Système de Gestion de Base de Données Relationnelles) mais il peut s'avérer très pratique pour répondre à des petits besoins de stockage de données/fichiers pour vos applications.
Encore faut-il savoir structurer ses listes correctement. Cet article vous décrit comment créer, organiser et gérer votre modèle de données avec SharePoint.
Les étapes pour la création d'une liste dans SharePoint sont toujours les mêmes :
Création des colonnes
Construction du type de contenu
Ajout des colonnes dans le type de contenu
Création de la liste
Rattachement du type de contenu à la liste
Paramétrage de la liste
Schématiquement, on pourrait représenter l'encapsulation de ces différents éléments de la manière suivante :
Mais commençons d'abord par le modèle de données...
Le modèle de données
Après avoir recueilli le besoin auprès de ses utilisateurs, on commence par construire le modèle de données.
Un modèle de données représente schématiquement l'ensemble des données que l'application va manipuler, en précisant un minimum d'informations technique pour que n'importe quel développeur puisse le mettre en œuvre (que ce soit dans SharePoint, SQL Server, ou tout autre outil SGBDR). Il montre aussi les relations qui peuvent exister entre les différentes entités de données.
Je représente toujours mes modèles de données de la manière suivante :
Chaque bloc représente une liste SharePoint :
Chaque champ est décrit de la manière suivante :
Vous trouverez en pièce jointe le PPT de ce modèle de données pour que vous puissiez vous en servir dans vos projets.
Création des colonnes
Créer une colonne directement dans une liste n'est pas une bonne pratique car alors elle ne peut être réutilisée dans une autre liste. La bonne pratique consiste à créer une colonne de site qui, elle, sera réutilisable sur l'ensemble de la collection de site. Modifier une colonne de site impactera donc et mettra à jour toutes les colonnes identiques utilisées partout ailleurs sur la collection de site.
Essayez de créer des colonnes réutilisables. Par exemple, une colonne "Description" pourra servir pour un champ Description, ou Synthèse ou encore Explications.
Créer une colonne de site s'effectue toujours en 2 étapes :
Créer la colonne avec son nom technique (nom interne)
Renommer la colonne pour lui donner son libellé d'affichage
Créer la colonne avec son nom technique
Nom de la colonne
Quelques règles à respecter pour nommer votre colonne :
Préfixez-là avec "sc" (en minuscule) pour Site Column
Ensuite, donnez-lui un nom parlant au format "Pascal case" (chaque mot débute avec une majuscule)
Limitez quand même sa longueur à 32 car. max
AUCUN caractère spéciaux : uniquement des lettres (éventuellement chiffres), pas de caractères accentués, ni tirets, ni espace, ni underscore (caractère "souligné"), ...
Voici quelques exemples tirés du modèle de données précédent :
scDescription (potentiellement réutilisable)
scTypeFourniture
scQuantite (potentiellement réutilisable)
scStatutCommande
scNomService
Création de la colonne
1. Rendez-vous dans les paramètres de votre site (Contenu du site > Paramètres du siteou Icône engrenage > Informations sur le site > Afficher tous les paramètres du site)
2. Cliquez sur Colonnes de site
3. Cliquez sur Créer
4. Entrez le nom technique (nom interne) de votre colonne en suivant les recommandations de nommage précisées précédemment :
5. Sélectionnez le type de colonne que vous voulez créer et renseignez ses caractéristiques
6. Cliquez sur OK
Regrouper les colonnes
Pensez à regrouper vos colonnes dans un groupe de colonnes. Lorsque vous créez votre toute première colonne, renseignez un nom de groupe :
Une fois que votre première colonne sera créée, le groupe sera alors accessible directement depuis la liste déroulante Groupe existant pour les colonnes suivantes :
Colonnes obligatoires
Concernant les champs obligatoires, je recommande de procéder ainsi :
si un champ obligatoire est voué à être utilisé dans une liste gérée côté SharePoint (c'est-à-dire que le formulaire SharePoint natif de la liste va être utilisé pour saisir des données), alors rendez-le obligatoire lors de sa création
si un champ obligatoire est voué à être utilisé dans une liste uniquement côté Power Apps, alors laissez-le en facultatif lors de sa création et gérez son côté obligatoire dans l'application elle-même
Editer la colonne pour lui donner son libellé d'affichage
Juste après avoir créé une colonne avec son nom interne, éditez la colonne (cliquez dessus) pour lui saisir son nom d'affichage (son nom interne ne changera plus) :
Construire le type de contenu
L'étape suivante consiste à créer le type de contenu de votre liste. Celui-ci est un peu comme un conteneur représentant "l'objet" de votre base de données et vous y mettrez ensuite les colonnes qui décrivent cet objet.
Par exemple, nous allons créer un type de contenu Fourniture pour la liste Fournitures. Remarquez le singulier sur le type de contenu et le pluriel sur la liste. Le type de contenu décrit UNE fourniture. La liste porte TOUTES les fournitures.
Créer le type de contenu
1. Rendez-vous dans les paramètres de votre site
2. Cliquez sur Types de contenu de site
3. Cliquez sur Créer
4. Renseignez un nom pour le type de contenu (ici, saisie libre, caractères spéciaux autorisés), une description si vous le souhaitez, choisissez Types de contenu de liste pour le groupes de types de contenu parents, puis Elément pour le type de contenu parent et, si c'est votre premier type de contenu, créez un nouveau groupe pour tous les types de contenus de votre application :
Ajouter les colonnes
Il vous faut maintenant ajouter les colonnes qui décrivent votre objet :
1. Cliquez sur Ajouter à partir de colonnes de sites existantes :
2. Transférez les colonnes souhaitées vers la droite (sélectionnez votre groupe de colonnes dans la liste déroulante pour ne voir que vos colonnes à vous) :
3. Cliquez sur OK
Paramétrage du type de contenu
Quelques petites réglages peuvent encore être effectués à ce stade sur le type de contenu :
colonnes obligatoires, facultatives ou masquées : en cliquant sur une colonne vous pourrez décider si celle-ci est obligatoire, facultative ou non-utilisée (masquée) -> supplante les caractéristiques de la colonne de site (si la colonne de site est obligatoire mais qu'elle est facultative dans le type de contenu alors elle sera facultative)
ordre des colonnes : en cliquant sur le lien Ordre des colonnes vous pourrez décider de l'ordre dans lequel les colonnes seront affichées dans le formulaire SharePoint natif associé à la liste qui sera créée ultérieurement
Création de la liste
A ce stade vous pouvez désormais créer la liste.
Nom de la liste
Je recommande la nomenclature suivante pour le nom de la liste dans l'url :
Pas de caractères spéciaux, ni espace (tirets, underscore, chiffres autorisés).
Créer la liste
1. Rendez-vous sur le contenu de votre site :
2. Créez une nouvelle liste :
3. Créez une liste vierge :
4. Entrez le nom de votre liste tel qu'il apparaîtra dans l'url, une description puis cliquez sur Créer :
Rattachement du type de contenu
Pour l'instant, la liste créée est une liste des plus basique : elle n'a qu'une seule colonne Titre.
Il faut lui rattacher le type de contenu Fourniture créé précédemment pour qu'elle devienne une liste qui pourra alors porter des fournitures avec leurs caractéristiques.
1. Rendez-vous dans les paramètres de la liste :
2. Commencez par définir le libellé d'affichage de votre liste :
Puis :
IMPORTANT - A ce stade, si vous n'utilisez pas la colonne Titre, cliquez dessus et rendez-la facultative pour qu'elle ne vous embête pas lors de l'enregistrement des données (à faire ici directement sur la liste même si vous l'avez fait sur le type de contenu précédemment).
3. Ensuite, activez la gestion des types de contenus sur votre liste et profitez-en pour désactiver les pièces jointes sur votre liste si vous n'en avez pas besoin :
Puis :
4. Cliquez sur OK tout en bas de la page
5. Désormais un nouveau bloc Types de contenu est apparu sur la page des paramètres de votre liste :
6. Ajouter le type de contenu souhaité à votre liste :
Puis :
Toutes les colonnes du type de contenu sont alors ajoutées aux colonnes de la liste :
Paramétrage de la liste
Désactivation du type de contenu Elément
A ce stade, votre liste a 2 types de contenus : Elément et Fourniture. Le seul qui nous intéresse étant Fourniture, désactivez le type de contenu Elément :
Puis :
Etant donné qu'il ne reste plus qu'un type de contenu actif sur votre liste, inutile de garder la gestion des types de contenus active sur votre liste :
Puis :
Puis cliquez sur OK tout en bas de la page.
Paramétrage de la vue par défaut
Affichez votre liste et choisissez les colonnes que vous souhaitez voir affichées dans la vue par défaut de votre liste (recommandation : mettez-y la colonne ID et toutes les colonnes de votre type de contenu + les colonnes d'auteurs et de date de création et de dernière modification ; ensuite, si vous avez besoin d'autres vues, créez-en d'autres) :
Puis :
Votre liste est prête à l'emploi dans votre application Power Apps !!!
Si vous avez des questions ou que vous voulez des précisions, n'hésitez pas à le faire en commentaire de cet article.
PS : Good to know !
Le provisioning by SharePoint
En réalité, lorsque l'on ajoute un type de contenu de site T1 à une liste, SharePoint crée un type de contenu de listeT1' (propre à la liste) qui hérite de T1, puis crée dans la liste une réplique de chacune des colonnes de T1 (A', B', C', D') :
IMPORTANT - Par voie de conséquence :
modifier la colonne A' ne la modifiera QUE dans la liste
modifier le type de contenu T1 se répercutera sur le type de contenu T1' si vous validez votre modification en conservant cette option :
modifier la colonne de site A impactera toutes les colonnes A' situées à l'intérieur des listes du site si vous validez votre modification en conservant cette option :
modifier la colonne A de T1' impactera la colonne A' de la liste que si elle n'a jamais été modifiée auparavant dans la liste
supprimer la colonne A' de la liste supprimera également la colonne A de T1' mais pas de T1
supprimer la colonne A de T1' ne supprimera pas la colonne A' de la liste
supprimer le type de contenu T1' ne supprimera pas les colonnes A', B', C', D' de la liste
supprimer le type de contenu T1 est impossible tant qu'il existe un type de contenu de liste T1' qui en hérite (si vous supprimer une liste qui avait T1' comme type de contenu, vous devrez également supprimer la liste de la corbeille SharePoint primaire ET secondaire avant de pouvoir supprimer le type de contenu T1)
supprimer la colonne A de T1 la supprimera également de T1' mais la colonne A' restera dans la liste
supprimer la colonne de site A est impossible tant qu'ellen'a pas été retirée de T1 ET de T1'
Supprimer une colonne de la liste
Au vu des explications ci-dessus, si vous n'avez plus besoin d'une colonne ni dans votre liste ni dans votre type de contenu de site :
supprimez la colonne de votre liste
supprimer la colonne de votre type de contenu de site
Ajouter une nouvelle colonne
Si vous vous rendez compte qu'il vous manque une colonne dans votre liste pour gérer vos données :
créer d'abord la colonne de site manquante
ajoutez-la ensuite au type de contenu de site
La colonne sera alors automatiquement ajoutée au type de contenu de liste et DANS votre liste également. Il ne vous restera alors plus qu'à l'ajouter à la vue par défaut de votre liste.
Plutôt que de passer par les actions du menu contextuel d'un contrôle ou pas le menu Reorder de l'onglet Home, il suffit d'utiliser les combinaisons de touches suivantes au clavier :
Dataverse for Teams évolue aujourd'hui sur 3 axes...
Plus d'environnements
Jusqu'à présent, le nombre d'environnements Dataverse for Teams était limité à 500. On passe désormais à 10 000 (ATTENTION, cette valeur max varie en fonction du nombre de licences que vous avez sur votre tenant) !!!
Plus de régions
Jusqu'à présent, certaines régions du globe n'avaient pas encore accès à Dataverse for Teams. Désormais, Dataverse for Teams est disponible dans les régions suivantes :
L'Afrique du Sud
La Suisse
Les Emirats Arabes Unis
Plus de capacité
Jusqu'à présent, une application créée dans Dataverse for Teams restait dans Dataverse for Teams. Et si l'application prenait de l'ampleur et qu'elle avait nécessité à aller au-delà des limitations imposées par Dataverse for Teams, il fallait la reporter soi-même dans Dataverse (Pro).
Désormais, un simple clic permet de convertir un environnement Dataverse for Teams en environnement Dataverse (Pro).
Imaginons que j'aie un fichier Excel nommé FichierCommandes.xlsx sur mon OneDrive Pro qui contienne le tableau suivant nommé Commandes où j'ai saisi un peu de données (cela permet à Power Apps de connaître le type de données de chaque colonne ; d'ailleurs, dans le fichier Excel j'ai forcé le format de la colonne Quantité à Nombre et la colonne PrixUnitaire à Devise) :
Dans l'éditeur Power Apps je me connecte d'abord au fichier Excel et je choisis le tableau Commandes comme source de données pour mon application :
Ma source de données Commandes est désormais disponible dans mon application :
Je vais maintenant insérer un formulaire sur mon écran :
Pour l'instant mon formulaire est vide :
Je vais le connecter à ma source de données Commandes (d'abord sélectionner le formulaire) :
Une fois que mon formulaire est connecté à mon tableau Excel, je vais choisir les champs que je veux voir s'afficher dans le formulaire (toujours vérifier que le formulaire est bien sélectionné d'abord) :
Les colonnes de mon tableau Excel (considérées comme des champs) sont ajoutés à mon formulaire :
Je vais maintenant ajouter une galerie sous le formulaire pour afficher la liste de mes commandes et je la connecte à ma source de données Commandes :
Ensuite je vais ajouter des libellés à ma galerie pour afficher les informations de chaque commande (après avoir cliqué sur le crayon, je réduis un peu le bloc répétitif de la galerie) :
Tant que mon bloc répétitif de la galerie est sélectionné, je vais y insérer un libellé pour afficher le fournisseur :
Je procède de la même façon en ajoutant d'autre libellés pour afficher les autres champs de mon tableau Excel en spécifiant dans la propriété Text de mes libellés le nom du champ en question :
ThisItem.<nom du champ>
Toujours dans la galerie, à l'intérieur du bloc répétitif (cliquer sur le petit crayon), je vais ajouter 2 icônes :
Sur l'icône Poubelle, je vais mettre ceci dans sa propriété OnSelect (ce qui va me permettre de supprimer la commande concernée) :
Remove(Commandes, ThisItem)
Sur l'icône Crayon, je vais mettre ceci dans sa propriété OnSelect (ce qui me permet de définir que l'élément 'actif' est la commande concernée) :
Set(locCurrentItem, ThisItem); EditForm(Form1)
A côté de mon formulaire je vais ajouter un bouton Nouveau avec le code suivant pour sa propriété OnSelect :
Je vais aussi ajouter un bouton Enregistrer avec le code suivant dans sa propriété OnSelect :
Enfin, je termine en définissant la propriété Item de mon formulaire ainsi :
locCurrentItem
Et voilà... Tu as les prémices d'une application construite entièrement à la main et te permettant de gérer tes commandes via un fichier Excel.
Remplacer l'identifiant de l'application sur la première ligne de code avec celui de votre application accessible depuis la page de détails de votre application (sur la home page de Power Apps).
Microsoft est en train de préparer une toute nouvelle plateforme communautaire pour Power Platform & Dynamics 365. Si vous voulez être informés (en tant que simple membre ou en tant que futur leader de groupe), inscrivez-vous ici : https://powerusers.microsoft.com/t5/custom/page/page-id/IgniteLandingPage
Une nouvelle app vient de voir le jour dans le CoE Starter Kit : la DLP Editor.
Cette application va vous permettre de constater les impacts de l'application d'une DLP sur un environnement, c'est à dire quelles applications ou flows existants risquent de ne plus fonctionner si vous excluez tel ou tel connecteur de votre DLP pour l'environnement concerné : hyper pratique, hyper utile.
Relooking et favoris pour la nouvelle application mobile Power Apps !
Microsoft vient de mettre à disposition sur les différents stores une mise à jour de son application mobile Power Apps. Celle-ci bénéficie entre autre d'un lifting au niveau de sont interface. Elle commence à ressembler à une "vraie" application avec une barre d'icônes en bas permettant de naviguer entre :
la page d'accueil qui affiche vos applications favorites et celles utilisées récemment
l'ensemble des applications accessibles avec votre compte
d'autre options (les applications proposées et les applications d'exemple qui reprennent les modèles d'applications de la page d'accueil du site Power Apps)
Pour activer cette nouvelle interface, ouvrez le menu hamburger dans le coin supérieur gauche et activez la case Nouvelle conception :
Désormais (c'est expérimental pour l'instant) on peut ajouter à un composant de vraies propriétés événementielles. Et celles-ci peuvent porter des paramètres ! Et pas que celles-ci... Même les propriétés Input ou Output peuvent désormais comporter des paramètres. De quoi ouvrir de très belles perspectives comme par exemple de créer des "fonctions". Explications ci-dessous...
Tout d'abord, il faut commencer par activer cette fonctionnalité expérimentale :
Un composant avec un événement
Premier petit exemple pratique : un composant avec 2 boutons et côté application je veux faire un traitement différent selon le bouton qui a été cliqué...
Sur mon composant je commence par créer une propriété de type Behavior nommée OnClick et je lui associe un paramètre de type Text nommé ButtonId pour identifier le bouton cliqué :
Maintenant, il me suffit, sur chacun des boutons, de déclencher cet événement OnClick en lui fournissant en paramètre l'identifiant du bouton :
Et :
Et le tour est joué !
Dans mon application, j'ajoute le composant et sur la propriété OnClick je peux mettre le code suivant :
Et donc, lorsque je clique sur Bouton 1 il m'affiche "Bouton 1" et lorsque je clique sur Bouton 2 il m'affiche "Bouton 2".
Maaaaaaaagique !
Un "composant-fonction"
On va créer un composant calculatrice. Pour cela, je crée un composant avec une propriété de sortie Addition de type numérique et je lui ajoute 2 paramètres Nombre1 et Nombre2 tous les deux numériques :
Ensuite, je définis la valeur de ma propriété de sortie Addition comme étant l'addition des deux paramètres Nombre1 et Nombre2 :
Maintenant je peux utiliser mon composant-fonction dans mon application de la manière suivante :
J'ai juste mis 2 champs de saisie pour mes 2 nombres et un libellé qui affiche le résultat de l'addition avec la petite formule écrite grâce à la propriété de sortie Addition de mon composant qui se comporte alors comme une fonction.
Certes, mon composant est vide (il n'a aucun contrôle) mais son but étant juste de remplir une fonction, ce n'est pas utile.