Obteniendo el correo electrónico de un campo de tipo Persona sin programación en SharePoint 2007

Sucede que algunos clientes en ocasiones buscan tener cosas que desde el punto de vista técnico tendemos a pensar que no tienen sentido, sin embargo para nuestro cliente si y si así es el caso, para nosotros también.

Problema

Solicitaron visualizar en los elementos de una lista el nombre y correo electrónico de un campo de tipo persona y claro, lograrlo sin programación y para ayer.

Solución

Convertir a DataView WebPart la página de AllItems.aspx de la lista en cuestión para agregar una columna nueva y con XSLT buscar en el contenido del campo de tipo Persona el correo electrónico para mostrarlo. Sucede que un campo “Field” de tipo Persona almacena en su interior contenido HTML para mostrar un hipervínculo que apunta al perfil o My Site del usuario y dentro de este contenido se encuentra el correo electrónico. A continuacion un ejemplo del contenido del campo Persona.

<nobr><span><A HREF=”/Global/temp/_layouts/userdisp.aspx?ID=26″>haaron.gonzalez</A><img border=”0″ height=”1″ width=”3″ src=”/_layouts/images/blank.gif”/><a href=’javascript:’ onclick=’IMNImageOnClick();return false;’ class=’ms-imnlink’><img name=’imnmark’ title=” border=’0′ height=’12’ width=’12’ src=’/_layouts/images/blank.gif’ alt=’No presence information’ sip=‘haaron.gonzalez@splatin.com’ id=’imn_10,type=smtp’/></a></span></nobr>;

He marcado en verde los datos que me interesa obtener. Lo que haremos es utilizar XSLT para buscar dentro del HTML el atributo “sip” el cual retorna el correo electrónico que deseamos.
El resultado es:

<xsl:value-of select= ‘substring-before(substring-after(@Persona, concat(“sip=”,$dvt_apos)), $dvt_apos)’ disable-output-escaping=”no”/>

Veamos entonces como lograr lo que nos pide el cliente

1. Cargamos SharePoint Designer 2007 y abrimos el sitio donde se encuentra la lista en cuestión.

clip_image001

2. Convertimos la lista en DataView WebPart dando clic derecho sobre la lista y seleccionando la opción Convert XSLT Data View

image

3. Agregamos una nueva columna en el DataView WebPart, nos posicionamos justo despues del campo Persona y damos clic derecho para cargar el menu contextual y elegir la opcion.

image

4. Dentro del HTML de la pagina pegamos el código XSLT que busca dentro del campo Persona el correo electrónico. También no olvides agregar el título de la columna como “Correo electrónico”

image

Y listo damos check in al archive AllItems.aspx y probamos nuestra solución.

image

Suerte!

Originalmente publicado en msmvps.com

Publicado por

haarongonzalez

Consultor de tecnología de la información dedicado a entregar soluciones de misión crítica para organizaciones donde la colaboración, la comunicación y el conocimiento son su inversión estratégica. Reconocido como Microsoft Most Valuable Professional en ASP / ASP.NET desde 2005 y SharePoint Server desde 2009. Interés: Satisfacción del Cliente, Excelencia Operacional, Desarrollo de Personas, Ingeniería en Pre-Ventas Especialidades: Colaboración, Gestión de Contenidos Web, Gestión del Conocimiento, Gestión de Contenidos Empresariales, Gestión de Formularios, Intranet, Extranet, Portales, Implementaciones de entornos on-premises de SharePoint, Arquitectura de soluciones, Soporte Especializado en SharePoint y Office 365 Tecnologías: SharePoint todas las versiones, Office 365, Nintex, DocuSign, Sharegate, PowerApps, Flow, SPDocKit, InfoPath, .NET, C #, JavaScript, CSS, Skeleton Framework, Office 365 PnP

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *