18 juin 2009

Activation de feature sur sous-sites Sharepoint

Un des donctionnalités majeure de Sharepoint est le déploiement de "feature" qui permet de créer de nouveaux composants (workflow, eventhandler, formulaire...).
Le problème est que si le déploiement se fait sans soucis, l'activation n'est pas aussi simple...
Pour les cas usuels, il faut utiliser la commande suivante:
stsadm -o activatefeature -filename "...\feature.xml" -url "myurl" -force

En effet, l'opération stsadm n'active le feature que pour le site précisé et non pour les sous-sites déjà créés sous cette collection de site!!!
Assez frustrant surtout si vous avez une centaine de sous-sites sur lesquels activer la fonctionnalité...
Le petit script suivant vous permet d'activer la fonctionnalité:

## Reference to SharePoint DLL
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
## Probable location of sharepoint STSADM utility program
$stsadm = "$env:programfiles\Common Files\Microsoft Shared\Web Server Extensions\12\BIN\STSADM.EXE"

function global:Activate-feature-onSite($feature, $url)
{$spsite=new-object Microsoft.SharePoint.SPSite($url);
for($i=0; $i -lt $spsite.AllWebs.Count;$i++)
{
$websiteurl= $spsite.AllWebs[$i].url;
$sResult = &stsadm -o activatefeature -name $feature -url $websiteurl -force

if(!($sResult -like "*Operation completed successfully*"))
{ Write-Host -ForegroundColor "red" -BackgroundColor "white" "Activation du feature : '$feature' sur le site '$websiteurl' ! `n $sResult"
}
}
$spsite.Dispose();
}

# to call
Activate-feature-onSite "feature" "url"


Vous avez juste à changer sur la dernière ligne le nom du feature et l'url de la collection de sites.
Il faut mettre ce script dans un fichier texte avec l'extension ".ps1" (powershell).
Puis l'exécuter par la commande :
powershell Set-ExecutionPolicy RemoteSigned
powershell ActiveFeature.ps1
Et le tour est joué...
Attention cependant à l'effet pervers: pour les eventhandlers déployé sur des types de listes particuliers, cela est à utiliser uniquement sur les sous-sites déja crée au moment de l'installation du feature.
Sinon vous risquez de vous retrouver avec 2 eventhandler à la place d'un seul (1 créé lors de l'activation par le scipt et l'autre créé lors de la création du sous-sites du fait de l'application du content-type).
Et du coup plein d'effets de bords!!!

15 juin 2009

Infopath 2010 (Office 14)

Bonjour,
La dernière mouture d’Office va bientôt arriver. Elle se nomme Office 14 (et oui on a sauté la 13 chez microsoft par superstition…). Elle est à présent disponible en Technical Review. L’occasion pour nous de se pencher sur les dernières évolutions apportées à Infopath et notamment les nouveaux contrôles.

Au premier abord, la nouveauté essentielle : Infopath se décompose à présent en 2 logiciels :
- Infopath Designer qui permet de dessiner le formulaire.
- Infopath Editor qui permet de remplir les formulaires.

Donc l’utilisateur Lambda n’aura besoin que du player (Infopath editor) pour travailler.Celui-ci risque donc d’être présent dans la version Office basique…
Ensuite en nouveauté, on peut citer par exemple :
- apparition de la notion de scope sur les champs,
- Design d’infopath reprenant le ribbon d’office 2007,
- Possibilité de dire si l’on veut activer l’autocomplétion sur les champs.

La grande nouveauté reste l’apparition de nouveaux contrôles tous plus utiles les uns que les autres. Voici la liste exhaustive de tous les contrôles disponibles (cliquer sur l'image pour l'agrandir):



Le contrôle Combo box permet notamment de saisir une nouvelle valeur si celle-ci n’est pas dans la liste (contrôle nécessaire depuis un moment).

Tout ce qu'il faut donc pour réaliser de jolis formulaires!!!

Infopath 2010 fera l’objet de nouveaux posts lors de l’apparition de la version Release qui sera le reflet de la version finale.