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.