SharePoint 2010. Funciones de negocio con el UserProfile API

Ya hemos hablado en otras ocasiones de los Perfiles de Usuarios, hoy toca entrar un poco en detalle en la clase que define un perfil de usuario y la funcionalidad que nos expone.

La clase UserProfile nos permite trabajar con los datos un perfil de usuario, tanto para poder crearlo, modificar su información u obtener sus valores. Por ejemplo, nuestro departamento de RRHH quiere lanzar unas evaluaciones internas entre el personal y necesita que cada persona evalué a sus compañeros, que cada responsable evalúe a sus subordinados y que, a su vez, cada uno evalúe a su responsable directo. Para esto, prepararemos unos Web Parts que muestren a quien tienes que evaluar, con un enlace a la encuesta que le corresponde a cada uno.

El primer Web Part, mostrará los compañeros del usuario actual con un enlace a la encuesta, para esto, tenemos que poder obtener los compañeros del perfil de usuario actual.

GetPeers

//Instanciamos un Contexto de Servicio para el UserProfileManager
SPServiceContext serviceContext = SPServiceContext.GetContext(SPContext.Current.Site);
UserProfileManager myUpm = new UserProfileManager(serviceContext);
 
//Obtenemos el Perfil del usuario actual
var profile = myUpm.GetUserProfile(SPContext.Current.Web.CurrentUser.LoginName);
 
//Tenemos un método GetPeers, que nos devuelve los perfiles de usuario que comparten Manager
var peers = profile.GetPeers();

El segundo Web Part, deberá de mostrar los perfiles que reportan al usuario actual, usando el método siguiente:

GetDirectReports

SPServiceContext serviceContext = SPServiceContext.GetContext(SPContext.Current.Site);
UserProfileManager myUpm = new UserProfileManager(serviceContext);
 
var profile = myUpm.GetUserProfile(userName);
 
//Obtiene los perfiles de usuario que tienen como manager el usuario actual
var reports = profile.GetDirectReports();

Nos queda un Web Part que nos muestre quien es nuestro responsable y para eso tenemos el método GetManager.

En cada Web Part, se ha puesto un enlace a la encuesta a la que le pasamos por parámetro a quien se va a encuestar de la sigiuente forma:

http://sharepoint/lists/encuesta/NewForm.aspx?persona=dominio\usuario

Editando el formulario NewForm.aspx, añadimos codigo Javascript para que lee el parámetro de la url y establezca el campo Encuestado, que es de tipo persona, con ese valor.

Cabe destacar la importancia de los datos de los perfiles y que se mantengan actualizados y al día con la información de la empresa, esto nos permitirá generar procesos de negocio como este ejemplo.

 

Saludos a todos…

Published 29/1/2012 12:05 por Alberto Diaz Martin
Comparte este post: