30 octobre 2014

INFOPATH 2013 : Fonctionnalité vleurs par défaut

Aujourd'hui un article sur une fonctionnalité souvent méconnue et inexploitée dans InfoPath (de 2007 à 2013) : l'utilisation de valeurs par défaut.
 
Cette fonctionnalité en apparence anodine est bien pratique et permet d'éviter d'ajouter du code personnalisé dans vos formulaires.
Par exemple, pour faire echo à une question posée récemment: Comment dire à InfoPath de créer automatiquement X lignes dans un tableau extensible à l'ouverture du formulaire.
 
La solution de facilité consisterait à réaliser un bon de code managé pour réaliser ce besoin. Néanmoins ce problème peut-être adressé via les fonctionnalités natives d'InfoPath. Pour se faire, il faudra insérer votre tableau ou section extensible dans la structure du formulaire puis suivre les étapes suivantes:
  • Se positionner dans l'onglet "Données" dans InfoPath Designer,
  • Sélectionner "Valeur par défaut" comme ci-dessous:
  • Se positionner sur la donnée extensible puis réaliser un clic droit pour ajouter autant de lignes que vous le souhaitez au démarrage de votre formulaire (par exemple ici je souhaitais charger le formulaire avec 3 lignes dans mon tableau extensible).
 
  • Et voila, le tour est joué! Le formulaire disposera ainsi de 3 lignes par défaut à l'ouverture du formulaire (il vous suffira d'aller dans les options de la zone extensible afin de préciser le comportement souhaité : l'utilisateur peut ajouter, supprimer des lignes,...):
 

21 octobre 2014

SHAREPOINT 2013 : Service Microsoft Foundation Web Application

Aujourd'hui, un rapide retour d'expérience sur l'installation d'une solution dans une ferme SharePoint.

Suite à l'installation de la solution, les fonctionnalités de scope "Ferme" et "Web Application" n'étaient pas visibles depuis l'administration centrale.
Vous me direz étrange d'autant qu'après un petit coup de "SharePoint Manager", ces fonctionnalités sont bien présentes et activées.
Autre élément perturbant, les modèles de sites développés n'étaient pas disponibles via la page de création de collections de sites...
Cette déconvenue m'étant déjà arrivée auparavant sur SP2010, la résolution est apparue comme une lumière : Cela provient du fait que le service "Microsoft Foundation web application" n'est pas activée sur le serveur hébergeant l'administration centrale. En l'occurrence ici, il était arrêté sur tous les serveurs applicatifs.
Attention donc lors de l'installation de vos fermes SharePoint. Ce service doit rester activé sur tous les serveurs de votre ferme.
Pour ne pas tomber sur ces serveurs lors des requêtes utilisateurs, il sera uniquement nécessaire de les sortir des pool de publication (F5 ou NLB).
 
Note : Lors de l'activation du service via l'administration centrale, vous pouvez être amené à ce que celui-ci reste en état 'Starting' (idem pour 'Stopping').
Pour corriger ce problème, vous devrez passer par PowerShell:
 
 $server = "SP_APP01"
 $service = Get-SPServiceInstance -Server $server | where-object {$_.TypeName -eq "Microsoft SharePoint Foundation Web Application"}
 $service | Stop-SPServiceInstance -confirm:$false > $null
 while(-not ($service.Status -eq "Disabled")){
  write-host -ForegroundColor Yellow $service.Status; sleep 5;
  $service = Get-SPServiceInstance -Server $server | where-object {$_.TypeName -eq "Microsoft SharePoint Foundation Web Application"}
 }
 Get-SPServiceInstance -Server $server | where-object {$_.TypeName -eq "Microsoft SharePoint Foundation Web Application"} | Start-SPServiceInstance -confirm:$false > $null

Malgré tout, cette opération peut prendre quelques minutes du fait de la redescente de la web application sur chaque IIS.

7 octobre 2014

Microsoft MVP - 4ème année

Aux fidèles lecteurs de ce blog, je souhaitais vous faire part de mon renouvellement pour la 4ème année consécutive en tant que Microsoft MVP (Most Valuable Professional).
 
Je profite de ce post pour remercier toutes les personnes ayant contribuées à ce renouvellement. De même je tiens à féliciter tous les MVP récompensés (renouvelés ou fraichement nominés) sur les différentes technologies Microsoft.
 
Il s'agit d'une année transitoire pour moi étant donné qu'InfoPath ne sera plus disponible dans la prochaine version d'Office. Celui-ci étant supporté pendant encore 10 bonnes années, cela n'empêchera pas de traiter les problématiques utilisateurs récurrentes.

Je continuerai donc avec plaisir  à vous faire partager mon expérience autour des technologies SharePoint, InfoPath (ainsi que ses nouveaux substituts : Fosl,...) au travers de ce blog et de la communauté.

17 septembre 2014

SHAREPOINT 2013 : Tour d'horizon des Apps

Pour ceux ayant suivis le nouveau modèle de développement apparu dans SharePoint 2013, les Apps se décomposaient en trois types:
 
  • SharePoint-hosted:
    • Hébergement : Application hébergée dans SharePoint (à l'intérieur de la collection de sites),
    • Développement : Ces applications permettent uniquement de coder en JS (JSOM ou REST pour s'interfacer avec SP). Par conception, l'authentification est basée sur SP,
    • Isolation : L'isolation est de niveau ferme (pas possible de partager les données entre fermes).
 
  • Autohosted:
    • Hébergement : Applications O365 hébergées dans un Azure (tout est déja précablé et le déploiement est simplifié),
    • Développement : Possibilité de développer en ASP.Net (MVC, WebForms, etc).
    • Isolation : L'application est dans le tenant : "o365apps.net domain" et accède uniquement aux données du tenant O365.

  • Provider-hosted (dites de type cloud) :
    • Hébergement : Ces apps peuvent être hébergées dans Azure ou sur un serveur web de l'entreprise,
    • Développement : Il est possible d'utiliser n'importe quelle technologie web réaliser son apps : ASP.Net, PHP, ... sera possible de communiquer avec SharePoint via du CSOM (Cliend Side Object Model) ou REST (pour des technologies non MS),
    • Isolation : Il est possible de partager cette application entre diverses fermes SharePoint.

 
Depuis Mai 2014, le type "Auto-hosted" est retiré (cette fonctionnalité était en mode preview). L'article suivant de Microsoft détaille ceci : http://blogs.office.com/2014/05/16/update-on-autohosted-apps-preview-program/

Une mauvaise nouvelle alors que le mode de développement "Sandbox" est déprécié en SP2013.
Donc le seul et unique moyen de personnaliser Office 365 en restant dans les préconisations SharePoint reste le modèle "Provider-hosted".

5 septembre 2014

InfoPath : Connexion au profil utilisateur en mode claims

Une des nouveautés de SharePoint 2013 a été l'introduction du mode d'authentification claims par défaut. Ce changement d'authentification entraine de nombreux impacts sur les applications et notamment "InfoPath Forms Services" (à noter que par conception, InfoPath en mode client lourd n'est pas concerné).
 
Dans les versions précédentes de SharePoint, de nombreuses sociétés utilisaient les formulaires IPFS en récupérant des informations de l'utilisateur connecté via le service de profil utilisateur (département, adresse mail, téléphone, numéro d'employé,...).

Si vous migrez et travaillez sur une application utilisant le mode claims, vous rencontrerez des erreurs de type "5566" lors de l'utilisation des connexions de données.
 
Il existe malgré tout un moyen de contournement qui consiste à utiliser le "Secure Store Service" de SharePoint:
 
  • Se connecter à l'administration centrale de SharePoint,
  • Créer une clé de type "Ticket du groupe" dans le Secure Store de votre ferme SharePoint :
 
 
  • Configurer le compte Windows à utiliser pour votre connexion à l'UPS :


 
  • Concevoir le formulaire en InfoPath en se connectant au service SOAP "userprofileservice.asmx" et convertir cette connexion en fichier UDCX via l'interface "Convertir" des connexions de données InfoPath :
 
 
 
  • Modifier le fichier déposé dans la bibliothèque de connexion de données comme ci-dessous (il sera nécessaire de l'enregistrer localement et de le redéposer) en précisant la clé renseignée dans le secure store :
 
 
Attention : Ne pas oublier de dé-commenter la ligne "Authentication" et d'approuver le fichier UDCX après l'avoir téléchargé.
 
 
A présent, votre formulaire récupérera correctement les valeurs dans la base de profil SharePoint. Voici l'exemple d'un formulaire de liste SharePoint customisé avec InfoPath: