in

didierdanse.net

Site personnel de Didier Danse
Didier Danse's Personnal Website
Microsoft Most Valuable Professional SharePoint

This Blog

Syndication

didierdanse.net - Les news Developpement

SharePoint: Spécifier l'utilisateur utilisé dans l'historique d'un workflow

Cette question m'est revenue plusieurs fois déjà. Ainsi, je prends quelques minutes pour mettre la réponse par écrit.

Dans l'historique d'un workflow, vous retrouvez des valeurs "System Account" à chaque ligne.

workflow_userid_ko

Cette information est ainsi peu utile et il serait bien plus intéressant d'indiquer l'utilisateur qui a provoqué une action de laquelle résulte l'élément présent dans l'historique.

Pour cela, voici rapidement la procédure:

  • Dans le code de votre workflow, si vous n'avez pas suivi l'un des différents articles du net, rajoutez la première ligne (afin de récupérer l'élément courant) du code ci-dessous en global ainsi que la seconde ligne (qui serait la variable dans laquelle on stocke l'ID du user courant de type entier) dans tous les cas:

VB:

Public workflowProperties As New Microsoft.SharePoint.Workflow.SPWorkflowActivationProperties ()
Public CurrentUserId As Integer = -1

C#:

public Microsoft.SharePoint.Workflow.SPWorkflowActivationProperties workflowProperties = 
      new Microsoft.SharePoint.Workflow.SPWorkflowActivationProperties ();
public int CurrentUserId = -1;

  • Si ce n'est déjà fait, ajoutez une activité Code avant l'activité LogToHistoryListActivity. Dans cette activité, ajoutez les lignes suivantes qui permettent de récupérer l'ID de l'utilisateur au sein de SharePoint:

VB:

CurrentUserId = workflowProperties.Item("Editor").ToString().Substring( _
       0, workflowProperties.Item("Editor").ToString().IndexOf(";#"))

C#:

CurrentUserId = workflowProperties.Item("Editor").ToString().Substring(
       0, workflowProperties.Item("Editor").ToString().IndexOf(";#"));

 

  • Les activités d'un Workflow sont constituées d'un ensemble de propriétés qu'il est possible (voire nécessaire) de spécifier. C'est également le cas pour la LogToHistoryListActivity. Au delà des propriétés explicites telles que HistoryDescription que vous avez certainement déjà remplis (sans quoi, il serait dur d'avoir des logs...), il existe la propriété UserId. C'est cette propriété qui indique l'utilisateur à afficher dans l'historique. Elle requiert une valeur entière qui correspond à ... vous l'aurez compris, la valeur que nous avons récupéré dans le point précédent. Ainsi, il ne reste plus qu'à cliquer sur le bouton "..." et de sélectionner la variable :

 

userid_1

userid_2

 userid_3

  • Dernière étape: déployez votre workflow et vérifiez! Désormais l'utilisateur affiché est bien le bon

workflow_userid_ok

Comments

 

DONZ said:

Merci Didier .. c'est juste ce qu'il me fallait :)

December 5, 2008 5:09 PM

Leave a Comment

(required)  
(optional)
(required)  
Add
L'auteur du site ne peut être tenu responsable des dommages que les informations fournies pourraient entraîner. Tout est cependant mis en oeuvre pour éviter tout désagrément.
Powered by Community Server (Non-Commercial Edition), by Telligent Systems