8 janvier 2010

InfoPath : Module administration

Pour cette nouvelle année, mon premier post ira à une erreur InfoPath qui peux vite taper sur le système!
Lorsque vous publiez un formulaire InfoPath en contrôle total, le message suivant peut apparaitre à son ouverture:
"Impossible d'ouvrir le modèle de formulaire car l'administrateur système a désactivé l'ouverture des modèles de formulaire exigeant l'autorisation totale."

Cette erreur est à la fois simple et complexe!!!
En fait cela provient d'une restriction mise en place par l'administrateur système de l'entreprise (généralement ce n'est pas utilisé dans les petites structures). Il s'agit plus précisément d'une règle prédéfinie dans les modules d'administration d'Office 2007.

Voici le lien pour télécharger ces modules d'administration (un pour chaque logiciel d'office) qui s'importent dans la "gpedit":
http://www.laboratoire-microsoft.org/news-23249-telechargez-les-modeles-d-administration-pour-office-2007-fichiers-adm.html
Ces modules d'administration permettent de désactiver certaines fonctionnalités du logiciel.
Comme ici avec le contrôle total d'InfoPath ayant la clé "Active/désactive l'option Autoriser l'exécution des formulaires entièrement fiables sur mon ordinateur.".

La mise en place de cette stratégie créera une nouvelle clé dans la regedit.
Il s'agit de la DWORD nommée "RunFullTrustSolutions" et qui se trouve à l'emplacement suivant "HKEY_USERS/leuser/Software/Policies/Microsoft/Office/12.0/InfoPath/Security".

15 décembre 2009

INFOPATH : Envoi d’un mail customisé

Ce résumé n'est pas disponible. Veuillez cliquer ici pour afficher l'article.

14 décembre 2009

Liste SharePoint et CEWP


La CEWP (Content Editor Web Part) est un formidable outil qui permet d’utiliser des scripts pour customiser les bibliothèques et sites.

Cette web part peut-être très utile lorsqu’elle est employée sur une bibliothèque SharePoint. Elle permet de modifier à la volée le contenu de cette bibliothèque (ajout d’images, modification de l’affichage en fonction des métadonnées,…).

Par exemple, ce petit script à glisser dans une CEWP (située après la bibliothèque) permet d’enlever l’icone “new” sur une bibliothèque (MOSS propose uniquement de le désactiver sur une collection de sites mais pas sur une bibliothèque):

<script type="text/javascript">
/* Cache l'icone news */
function HideNewIcons()
{ 
  var fields,i; 
  fields = document.getElementsByTagName('IMG'); 
  for( i = 0; i < fields.length; i ++ )
  {   
    var imgsrc = fields[i].getAttribute('SRC'); 
    if(imgsrc.indexOf("new.gif") != -1)
    {     
       fields[i].style.visibility = "hidden";   
    } 
  }
}

/* Appel */
HideNewIcons();
</script>

Ce script permet de masquer l’icone “New” de SharePoint dans une liste. Cette méthode permet de réaliser bien d’autres développements…

14 novembre 2009

INFOPATH : LINQ et section extensible

Habituellement, la construction par le code d’une section extensible (ou tableau extensible) d’InfoPath nécessitait l’utilisation d’un document temporaire que l’on ajoutait ensuite à la source de données. Cette opération s’avérait souvent fastidieuse et n’était pas des plus claires niveau code.

Une nouvelle méthode apparu avec le Framework .Net 3.5 est l’utilisation du LINQ (Language-Integrited Query) qui permet de requêter du XML , du SQL, des objets, de l’ADO.Net.

Pour l’utiliser dans un formulaire InfoPath, il faut faire monter la référence suivante: “System.Xml.Linq”.

Et ensuite le code est le suivant:

XNamespace xmlns = (XNamespace)PERSONNES.GetNamespace("my");
XNamespace xsi = “http://www.w3.org/2001/XMLSchema-instance”;
XElement PERSONNE = new XElement(new XElement(xmlns + "PERSONNE",
                                  new XElement(xmlns + "NOM", strNom),
                                  new XElement(xmlns + "PRENOM", strPrenom),
                                  new XElement(xmlns + "AGE", 
                                                new XAttribute (xsi + "nil", true)),
                                  new XElement(xmlns + "DATE_NAISSANCE", strDateNaissance)));
Puis, il suffit d’ajouter notre élément à notre source de données:
PERSONNES.AppendChild(PERSONNE.CreateNavigator());

Seul bémol, LINQ nécessite le Framework 3.5 installé sur la machine (ou sur le serveur dans le cas d'un formulaire Form Services).

Mots clés Technorati :

13 novembre 2009

SHAREPOINT : Champ TODAY



Les listes et bibliothèques sharePoint permettent d'utiliser des champs calculés, ce qui peut-être parfois pratique pour afficher une information calculée simplement.
Le hic est qu'il n'est en théorie pas possible d'utiliser la fonction de date du jour pour comparer deux dates. En effet, la fonction TODAY étant considérée comme une fonction "volatile", l'éditeur n'accepte pas que l'on utilise cette fonction!!!

Et pourtant, il existe une solution de contournement simple qui fonctionne.
La marche à suivre est la suivante:
  1. Créer une colonne nommée "TODAY" de type "Une seule ligne de texte".
  2. Créer un champ calculé prenant pour formule "=[TODAY]" (on référence donc ici la colonne que l'on a créé précédemment).
  3. On supprime ensuite la colonne "TODAY" créée au point 1.
Et comme par magie, la date du jour apparait dans la colonne calculée...
En fait il considère à présent TODAY comme la date du jour dans le champ calculé.

Par contre si vous voulez modifier la colonne calculée, il faudra auparavant recréer cette colonne sinon il serait impossible d'enregistrer le changement!