lundi 27 août 2007

La webpart de requête de contenu MOSS ne fonctionne pas...

J'ai remarqué au cours de mes différentes navigations sur des sites MOSS, que la Content Query Webpart était potentiellement très utile pour récupérer du contenu dynamique à partir d'une requête, et le mettre en forme via XSL.

>> Je décide donc de me lancer avec une petite maquette, afin de voir jusqu'ou on peut aller dans cette personnalisation ...

Après avoir créé une collection de sites MOSS, je cherche à ajouter et à faire fonctionner la webpart de requête de contenu (également connu sous le nom Content Query WebPart, ou encore CQWP). (Environnement : 1 server MOSS FR avec un serveur SQL2005 pour le repository. Connexion avec le compte administrateur système de la collection de sites.)

1. Premier problème : la webpart n'est pas disponible dans la liste de webpart.
Solution : l'ajouter au site via la page d'administration 'Galerie de composants WebPart', en sélectionnant 'Nouveau', puis en cochant 'ContentByQueryWebPart' puis 'compléter la galerie'.

Ensuite, on ajoute la webpart sur notre page ASPX : on passe en mode édition, 'ajouter une webpart', puis ajout de 'ContentByQueryWebPart' à notre page.

2. Deuxième problème : la webpart est bien importée sur la page, mais affiche le message suivant :



"Impossible d'afficher ce composant WebPart. Pour résoudre le problème, ouvrez
cette page Web dans un éditeur HTML compatible avec Windows SharePoint Services
tel que Microsoft Office SharePoint Designer. Si le problème persiste, contactez
l'administrateur de votre serveur Web."


Si on essaye de "modifier le composant webpart partagé" par le menu contextuel de la webpart, on a alors un autre message d'erreur :




"Impossible de charger le fichier XSL. Le fichier spécifié est introuvable.

(Exception de HRESULT : 0x80070002)Page de maintenance des composants
WebPart : Si vous y êtes autorisé, vous pouvez utiliser cette page pour fermer
temporairement des composants WebPart ou supprimer des paramètres personnels.
Pour plus d'informations, contactez l'administrateur de votre site.

Résoudre les problèmes liés à Windows SharePoint Services. "

Solution : activer un feature responsable de la publication de la bibliothèque de feuilles de style...
Dans la page "Paramètres du site", cliquer sur le lien "Fonctionnalités de la collection de sites", puis activer la fonctionnalité "Infrastructure de publication Office SharePoint Server" en bas de page, qui dans mon cas, était désactivé par défaut.
(en version US, ce feature s'appelle "Office SharePoint Server Publishing Infrastructure")

Cela permet notamment de créé la bibliothèque de styles (accessible via l'URL http:///sites/Style Library/), dans laquelle la webpart va piocher sa feuille de style XSL.

A ce moment là, si l'on revient sur notre page d'accueil sur laquelle se trouve la webpart en erreur, celle ci affiche desormais plus rien (blanc), mais plus d'erreur. Il est alors possible de cliquer sur "modifier le composant webpart partagé" et ainsi de modifier les propriétés de la webpart.

Il est normalement possible de modifier la feuille de style utilisée par la webpart : ItemStyle.xsl.

3. Troisième problème : une modification de la feuille de style ItemStyle.xsl n'impact pas notre webpart : la liaison entre la feuille XSL et la webpart ne se fait pas bien.

Explication : en fait, au moment où l'on a activé la fonctionnalité MOSS (feature), une webpart "Composant WebPart de requête de contenu" (en version US : "Content Query Web Part") a été ajoutée et activée sur la bibliothèque de webpart de notre collection de site. C'est donc cette webpart qu'il faut utiliser, et non 'ContentByQueryWebPart' pour bénéficier de la liaison XSL. On supprime et on ajoute la nouvelle webpart.


(suite de la personnalisation dans un prochain post)

NOTE : la webpart de flux RSS fonctionne sur le même principe, et avec les mêmes sources : il faut donc que ce feature "Infrastructure de publication Office SharePoint Server" soit activé pour la faire fonctionner.


1 commentaire:

Noeil a dit…

Merci beaucoup pour la résolution de ces problèmes ! En particulier le 2eme. J'ai galéré plusieurs heures avant de trouver la solution ici même. Sans ça, je suis sur que j'y serais encore...
Je vous donc pouvoir attaquer la customisation de la webpart en question.

Bonne continuation !