21 février 2011

SHAREPOINT 2010 : Utiliser REST

Une des nouveautés de SharePoint 2010 est l'utilisation des services REST (Representational State Transfer) à l'aide du web service WCF nommé ListData.svc. Ce web service permet de mettre en place une architecture client serveur (utilisable depuis le client : Silverlight, JQuery,...) et facilite la lecture et écriture des données depuis SharePoint.

Le lien suivant permet de mettre en avant la facilité d'utilisation de REST : http://msdn.microsoft.com/fr-fr/library/ff521587.aspx

Les web services REST peuvent être appelés entre autre depuis des formulaires InfoPath 2010.

Par exemple, lors de l'installation d'une plateforme de développement SharePoint, j'ai souhaité utiliser ce web service depuis InfoPath en renseignant l'URL:

Mallheureusement, un message d'erreur apparait. En tapant l'URL dans un navigateur, nous obtenons l'URL suivante :





Cette erreur n'est pas bloquante, il s'agit d'un prérequis de configuration.
En effet pour résoudre ce problème, il suffit de télécharger la mise à jour ADO.Net pour le framework 3.5 SP1 de votre serveur SharePoint:Et petit reboot et c'est parti!
Bon REST...

20 février 2011

INFOPATH : Validation personnalisée

Bonjour,

De nombreux clients réalisent des retours sur InfoPath Form Services quand aux messages apparaissant sur les champs obligatoires d'un certain type, notamment pour les champs de type "date".
En effet, le message apparaissant sur un champ obligatoire de type "date" incite à saisir une date au format "YYYY-MM-DD", ce qui n'est pas souhaité lorsque nous souhaitons que l'utilisateur saisisse une date au format : "JJ/MM/AAAA". Cela provient du CSS embarqué par Form Services (qui ne doit pas être modifier directement car il sera sûrement écrasé lors d'un passage de service pack).

Pour corriger ce problème, il faut modifier légèrement le formulaire InfoPath Form Services. Les étapes à suivre sont les suivantes:
  • Clic droit sur le champ de votre formulaire,
  • Cliquer sur "Propriétés",
  • Cliquer sur "Validation de données",
  • Sélectionner l'évènement validation.
Et insérer ensuite le code suivant (il parcourt les erreurs dans le formulaire jusqu'à trouver l'erreur actuelle afin de modifier le message):

public void champ1_Validating(object sender, XmlValidatingEventArgs e)
{
      foreach (FormError error in this.Errors)
     {
            if (error.Site.Name == e.Site.Name)
           {
                    error.Message = "Mon message custom";
           }
     }
}

Il suffira de modifier "Mon message custom" avec par exemple "Saisir une date au format 'JJ/MM/AAAA'.

13 février 2011

INFOPATH 2007 : Validation de données

De nombreux clients réalisent des retours concernant l'utilisation d'InfoPath Form Services dans SharePoint 2007. Le principal est le petit tooltip qui s'affiche sur un champ obligatoire "Ne peut pas être vierge".

Ce petit tooltip à le don d'agacer de nombreux utilisateurs car il se positionne souvent à l'intérieur d'un autre champ de saisie.
Cet affichage est défini par le CSS utilisé par Form Services. Celui-ci étant dans SharePoint, il n'est pas concevable de modifier la page originelle de SharePoint (sous peine de se faire écraser les modifications lors d'un passage de cumulative update ou de service pack).

La solution la plus "propre" consiste à aller modifier manuellement le fichier "manifest.xsf" présent dans le formulaire InfoPath (un fichier XSN d'infopath n'étant qu'un type particulier de cab).
Vous trouverez dans ce fichier les validations de données de votre formulaire:
Ne peut pas être vierge

Il faut modifier l'attribut ShortMessage en le mettant à vide.
Ainsi le petit tooltip ne sera plus affiché.

5 février 2011

SHAREPOINT 2010 : Ouvrir fichier HTML

Un petit post sur SharePoint 2010 pour parler d'un changement de fonctionnement qui peut faire bloquer certaines applications.

Dans la version 2007, il était possible d'ouvrir une page HTML en cliquant sur le lien. La page se chargait dans le navigateur.

A présent en 2010, lors du clic sur la page située dans une bibliothèque, une jolie pop-up de téléchargement s'affiche par défaut.
Cela provient d'une volonté de Microsoft de combler une faille de sécurité (dûe à l'insertion de javascript s'exécutant sur le poste de l'utilisateur).

Pour s'affranchir de cette sécurité et pour revenir au même fonctionnement que dans la version 2007, il faut suivre les étapes suivantes:

  1. Se placer dans l'administration centrale de SharePoint 2010,
  2. Aller dans la gestion des applications web,
  3. Sélectionner votre application web concernée et cliquer sur "Paramètres généraux",
  4. Modifier le paramètre de sécurité du contenu de "Strict" à "Permissif".
Vous pouvez à présent réouvrir vos pages HTML directement en cliquant dessus.

Edit : Si vous ne souhaitez pas modifier le niveau de sécurité de votre web application, il est possible d'utiliser une autre méthode. Il suffit de renommer votre fichier HTML en ASPX et celui-ci s'ouvrira directement dans SharePoint. Autant dire que cette nouvelle sécurité ne sert pas à grand chose puisque l'on peut avoir aussi du javascipt dans une page ASPX...

1 février 2011

INFOPATH 2010 : Contrôle de saisie

Voici un petit tutoriel concernant la définition d'un contrôle de saisie sur un champ InfoPath. Le contrôle est à réaliser au niveau d'un champ InfoPath ( comme ici une zone de texte par exemple) et cliquer sur "Gérer les règles".
Ensuite il faut sélectionner le type de règle "Validation" comme ci-dessous:



Il faut ensuite définir une condition de déclenchement du contrôle de validation. Par exemple ici nous allons vérifier que la valeur saisie par l'utilisateur correspond au formatage d'un numéro de téléphone.
Pour se faire, il faut suivre les étapes suivantes:
  • Cliquer sur 'Condition',
  • Sélectionner le champ actuel sur la zone de liste déroulante située sur la gauche.
  • Sélectionner "ne correspond pas au modèle" dans la zone de liste déroulante centrale.

  • Sélectionner "Sélectionner un modèle ..." dans la zone de liste déroulante de droite.
  • Il faut ensuite préciser un modèle de contrôle des données. Les modèles par défaut sont Email, URL, Numéro de sécurité sociale... Il est de même possible de définir un modèle personnalisé par exemple pour le cas qui nous intéresse, le formatage du numéro de téléphone en rentrant la valeur suivante : "(\d{2}\s){4}\d{2}". A noter que les modèles ressemblent d'assez près aux espressions régulières. Donc un peu de recherche sur le net et vous trouverez votre bonheur.
  • Définir une info-bulle lorsque la valeur saisie ne correspond pas au modèle que nous avons précisé (Exemple:"La valeur saisie ne correspond pas à un numéro de carte de crédit").