SharePoint : déploiement global d'une solution

Pour qu’une solution soit déployable globalement, il faut qu’elle réunisse les conditions suivantes :
– Elle ne doit pas contenir de web controls.
– Elle ne doit pas contenir de web parts.
Pourquoi ? Parce que ce type d’éléments provoque une modification du fichier web.config, d’où la nécéssité de cibler explicitement les web app concernées.

SharePoint Designer 2010 : Lignes vides par milliers… (Damned blank lines !)

500 000 lignes générées !
Je n’arrive pas à croire que SharePoint Designer ne corrige pas cette histoire de lignes vides générées par milliers quand on modifie une page (surtout en manipulant du XSLT).
Si jamais une page ou une vue devient si grosse que le Designer n’arrive plus à l’ouvrir, voici comment faire :
– Sous le Designer 2010, faire Fichier > Options > Général > Options des applications > Configurer les éditeurs
– Placer en 1er le bloc-note comme éditeur des ASPX
– Ainsi, il sera possible d’ouvrir plus facilement…
 
Pour éliminer les lignes vides, reste à utiliser Notepad++, avec le plugin TextFX

SharePoint : Attention à l'héritage des droits de l'accès anonyme !

Lorsqu’un site est ouvert en anonyme, cela correspond à déclarer l’utilisateur « AUTORITE NTutilisateurs authentifiés » avec l’autorisation « Accès limité » (cf. /_layouts/user.aspx).
Du coup, l’ensemble des utilisateurs qui se connecteront au site auront au moins les droits liés à « accès limité ». Quelque soit le(s) groupe(s) ou les autorisations qu’on leur a explicitement associés.

SharePoint sous IIS 7 : "Ouvrir avec l'explorateur Windows" ne fonctionne pas

Explorer View
Symptômes : Il peut y avoir de multiples raisons pour que la vue « Explorer » d’une bibliothèque ne fonctionne pas, avec de multiples solutions (souvent côté client) disponibles sur Internet.
Cependant le problème peut être côté serveur, notamment dans le cas d’un hébergement sous Windows Server 2008 et IIS 7 (+ client IE8).
Explication : SharePoint possède son propre moteur WebDAV via un filtre ISAPI. Il faut donc désactiver le rôle « serveur WebDAV » par défaut de Windows 2008.
Solution : Aller sur le « Gestionnaire de serveur » > « Rôles » > « Supprimer des services de rôles » > « Publication WebDAV ».
KB Microsoft
Article très complet
Sujet sur forum technet

SharePoint : Exception lors de la mise à jour de la configuration d'une application web

Le dysfonctionnement d’un serveur frontal perturbe la propagation de la configuration SharePoint.
Symptôme
L’erreur suivante peut survenir lors de la mise à jour d’une application web via l’administration centrale (mappage, accès anonyme, extension de site, etc.) :
Un objet de type Microsoft.SharePoint.Administration.SPWebApplicationProvisioningJobDefinition appelé « Provisioning xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx » existe déjà sous le parent Microsoft.SharePoint.Administration.SPWebService appelé «  ». Renommez votre objet ou supprimez l'objet existant.
Explication
Ceci peut être du au fait qu’un serveur de la ferme (web frontal) n’est plus accessible par l’administration. Du coup, les jobs de propagation de configuration restent en échec.
Résolution

  •   Vérifier pourquoi l’un des serveurs n’est plus accessible, et régulariser la situation.
  •   Supprimer tous les jobs de type « Job provisionning » via l’administration centrale > Opérations > Définitions des travaux du minuteur > « Mise en service de l’application web… »
  •   … ou avec l’outil SharePoint Manager 2007, sous « <ROOT>/Services/Application Web de Windows SharePoint Services > Job Definitions ».

NB : Même topo pour les exceptions concernant SPWebApplicationUnProvisioningJobDefinition.

MOSS 2007 : Changer la masterpage

Oui Maître !
Si la feature « Infrastructure de publication Office SharePoint Server » ou « Publishing Infrastructure » est activée, il est possible d’accéder au menu « Page maitre » dans « Actions du site > Paramètres du site > [Aspect] Page Maitre ».
Il suffit alors d’ajouter une master page dans la galerie (toujours via les « paramètres du site »), et il devient alors facile de créer son propre thème de site.
Dans le cas d’un site WSS sans la feature de publication (donc pas d’IHM pour modifier la masterpage), il est toujours possible de créer sa propre feature qui va modifier la masterpage du site.
 

SharePoint 2007 : Package d'une solution WSP

La solution est la solution.
Je recommande fortement de packager le moindre developpement SharePoint dans une solution WSP. C’est à mon avis la pratique la plus sûre pour ne pas avoir de mauvaise surprise lors de la remontée d’un serveur après un crash.
Les outils :
VSeWSS – Visual Studio Extensions pour WSS : Add On pour Visual studio qui fournit les templates de dev. pour les workflows, sites ou listes. La solution la plus puissante (« deploy » package et ajoute et déploie la solution sur le serveur !).
WSP Builder : Le meilleur moyen de packager une solution WSP. Disponible sous CodePlex. Il suffit d’organiser convenablement sa solution Visual Studio, WSP Builder fait le reste !
STSDEV : Même type que WSP Builder, mais apparement plus contrignant et obsolète.

CAML (WSS) : Requête avec un champ "DateTime"

Iso machin
Pour qu’une date soit exploitable dans une requête CAML, il faut qu’elle soit d’un format ISO spécifique.
Convertir la date à l’aide de cette outil du framework SharePoint :
SPUtility.CreateISO8601DateTimeFromSystemDateTime(maDate);
La requête suivante fonctionnera sans problème :
maQuery = "<Where><Geq><FieldRef Name='ChampDate' /><Value Type='DateTime'>" + SPUtility.CreateISO8601DateTimeFromSystemDateTime(maDate) + </Value></Geq></Where>";

SPQuery sur SPList.GetItems retourne tous les éléments !

Cauet rit.
Dans le bout de code suivant :

SPQuery qry = new SPQuery();
qry.Query = "<Query><Where><Eq><FieldRef Name='Champ1' /><Value Type='Number'>0</Value></Eq></Where></Query>";

SPListItemCollection myData = mySPList.GetItems(qry);
« myData » contiendra l’ensemble des enregistrements de la liste « mySPList », sans tenir compte de ma requête « Where ».
Ceci vient de la requête CAML mal formée : il faut enlever les balises « <Query></Query> ». En effet, l’objet SPQuery de charge lui-même de les ajouter.
Source : http://sharepointxperience.blogspot.com/2007/10/spquery-returns-all-items.html