# Dotnet > Gnral Dotnet > Dveloppement Office System > InfoPath > [Toutes versions] Les rles avec Infopath Forms Services

## jff42

_Bonjour  tous.
Voici une petite page genre didacticiel, mais c'est un bien grand mot pour une astuce que je n'ai pas valide en grand (vous pouvez m'aider  le faire  ) et je n'ai pas vu de rubrique didacticiel Infopath sur ce site. Donc je la pose ici.

_
*Gestion de rles avec IPH forms services.*
*Rappel sur les rles :*Une des fonctions natives dInfoPath est lattribution de rles  des personnes ou groupes. 
Le rle nest pas une structure organisationnelle gnrale, comme un groupe AD ou SharePoint, mais une dimension fonctionnelle limite au modle. Une fois le rle attribu, lutilisateur peut bnficier de fonctionnalits supplmentaires, qui sont construites par les rgles, masquages, changement de vues, et tout traitement particulier puisquil suffit de tester si lutilisateur actif possde ce rle ou non.
Les rles sont attribus soit de faon statique  un groupe AD, soit dynamiquement  des individus rfrencs par le crateur du document, et stock dans un champ :

_exemple : je remplis ma demande de congs, je saisis dans le champ ResponsableHierarchique le nom de mon chef, ou de son remplaant, et  ltape suivante seule la personne dfinie dans ce champ aura le rle Approbateur permettant daccder  la vue ou  la section Approbation._

On peut avoir plusieurs rles  la fois (Rle Approbateur + Rle Ressources Humaines). On peut obtenir un rle dans le mme formulaire par appartenance statique  un groupe ou par dcision dynamique, selon lanalyse fonctionnelle.

*Simuler la gestion de rles avec IPH forms services*.
Les rles sont trs utiles pour les workflows (Lotus Notes exploite a depuis dix ans, pour le bonheur de ses dveloppeurs), mais *InfoPath forms services ne sait pas le grer*. Voici une mthode pour grer les rles dfinis en statiques (groupes permanents) avec SharePoint.

*Dans Sharepoint :*
	Faire une liste SharePoint pour chaque modle de formulaire, 
- masque dans le navigateur
- dsactiver lhritage des droits ; par dfaut : accs seulement au groupe admin
	crer une ligne par rle
- colonne titre (title) = nom du rle
- dsactiver lhritage des droits ; accs lecture au groupe qui possde ce rle

*Dans Infopath :*
	Ajouter une connexion de donnes rception sur la liste, nomme Roles_Shp
	Test dun rle spcifique dans une formule = (Insrer un champ > Connexion secondaire Roles_Shp > Groupe DataFields > Champ = Title) ;
- formule exemple :  Title = "Directeur Prod" 
- utiliser le Egal pour tester sur toutes les occurrences, ne pas utiliser Contient qui ne marche que sur la premire.
Exploitation : par exemple pour un masquage, ou un changement de vue  louverture 
- Si Roles_Shp = {le rle cherch}

Un utilisateur a ou na pas le rle, mais il peut en avoir plusieurs, comme dans les rles dInfoPath Filler.

Dploiement : Si on veut grer des rles spcifiques par modle, il faudrait grer une liste SharePoint distincte par modle Pour allger, on peut soit essayer de regrouper des rles un peu gnraux (DEViph, Admin, Compta, PDG ) soit nommer les rles avec un prfixe par modle DemConges_Approbateurs. Du coup on peut mettre a dans une bib de connexion de donnes.
_Plus lourd que la gestion des rles standard, cest imparfait, a ne rgle pas le besoin de rle dynamique qui doit tre trait autrement, mais a peut servir de base  dautres approches. ._

----------

