Bonnes pratiques pour construire ses listes SharePoint (pour Power Apps ou autres)
-
Bonnes pratiques pour construire ses listes SharePoint (pour Power Apps ou autres)
Il y a quelques années j’avais rédigé un long article détaillant toutes les étapes et les bonnes pratiques pour la création propre de listes SharePoint, par exemple en vue de les utiliser dans une application Power Apps (mais cela était valable de manière générale).
Malheureusement le prestataire qui propulsait mon site l’a (un peu violemment) supprimé et son contenu est donc définitivement perdu.
J’ai néanmoins pris un peu de temps pour récapituler ici l’essentiel en l’agrémentant des quelques schémas que j’avais utilisé à l’époque et que j’avais heureusement conservé.
Architecture
Même s’il est possible de créer une liste vide et de lui ajouter des colonnes en quelques clics grâce à la nouvelle interface moderne de SharePoint, je passe très rarement par cette méthode pour créer mes listes si elles ont vocation à intégrer un vrai modèle de données servant par exemple à une application Power Apps.
La bonne pratique veut que l’on suive l’architecture suivante :
Les étapes :
- On crée les colonnes de site
- On crée les types de contenus (vides)
- On ajoute les colonnes de site aux types de contenus
- On crée les listes (vides)
- On ajoute les types de contenus aux listes
J’ouvre une parenthèse… (
👉 On me remonte souvent la question : A quoi servent les types de contenus finalement ? Est-ce qu’on est vraiment obligés de passer par des types de contenus pour mettre des colonnes dans des listes ? Est-ce que je peux pas simplement créer mes colonnes directement dans les listes ?
Techniquement la réponse est : OUI. Il est tout à fait possible de créer ses colonnes soit directement dans une liste, soit en tant que colonne de site (voir l’explication de la différence ci-dessous) que l’on ajoute ensuite dans la liste.
Ceci étant dit, le type de contenu a 2 intérêts principaux :
- Il est réutilisable à l’infini : un type contenu peut être utilisé dans plusieurs listes différentes. Comme c’est lui qui porte les colonnes, l’ajouter à une liste ajoute automatiquement les 20 colonnes qu’il porte en tant que colonnes de listes et tout ça en un clic ! Et donc, modifier un type de contenu c’est impacter automatiquement toutes les listes qui l’utilisent !
- Il est combinable à d’autres types de contenus sur une même liste ! Et on se retrouve alors avec une liste “polymorphe”. Par exemple une liste Intervenants avec un type de contenu Enseignant et un type de contenu Chercheur, chacun d’eux possédant ses propres colonnes ou des colonnes communes entre les 2. Lors de la création d’un enregistrement dans une liste de ce type on choisit alors préalablement s’il l’on veut créer un intervenant de type Enseignant ou de type Chercheur et les champs du formulaire natif SharePoint s’adaptent selon le type de contenu choisi. Cela ouvre pas mal de possibilités.
Au-delà de ces intérêts, il y a simplement le fait que le type de contenu participe à une structuration claire d’un “modèle de données” dans SharePoint. Et il y a aussi qu’historiquement le type de contenu était par exemple le seul moyen qui permettait d’ordonner les champs du formulaires (alors que maintenant, nativement cela est possible directement sur le formulaire).
Pour ce qui est des listes SharePoint utilisées dans le cadre des applications Power Apps, il n’y a évidemment pas d’obligation à avoir des types de contenus dans vos listes. A vous de voir…
…je referme la parenthèse )
Création des colonnes de site
A contrario d’une colonne de liste (créée directement dans une liste), une colonne de site est globale à l’ensemble du site et peut être utilisée dans plusieurs listes sur ce même site.
La création des colonnes de site est accessible à partir de la page des paramètres du site :
- Rendez-vous sur la page Contenu du site
- Cliquez sur Paramètres du site
- Cliquez sur Colonnes de site
C’est là que vous devez créer TOUTES les colonnes dont vous allez avoir besoin dans votre modèle de données.
TRES IMPORTANT >> La création d’une colonne dans SharePoint s’effectue toujours en 2 étapes :
- Je crée la colonne avec son nom technique, sans caractères spéciaux (pas d’espace, pas d’accents ; uniquement a-z, A-Z, _ et éventuellement 0..9)
- Je reviens en modification sur la colonne et à la place du nom technique je renseigne le libellé d’affichage de la colonne
Cette méthode évite d’avoir des noms techniques de colonnes du style :
N_x00b0__x0020_cde_x0020__x0028_
😭Création des types de contenus de site
Comme pour les colonnes de site, la création des types de contenu de site est accessible à partir de la page des paramètres du site :
- Rendez-vous sur la page Contenu du site
- Cliquez sur Paramètres du site
- Cliquez sur Types de contenu de site
- Créez vos types de contenus
- Ajoutez-y vos colonnes de site
Création des listes
Après avoir créé votre liste vide (toujours en 2 étapes comme pour les colonnes) :
- Rendez-vous sur la page des paramètres de votre liste
- Cliquez sur Paramètres avancés
- Activez la case Oui de la question Autoriser la gestion des types de contenu ?
- Cliquez sur le bouton OK en bas de page -> vous revenez sur la page des paramètres de la liste
- Sous le tableau Types de contenu, cliquez sur le lien Ajouter à partir de types de contenu de site existants
- Choisissez votre type de contenu créé précédemment dans la liste de gauche et cliquez sur Ajouter > pour le glisser dans la liste de droite puis cliquez sur le bouton OK
A ce stade, vous remarquerez que toutes les colonnes de votre type de contenu sont rapatriées dans votre liste.
TRES IMPORTANT >> Le type de contenu que vous voyez affiché dans le tableau Types de contenu de la page des paramètres de votre liste est une COPIE du type de contenu d’origine : celui qui se trouve dans votre liste est un type de contenu DE LISTE, celui d’origine que vous avez créé précédemment est un type de contenu DE SITE. C’est la raison pour laquelle sur le schéma précédent, le type de contenu qui se trouve dans la liste s’appelle T1′ (prime) 😉.
Cela implique que si vous cliquez sur le type de contenu de votre liste et que vous le modifiez, vous n’impacterez que cette liste là et le type de contenu d’origine (de site) ne sera pas modifié.
L’intérêt de cette mécanique est justement que si un type de contenu de site est utilisé dans plusieurs listes, modifier le type de contenu DE SITE impacte toutes les listes qui l’utilisent. Peut être pratique… 😉
Nomenclature
Avoir un nommage technique clair et cohérent dans l’ensemble de votre modèle de données dans SharePoint vous garanti une facilité d’utilisation par la suite dans vos applications.
Chacun peut avoir sa propre nomenclature bien sûr. Je partage avec vous celle que j’utilise depuis toujours (on parle bien ici du nom TECHNIQUE des colonnes et des listes) :
Pour ce qui est des types de contenu, ils n’ont pas de nom technique mais un identifiant alphanumérique qui est produit automatiquement par SharePoint. Lorsque vous créez un type de contenu vous pouvez donc le faire en une seule étape en saisissant directement son libellé d’affichage.
Colonnes obligatoires
Pour les modèles de données utilisés dans le cadre d’applications Power Apps j’ai pour habitude de ne créer aucune colonne obligatoire dans mes listes SharePoint : TOUTES les colonnes sont facultatives. Je gère le côté obligatoire des colonnes directement sur les datacards des formulaires dans les écrans Power Apps.
AVANTAGE : si une colonne change et devient facultative ou obligatoire je n’ai besoin de modifier QUE le datacard. Si je gérais ça aussi côté SharePoint, je serais obligé de le modifier à la fois dans l’application ET dans SharePoint (car le modifier dans SharePoint seul n’impacte pas automatiquement le datacard dans l’application).
Modèle de données
Pour terminer, voici la manière dont je représente systématiquement mes modèles de données avant d’attaquer le développement d’une application :
Quelques explications :
Vous trouverez le PPT correspondant ici : https://ppfc.fr/?attachment=15266&document_type=document&download_document_file=1&document_file=2
PostID=HCMBlpOf4M5aRFk
Connectez-vous pour répondre.