8 octobre 2009

SHAREPOINT : Convertir LookupField en SPUser

Lors des traitements SharePoint, il est souvent utile de récupérer les informations d'un utilisateur.

Cela peut se faire très facilement en recherchant les utilisateurs dans les groupes applicatifs SharePoint.
L'objet SPUser du modèle SharePoint regroupe toutes les informations nécessaires concernant un utilisateur (login, preferredname, mail).

Mais de nombreuses personnes remontent sur les forums la difficulté de convertir un utilisateur placé dans un champ "Personne ou groupe" d'une liste en cet objet SPUser.
Le besoin peut apparaitre par exemple si vous souhaitez envoyer un mail à toutes les personnes placées sur une liste de paramètrage.
Pour cela, il faut récupérer leur mail et donc l'objet SPUser.

Le code C# suivant permet de reconstruire un SPUser à partir de la valeur présente dans le champ "Personne" de la liste.
   SPFieldUserValue fieldValue = field.GetFieldValue(listItem["NomColonne"].ToString()) as SPFieldUserValue;
   if (fieldValue != null)
   {
        SPUser UserResponsable = fieldValue.User;
   }

Il suffit seulement de remplacer "NomColonne" par le nom de votre colonne de type "Personne" et vous récupérez ainsi les données de l'utilisateur.

Bon dév.

Aucun commentaire:

Enregistrer un commentaire