SharePoint 2007 : Création de Fields et ContentTypes, vite fait, bien fait.

Après le précédent post sur l'activation de features et les ActivationDependencies, je voulais vous parler d'un manière très personnelle de créer des Fields et ContentTypes (en français : colonnes de sites et types de contenu).

Comme vous le savez sans doute, il existe plusieurs possibilités pour créer ce genre de composants SharePoint :

  • Via l'interface sharepoint : Facile à faire mais a l'inconvénient de devoir être fait sur l'environnement de destination, ce qui requiert des manipulations manuelle et chronophage.
  • Via le modèle objet en utilisant des FeatureReceiver : On se retrouve dans l'environnement de prédilection du développeur mais requiert beaucoup de plomberie pour pas grand chose au final.
  • Via les fichier XML : Facilement packageable mais sujet à des erreurs de typos.

Souvent dans le contexte du développement d'application SharePoint et du packaging qui va avec, on va avoir tendance à préférer les deux dernières options en choisissant en fonction de votre préférence.

Pour ma part j'utilise un mix des trois :). J'espère vous convaincre de l'intérêt de ma méthode.

Création des Fields et ContentType via l'interface SharePoint

Tout commence sur votre VPC SharePoint en accèdant à l'interface d'administation :

image

Il vous suffit de créer les champs qui vous intéressent, en précisant vos configuration pour chaque champs :

GestionFields

Dans mon cas, j'ai crée 4 champs : Catégorie, Choix, Question, Réponses. Une petite précision cependanta, Catégorie est un champ de recherche pointant sur le titre des éléments contenus dans une liste Catégorie crée précédemment.

Je n'ai plus qu'à créé mon type de contenu en configurant l'ordre de mes champs, leur état (obligatoire, optionnel, masqué), etc... :

GallerieContentType

Colonnes

C'est vrai que c'est vraiment rapide avec l'interface SharePoint, peut être 10 mn au maximum alors qu'il m'en aurait fallu bien plus avec les deux autres options

Export des Fields et ContentTypes

Le problème est que je souhaiterais packager le tout dans une ou plusieurs feature, "histoire de faire les choses proprement" et de les intégrer à ma Solution (fichier wsp).

Pour ce faire, je vais utiliser quelques outils/projets développée par la communauté qui vont me permettre d'exporter tout ce que je vient de faire sous la forme de plusieurs fichiers XML.

L'outil en question se nomme Fields Explorer : http://www.codeplex.com/tmt/Release/ProjectReleases.aspx?ReleaseId=17330 et vous pourrez le trouvez sur Codeplex comme d'habitude :)

PS : Pour ceux qui se demandent pourquoi j'ai plusieurs champs Question lorsque je fais un export, je vous raconterais ça dans un autre post.

Une fois tout ces fichiers XML récupérés, il ne me reste plus qu'à organiser un peu tout ça, retravailler rapidement les fichiers pour y intégrer l'utilisation de ressources, mettre des noms internaux "pratiques" (sans espaces), etc.. Quelque chose qui ressemblerait à ça dans votre Visual Studio.

SolutionVisualStudio

Il ne nous reste plus qu'à packager ça gràce à WSPBuilder (http://codeplex.com/wspbuilder) et le tour est jouer :).

Néanmoins, il nous reste un petit problème... la gestion du champ Catégorie.

En effet, il n'existe pas de moyen simple dans ce contexte de déclarer un champ de Recherche (lookup) en XML. Celui généré par l'outil (qui ne fait qu'exporter la représentation du champ dans SharePoint) ressemble à ça :

   0:  
   1:  <Field Type="Lookup" DisplayName="Catégorie" Required="FALSE" List="b23273d2-946b-41e8-81cb-8911dadc2f92" ShowField="Title" Sortable="FALSE" UnlimitedLengthInDocumentLibrary="FALSE" ID="{48b006bf-5e14-43cb-b5cb-9a3dae4f0646}" Group="Demo" StaticName="QuizzCategory" Name="QuizzCategory" SourceID="http://schemas.microsoft.com/sharepoint/v3" xmlns="http://schemas.microsoft.com/sharepoint/" WebId="1483aa7c-a45b-410e-977c-45174ccbce5d" Version="1" />
   2:  

En traduction pour les non SharePointeurs, ce bout d'XML précise à SharePoint que le champ Catégorie recupère la valeur "Title" de chaque éléments de la liste qui est référencé par le Guid : b23273d2-946b-41e8-81cb-8911dadc2f92 dans le Web référencé par le Guid : 1483aa7c-a45b-410e-977c-45174ccbce5d de la collection courante....

Bref pas très lisible et surtout pas très utilisable quand on sait que lorsqu'on passera sur d'autres environnement (d'intégration, recette et production), le même site SharePoint (même URL, Nom, etc...) sera référencé par un nouveau Guid et c'est la même chose pour les listes.

Bref, comment faire ? Et bien, on verra ça dans le prochain post :)

<Phil/>

Publié jeudi 11 décembre 2008 12:00 par phil
Classé sous , , , , , ,
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

# re: SharePoint 2007 : Création de Fields et ContentTypes, vite fait, bien fait. @ vendredi 12 décembre 2008 10:35

Une vidéo SoapBox avec des effets et tout et tout ! Ca y est, je suis fan :-)

C'est un outil moins "troll des cavernes" que ma solution projet console Visual Studio... reste à voir la seconde partie, parce que si en prime ça peut m'éviter de faire le nettoyage dans le XML ça pourrait être très très pratique.

Gribouillon

# re: SharePoint 2007 : Création de Fields et ContentTypes, vite fait, bien fait. @ lundi 15 décembre 2008 22:42

Pratique !

Jusqu'à présent pour traiter ce besoin je récupérais la valeur de la propriété SchemaXml des objet SPList, SPField, SPContentType etc. (ce que doit faire le tool en interne à priori) avec la CodeTesterWebPart, mais le tool a l'air bien je l'essaierai la prochaine fois :)

Arnault Nouvel

# re: SharePoint 2007 : Création de Fields et ContentTypes, vite fait, bien fait. @ mardi 16 décembre 2008 14:49

L'outil Imtech Fields Explorer est plutôt pratique ! Bien plus simple qu'un export via l'astuce utilisant SPD.

Attention toutefois à supprimer les attributs XML inutiles pouvant être présents.

Super astuce aussi en utilisant le clic droit sur les éléments du treeview pour générer les pages de layouts et au besoin les wrappers.

nicoboo

About phil

Philippe Sentenac est Consultant SharePoint à Wygwam en région Parisienne. Il intervient essentiellement sur des missions liées à SharePoint (2007 et 2010 ) mais aussi autour du Web 2.0. Plus généralement, il s'intéresse à l'ASP.Net (MVC) , à Silverlight, et à tout ce qui est orienté Web en rapport avec les nouvelles technologies, qu'il pratique depuis 2006. Féru de développement, il est passionné par les problématiques de méthodologies et d'industrialisation du développement.

Les 10 derniers blogs postés

- Merci par Blog de Jérémy Jeanson le 10-01-2019, 20:47

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01