lundi 8 septembre 2008

Forms Server et autorisation totale

Comment publier un formulaire Infopath 2007 avec niveau de sécurité autorisation totale (full trust) et en compatibilité avec le navigateur Web.

Sharepoint 2007 (MOSS) permet l'hébergement de formulaires qu'on peut remplir à l'aide de n'importe quel navigateur Web, ce qui est une fonctionnalité très intéressante : on n'a ainsi pas besoin de licence Infopath pour tout le monde si l'on veut utiliser ce type de formulaire. Cependant on a parfois besoin de fonctionnalités non inclues dans Infopath, on commence donc à programmer... et des fois on a besoin d'accèder à des services externes (un annuaire Active Directory par exemple). Dans ce cas, on doit mettre le niveau de sécurité en autorisation totale. Mais alors pour pouvoir utiliser le formulaire avec Forms server ça devient plus compliqué, voici comment faire

  1. [Concepteur du formulaire] publier le formulaire : Fichier / Publier

    1. choisissez Vers un serveur Sharepoint avec ou sans InfoPath Forms Services

    2. mettez l'adresse de votre serveur Sharepoint (si la suite ne marche pas, mettez l'adresse de la racine du serveur)

    3. cliquez sur Activer ce formulaire pour qu'il puisse être remplit à l'aide d'un navigateur (si l'option n'est pas disponible, c'est que vous n'avez pas coché la case correspondantes dans les options de formulaire : faites-le et recommencez). À ce moment, si vous avez choisi le mode full trust, seule l'option Modèle de formulaire approuvé par l'administrateur est disponible

    4. on vous demande maintenant de choisir un emplacement pour votre formulaire : indiquez un emplacement auquel vous et l'administrateur du site Sharepoint avez accès : vous allez enregistrer votre formulaire à cet emplacement (droits en écriture) et l'administrateur aura besoin de le télécharger (accès en lecture). S'il s'agit d'un formulaire de workflow (que ce soit d'instantiation, de tâche, etc.), voir à la fin du billet où placer le formulaire

  2. [\administrateur Sharepoint] activer le formulaire (sauf pour les flux de travail : voir plus bas)

    1. dans la page d'administration de MOSS, allez dans la catégorie InfoPath Forms Services, Gérer les modèles de formulaires (http://votreServeurMOSS:portAdmin/_admin/ManageFormTemplates.aspx)

    2. cliquez sur Télécharger un modèle de formulaire, sélectionnez l'emplacement que le concepteur du formulaire avait choisi un peu plus haut, et téléchargez. Note : à cette étape plusieurs erreurs peuvent apparaître : le formulaire peut ne pas être compatible pour le navigateur (dans ce cas il faut revoir le formulaire en mettant l'adresse de votre serveur Sharepoint dans la catégorie Compatibilité des options du formulaire), il peut aussi y avoir un conflit de formulaires (dans ce cas il faut renommer entièrement le votre (y comrpis l'identificateur dans les propriétés du formulaire) ou supprimer l'autre ou supprimer l'autre ce qui fera l'objet d'un autre billet)

    3. retournez dans la gestion des modèles de formulaire, vous devriez y trouver votre formulaire. Pour celui-ci, choisissez avec le menu déroulant Activer sur une collection de site. Choisissez votre colleciton de site (vous devrez probablement changer de collection et d'application web vu que vous voudrez surement utiliser le formulaire sur votre site public et non dans sa partie administration)

    4. attachez le formulaire à une liste dans ses paramètres : dans les paramètres avancés, autorisez la gestion des types de contenu et choisissez Afficher en tant que page Web dans les documents activés pour le navigateur. Enfin, dans la catégorie Types de contenu, cliquez sur Ajouter à partir de types de contenu de site existants, votre formulaire devrait apparaître !

Flux de travail (workflows)

Lors la publication, il faut mettre pour l'emplacement du formulaire là où sont les formulaires de tâches de votre flux de travail (généralement dans le dossier du projet, ou dans un sous-dossier formulaires...). De plus, il faut rajouter la DLL correspondant au formulaire. Celle-ci est généralement située dans Mes Documents\Projets InfoPath\nomDuFormulaire\bin\Release. Copiez cette DLL dans le même répertoire que le formulaire (dans le projet du workflow). Enfin, dans le script de publication du workflow (PostBuildActions.bat par exemple), entre la désinstallation (stsadm -o uninstallfeature) de lancien et l'installation du nouveau flux de travail (stsadm -o installfeature) et rajouter la ligne suivante :
[dos]
xcopy /s /Y "%FEATUREDIR%\*.dll" "%FEATURESDIR%\NomDeLaFeature"
Note : ce billet est un clean de ceux que j'ai posté sur le forum infopathdev

Aucun commentaire: