21 juillet 2014

INFOPATH : Formater une date

InfoPath dispose d'un panel de fonctions permettant de réaliser la plupart des besoins dans vos formulaires (math, url, utilisateurs, dates,...).
 
Il est possible d'utiliser ces fonctions fournies par InfoPath mais aussi des fonctions XPath basiques qui ne sont pas visibles depuis l'interface.
Une fonctionnalité puissante (permettant de ne pas utiliser de code managé) est la possibilité de formater l'affichage d'une date dans un autre champ du formulaire.
 
Pour cela, il faudra passer par la fonction XPATH non disponible via l'éditeur de fonction d'InfoPath : "format-date".
Pour réaliser ce besoin, il suffira de suivre les actions suivantes:
  1. Se placer sur le champ texte qui accueillera la date à formater,
  2. Cliquer sur valeur par défaut,
  3. Cliquer sur "Fonction",
  4. Insérer la fonction suivante : msxsl:format-date(DateField; 'MMMM') (en prenant soin de remplacer "DateField" par votre champ date InfoPath),
 
Votre champ affichera à présent le mois sous sa valeur textuelle.
Pour les personnes n'étant pas à l'aise avec les divers formatages de dates, la liste est disponible sur le MSDN de Microsoft: http://msdn.microsoft.com/en-us/library/ms256099(v=vs.110).aspx

 

18 juillet 2014

InfoPath : SharePoint 2010 et IE11

Attention, depuis l'arrivée de IE11 dans les entreprises et chez les particuliers, vous pouvez être amené à rencontrer certains effets sur vos formulaires d'entreprise InfoPath. Forms Services...

Vous pouvez rencontrer l'erreur suivante : "Object doesn't support property or method 'addEventListener'". Cela est le cas notamment sur des formulaire contenant des contrôles de type date.
Cette erreur survient lorsque vous avez positionné votre site SharePoint pour fonctionner en mode de compatibilité IE8 (via la balise X-UA-Compatible). Cette technique est réalisée par de nombreuses entreprises pour corriger de nombreux effets dans SharePoint.
 
Afin de corriger ce problème, le plus simple reste l'une des méthodes suivantes:
  • Rajouter votre site SharePoint dans la zone intranet,
  • Positionner le site dans les sites de compatibilité (il s'exécutera avec le user agent de IE 10 et l'erreur disparaitra).

Malheureusement, ceci est difficile à mettre en place dans le cas d'un extranet puisque par principe vous ne maitrisez pas la configuration des postes clients.

Il existe tout de même méthode qui consiste à modifier la page maitre de votre site. Pour cela il faudra ajouter le code JavaScript suivant dans une balise script juste avant la fermeture du body
:
 
/* IE11 Fix for SP2010 */
if (typeof(UserAgentInfo) != 'undefined' && !window.addEventListener)
{    
      UserAgentInfo.strBrowser=1;
}

19 juin 2014

INFOPATH 2013 : Gestion des pièces jointes

Aujourd'hui un post sur un problème récurrent rencontré par les utilisateurs d'InfoPath et plus généralement InfoPath Forms Services : La gestion des pièces jointes.
 
Nativement, les pièces jointes téléchargées via le formulaire sont stockées dans le XML de l'instance. 
Cela implique généralement une quadruple problématique pour les utilisateurs :
  1. Le formulaire est alourdi par cette pièce jointe encodée dans le XML,
  2. Le temps de chargement du formulaire est grandement dégradé,
  3. La gestion de la sécurité du document (droit de modification, lecture ou confidentiel) ne peut pas être décorrélée de celle du formulaire,
  4. Les pièces jointes insérées dans le formulaire ne sont pas indexées via le moteur de recherche.

Note : Les formulaires de "liste" modifiés via  InfoPath ne sont pas concernés par le sujet car ils héritent du fonctionnement natif des listes SharePoint.
 

En tant que solution de contournement à ces problématiques, je conseille généralement (lorsque le besoin s'y prête) de réaliser un peu de code managé permettant de changer légèrement le fonctionnement du contrôle.

Le fonctionnement devient ainsi le suivant:
  1. La pièce jointe est téléchargée dans le formulaire,
  2. L'évènement "Changed" est déclenché dans le code managé dès l'ajout du fichier dans le contrôle,
  3. Le code associé à cet évènement dépose la pièce jointe dans une bibliothèque de document SharePoint (possibilité de stocker dans un fichier dédié, nettoyage du nom de fichier, gestion des autorisations,...),
  4. Alimentation d'une section extensible pour afficher la liste des fichiers associés à l'intérieur du formulaire,
  5. Suppression du fichier dans le contrôle de pièce jointe du formulaire.
 
 
Voici le rendu:
 

Nous pouvons voir que :
  • Le contrôle des pièces jointes reste vide. Le données ne sont pas stockées dans l'instance de formulaire elle-même => Optimisation du temps d'ouverture et de traitement,
  • Les fichiers sont ajoutés dans une bibliothèque SharePoint (ce qui permet de les regrouper, gérer leur sécurité, les rendre indexable,...) => Plus grande flexibilité sur les règles de gestion métier,
  • La suppression de fichiers depuis le formulaire via le petit bouton rouge (nécessitant quelques lignes de code managé sur le clic du bouton) est aussi prévue.

N'hésitez pas à me contacter si besoin.

11 juin 2014

INFOPATH 2013 : Vue sur formulaire de liste

Aujourd'hui un article sur les formulaires de listes version InfoPath très souvent utilisés dans SP2013.
En effet, il est possible de modifier les formulaires de liste natifs SharePoint par leur équivalent en version InfoPath. Pour cela, il suffit de cliquer sur le bouton "Personnaliser le formulaire" présent dans l'onglet "Liste" du ruban.
 
Les avantages de ces formulaires vis à vis des formulaires natifs de SharePoint sont nombreux et nous pouvons retenir les arguments suivants:
  • Facilité de personnalisation du rendu de l'information (tableaux, conditions de formattage, validation de contrôles,...).
  • Facilité de conception (cascading sur des zones de listes déroulantes, réception de données,...).

Il est aussi utile de pouvoir distinguer la personnalisation de ces affichages selon que l'on soit en édition ou en lecture sur l'élément de liste ("Edit" vs "Display").
Par défaut, InfoPath créé une vue "Edit" qui gère à la fois les 2 modes.

Pour séparer les affichages selon le mode d'utilisation (conception ou affichage), il suffit de se laisser guider par le concepteur d'InfoPath parfaitement intégré à SharePoint :
  • Créer une nouvelle vue via l'onglet "Création de page" ou "Page Design" :
 
 
  • Se positionner sur le menu "Fichier" puis aller dans "Options du formulaire" ou "Advanced form options" :
 
  • Sélectionner votre vue d'affichage dans la zone de liste déroulante comme ci-dessous :

5 juin 2014

SHAREPOINT 2013 : Limite colonne lookup

Lors de l'utilisation de listes SharePoint, vous pouvez être amené à rencontrer le message d'erreur suivant:
"L'affichage est impossible car le nombre de colonnes de recherche et d'états de flux de travail dépasse le seuil (8) imposé par l'administrateur."
 
Pour corriger ce problème, il suffit de demander à l'administrateur de la ferme SharePoint de suivre les étapes suivantes:
  • Gestion des applications web,
  • Sélection de l'application web concernée,
  • Paramètres généraux,
  • Limitation de ressources:
 
 

Il faudra ainsi modifier la valeur définie à "8" par défaut afin de l'augmenter.
 
 
Attention : Cette limitation n'est pas fournie au hasard par Microsoft. Au-delà de cette limite, vous pouvez rencontrer des dégradations de performance sur votre environnement. Ce genre de modification de la limitation sur une application web devra donc être réfléchi et étudié!
Je vous conseille donc de toujours privilégier une re-conception de votre liste à la modification de ce paramétrage.