Bonjour,
comment puis-je modifier le champ "created by" dans un workflow (sp designer).
Merci d'avance.
Bonjour,
comment puis-je modifier le champ "created by" dans un workflow (sp designer).
Merci d'avance.
Je crois que c'est un champ que l'on ne peut pas modifier, dans SharePoint...
Thomas LEBRUN: MCAD.NET, MCTS (Win et Web), MCPD(Win et Web) & Microsoft MVP Client Application Development
WPF par la pratique, mon livre sur WPF ! (également disponible ici ou là)
A la découverte de .NET
ok, tant pis, je laisse non résolu encore un peut pour voir si personne d'autre n'a d'information a ce sujet.
Dans un wf avec SP aucune chance par contre dans un wf custom tu pourrais le faire même si je ne vois pas l'intérêt de la chose car ça reviendrait à trafiquer la création d'un item.
Ceci dit, via l'api sharepoint, c'est possible. Sache quand même que le champ Created By ne prend pas comme valeur simplement le nom de l'utilisateur ni son login mais bien un ID sharepoint qu'il faut pouvoir récupérer et je n'ai encore jamais trouvé de méthode qui permette de renvoyer l'ID complet (il faut donc le reconstituer manuellement).
Bref, si tu peux t'en passer, passes-en toi
Personnellement, j'ai toujours cru qu'on avait pas le droit de modifier ce champs mais si tu dis qu'on peut le faire (avec de la bidouille), c'est intéressant tout de même
Thomas LEBRUN: MCAD.NET, MCTS (Win et Web), MCPD(Win et Web) & Microsoft MVP Client Application Development
WPF par la pratique, mon livre sur WPF ! (également disponible ici ou là)
A la découverte de .NET
Oui, il suffit d'utiliser l'API et de lui mettre une valeur attendue sinon ça plante. Donc, par exemple, si je disEnvoyé par Thomas Lebrun
ça fonctionnera très bien, tu créeras un item avec l'identité voulue mais bon, je ne vois pas trop l'intérêt
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 try { SPSite site = new SPSite("site"); SPWeb web = site.OpenWeb(); SPListItem NewItem = web.Lists["ReadOnly"].Items.Add(); NewItem["Title"] = "tutu"; SPUser CreatedByUser = web.Users["domain\\username"];//càd loginname NewItem["Created By"] = CreatedByUser.ID + ";#" + CreatedByUser.Name; NewItem.Update(); web.Close(); site.Close(); Console.Read(); } catch(Exception) { .... }
L'intéret c'est que tu configures une liste pour être modifiable seulement par le créateur. Ensuite dans un workflow à validation multiple (mon cas), tu changes le créateur pour donner a lui seul le droit de modifier l'enregistrement.
en bref tout ca pour justifier une immonde bidouille (à l'époque j'avais pas trouvé mieux ).
Y a moyen de faire mieux. Tu casses l'héritage de sécurité appliqué par défaut lorsque l'item est créé et tu associes à l'item le(s) seul(s) users valides et ce tout à fait dynamiquement par le code mais c'est du boulot (je l'ai déjà fait) et le seul problème de cette approche est que tu dois t'impersoner avec un compte admin du domaine en utilisant les api win32 ce qui est plutôt ennuyeux dans le cadre d'une migration future éventuelle en 64 bits.Envoyé par heid
Surtout que dans le cas de cette impersonnalisation, tu dois indiquer le login/mot de passe de l'administrateur dans ton code (j'ai déjà eu à le faire pour un EventHandler): ce qui n'est pas très..... coolEnvoyé par stephane eyskens
Thomas LEBRUN: MCAD.NET, MCTS (Win et Web), MCPD(Win et Web) & Microsoft MVP Client Application Development
WPF par la pratique, mon livre sur WPF ! (également disponible ici ou là)
A la découverte de .NET
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager