# Dotnet > Gnral Dotnet > Dveloppement Office System > InfoPath >  Empcher modification sur formulaire

## mimi1255

Bonjour, 

J'ai cre un formulaire de note de frais sous infopath. 
J'ai cre une bibliothque de formulaire avec un workflow dans lequel il y a une colonne Statut qui peut tre soit: cree, valide, paye.
Donc quand le statut est sur "cree" cel signifie que la note de frais  t cree.
Quand le statut est sur "valide" cela veut dire que le responsable  valider la demande.
Et quand le statut est sur "paye", cela veut dire que la compta a bien pris la demande en compte.

Cependant j'aimerais que lorsque le responsable  valid la note, qu'on ne puisse plus revenir dessus pour apporter des modifications (ou bien seulement par certaines personnes, mais on verra a par la suite).

Comment faire ? Est-ce dans le workflow qu'il faut apporter une modif ?

Merci d'avance.

----------


## ludojojo

Bonjour,

C'est dans infopath qu'il te faut grer cette situation.
Tu crs une vue de consultation (nouvelle vue en lecture seule).
VuesAjouter une nouvelle vue (tu lui donne un nom)Proprits de la vueCocher la case lecture seule
Ensuite dans les rgles d'ouverture, tu ajoute une nouvelle rgle :
OutilsOptions de formulaireOuvrir et enregistrerrglesAjouterDfinir une conditionTu slectionnes ton champs et la valeur valideAjouter une actionChanger de vueChoisi ta vue de consultation

Voila, plus rien d'autre  faire!  ::ccool::

----------


## nonoxp

Si tu veux restreindre la modification sur tout l'item, fais le via le workflow aprs validation par le responsable (retrait des groupes d'utilisateurs des permissions de l'item).

Si a ne concerne que certains champs du formulaire, a se passe ct infopath comme l'indique ludojojo.

----------


## ludojojo

> Si tu veux restreindre la modification sur tout l'item, fais le via le workflow aprs validation par le responsable (retrait des groupes d'utilisateurs des permissions de l'item).


Cela semble plus compliqu  mettre en place... tu aurais un exemple concret ?




> Si a ne concerne que certains champs du formulaire, a se passe ct infopath comme l'indique ludojojo.


Tu peux le faire pour tous les champs !  ::mouarf::

----------


## mimi1255

je ne sais pas si on c'est bien compris. Mon formulaire est dj cre, il est en template dans ma bibliothque de formulaire.
Quand une personne va saisir une note de frais, elle ouvre ce template, puis l'enregistre ce qui crer une copie.
Par contre ensuite je voudrais que cette copie ne soit plus modifiable.
Et ceci pour chaque nouvelle note de frais.

Merci encore.

----------


## ludojojo

> Mon formulaire est dj cre, il est en template dans ma bibliothque de formulaire.


Et alors ?
Cela reste un formulaire, tu peux le modifier.
Sinon passe par le mthode propose par @nonoxp.

----------


## nonoxp

> Cela semble plus compliqu  mettre en place... tu aurais un exemple concret ?


Pas de 2010 sous la main, mais a se passe avec l'activit d'Impersonation :
http://technet.microsoft.com/en-us/l...#BKMK_UserStep
http://www.sharepointusecases.com/in...raries-part-2/




> Tu peux le faire pour tous les champs !


Bien sr  ::):  c'est juste pour offrir une solution alternative.

----------


## mimi1255

Bonjour, 

Dans mon workflow, j'ai donc une tape "demande d'approbation" et une tape "Emprunt d'identit". Or je voudrais que l'tape "Emprunt d'identit" soit excute dans l'tape "demande d'approbation" juste aprs validation par le responsable.

Comment dois-je procder ?
Merci encore.

----------


## nonoxp

Bonjour,

Il me semble que pour des questions de lisibilit et de scurit l'Impersonation (Emprunt d'identit) n'apparat que sous la forme d'une tape. Il n'est donc pas possible de l'inclure dans une autre tape.

Le seul moyen est de faire un "branchement" qui part de l'tape de validation vers celle d'emprunt d'identit, au moyen d'une variable utilise comme smaphore par exemple.

Attention, quand mme  l'utilisation de cette tape, je crois que l'identit emprunte est celle du concepteur du workflow. Ce compte doit avoir des droits suffisamment levs sur la liste (ou le site pour pouvoir ouvrir SPD) et ne pas tre rvocable sinon le workflow va jeter une erreur  chaque fois.

----------


## mimi1255

Donc quand on fait un emprunt d'identit a veut dire qu'on attribuer des droits plus levs mais pas plus restreints ? car moi dans mon cas il faut que je restreigne les droits.

Quand tu me parles de branchement et de smaphore... l je sche  ::cry:: !

Merci.

----------


## nonoxp

Non, ne mlangeons pas tout. 

Le workflow s'excute par dfaut avec l'identit de la personne qui l'a dclench (ex : ton validateur ValidateurX a valid l'item).

ValidateurX a -j'imagine- comme plus haute permission le fait de pouvoir modifier un item (collaboration). Il ne peut pas administrer les jeux de permissions de l'item. C'est l qu'intervient l'emprunt d'identit.

L'emprunt d'identit permet de faire des choses plus intressantes dans un workflow, typiquement ce que ferait un admin du site (toi), dans notre cas modifier les permissions sur un item pour abaisser les permissions de l'utilisateur ValidateurX.

Une fois pass cette tape, le workflow reprendra l'identit prcdente.

Le souci dont tu parlais prcdemment tait : comment rentrer dans mon tape "Emprunt d'identit" ? La rponse : au moyen d'une variable de workflow (ex.: Boolen) qui aura chang  l'tape prcdente si ValidateurX a bien fait son travail.

----------


## ludojojo

> Quand tu me parles de branchement et de smaphore... l je sche !


Smaphore

----------


## mimi1255

Merci beaucoup, 

Pourrais-je avoir un peu plus de prcision sur cette tape:




> Le souci dont tu parlais prcdemment tait : comment rentrer dans mon tape "Emprunt d'identit" ? La rponse : au moyen d'une variable de workflow (ex.: Boolen) qui aura chang  l'tape prcdente si ValidateurX a bien fait son travail.

----------

