31 août 2009

INFOPATH : Numero version

Pour ceux qui veulent afficher le numéro de version de leur formulaire InfoPath, ce petit post est pour vous

  1. Sélectionnez une zone de texte ou une zone d'expression,
  2. Faire un clique-droit et cliquer sur le bouton "fx",
  3. Sur le nouvel écran, sélectionner "modifier une expression xpath",
  4. Puis coller le texte suivant:        
    substring-before( substring-after( /processing-instruction()[local-name(.) = "mso-infoPathSolution"], 'solutionVersion="'), '"')
  5. Puis cliquer 2 fois sur OK.

Voila, vous avez réussi! Votre formulaire affiche à présent son numéro de version. Ce qui est très utile dans la gestion de formulaires imprimés à partir de formulaire InfoPath et pour connaitre facilement la dernière version publiée...

SharePoint Library to Excel

Je suis tombé sur un petit tutoriel bien sympathique qui permet d'exporter le contenu d'une bibliothèque SharePoint (avec ses métadonnées) grâce à un simple lien:
Vraiment sympathique cette petite astuce. Cela permet d'éviter quelques développements en mettant ce lien sur une page...

25 août 2009

SHAREPOINT : La validation de la sécurité de cette page n'est pas valide

Si vous travaillez sur Infopath et que vous débutez dans le code managé SharePoint, vous risquez de tomber sur ce genre d'erreur:
"The security validation for this page is invalid. Click Back in your Web browser, refresh the page, and try your operation again."
ou en bon francais:
"La validation de la sécurité de cette page n'est pas valide"
Cela provient du fait que vous travaillez avec le modèle objet SharePoint et que vous voulez réaliser un update sur SharePoint.
Pour éviter cette erreur, il faut seulement modifier une propriété avant de réaliser l'update:

SPWeb.AllowUnsafeUpdates = true;

Et le tour est joué...
Enfin presque, parce qu'il ne faut surtout pas oublier de le reaffecter à false à la fin du code du SPWeb, dans un bloc finally par exemple.
En effet, affecter la valeur à true entraine des risques potentiels sur la sécurité de la page (des scripts malveillants peuvent être exécutés).
Donc à ne laisser à true que le temps de l'update...

Video Infopath 2010

J'ai déja réalisé précédemment un article dans ce blog concernant les nouveautés d'infopath 2010 et InfoPath 2010 Form Services (voir ici).

A présent l'équipe Infopath nous a sorti une belle vidéo permettant à ceux qui ne possèdent pas InfoPath 2010 de pouvoir se faire une idée du nouveau logiciel : Consulter la vidéo

Bon film...

SHAREPOINT : Edit Control Block

On quitte rapidement le monde InfoPath pour parler de son cousin SharePoint et plus particulièrement du menu d'édition communément appelé ECB.
L'Edit Control Block (ECB) de SharePoint est concu à partir du fameux "core.js" de SharePoint.
Il est possible de customiser ce menu d'édition notamment en rajoutant des features qui permettent d'obtenir de nouvelles fonctionnalités lors du clic droit sur un item.

Le premier soucis est que la nouvelle fonctionnalité ne peut pas être positionnée exactement ou vous le voulez dans le menu édition.
De même il n'est pas possible de cacher certains éléments par cette technique...

Une solution est d'utiliser une nouvelle masterpage qui sera basé sur notre core.js modifié (copie du core.js original).

La démarche à suivre est la suivante:
• Se placer dans le répertoire \Fichiers communs\Microsoft shared\web server extensions\12\Template\layouts\1036,
• Faire une copie du "core.js" et le copier en le renommant "ECBcore.js" dans le même répertoire,
• Réaliser les changements nécessaires dans le fichier "ECBcore.js" afin de modifier le menu d'édition SharePoint,
• Se placer dans le répertoire \Fichiers communs\Microsoft shared\web server extensions\12\TEMPLATE\GLOBAL,
• Créer une nouvelle masterpage SharePoint à partir de la "default.master" existante et la renommer en "custom.master",
• Dans cette "custom.master", il faut aller rajouter une nouvelle balise SharePoint:ScriptLink en dessous de celle existance du "core.js". Sur cette nouvelle ligne, modifier l'attribut name en "ECBcore.js".
• Enregistrer la page et appliquer la masterpage en tant que masterpage du site par défaut.

Le tour est joué, vous travaillez à présent avec votre menu personnalisé.
2 remarques importantes tout de même:
• Ne pas oublier de faire référence au core.js dans la masterpage customisée sinon cela ne fonctionne pas.
• Attention lors du passage des Service Pack, le "core.js" peut-être modifié et il faudra donc reprendre votre "ECBcore.js" pour le modifier en conséquence.