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.

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 :


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