sábado, 2 de junio de 2012

¿Cómo aplicar filtros en un campo lookup de SharePoint 2007?

El propósito de este artículo es hacer una demostración de aplicación de filtros en un campo lookup de SharePoint 2007. Para llevar adelante esta tarea trabajaremos con el proyecto de CodePlex llamado SharePoint Filtered Lookup Field que pueden acceder en este enlace: http://filteredlookup.codeplex.com/.

Las características descriptas en CodePlex para este proyecto son:

  • Lookup sobre listas que estén este sitio o en otros sitios de la misma colección
  • Filtro de datos utilizando vistas o CAML
  • Mismo look & feel que los campos estándar de SharePoint

Un punto importante a tener en cuenta es que este tipo de columna es adicional a los ya existentes en SharePoint, no se trata de una mejora al campo estándar. Por lo tanto, si lo que se quiere es aplicar los filtros en una lista ya existente, se necesita crear un campo nuevo y copiar los datos desde el campo viejo. Luego se puede eliminar el campo viejo.

En este enlace se puede encontrar información sobre la licencia de este producto: http://filteredlookup.codeplex.com/license

A continuación se detalla el paso a paso de instalación y uso.

Instalación

El proyecto está armado en un paquete de instalación de Windows que usa el instalador de soluciones de SharePoint. El primer paso es descargarlo desde: http://filteredlookup.codeplex.com/downloads/get/70292

image

Luego crear una colección de sitios de prueba y ejecutar el instalador:

image

image

image

image

image

image

 

Verificación de Instalación

Antes de empezar a utilizar el producto, verificar que esté correctamente instalado. Para ello crear una columna en una lista para verificar que exista este nuevo tipo de columna:

image

image

 

Configuración

Probar con un ejemplo sencillo. En este caso existen dos listas:

  • Una lista llamada Temas Pendientes (lista de tipo seguimiento de asuntos de SharePoint)
  • Otra lista de Clientes (con un campo estado que indica si el cliente esta activo o no)

La lista de tipo de Clientes posee 5 clientes, dos de ellos en estado inactivos:

image

Crear una vista que muestre únicamente los clientes activos:

image

En la lista de Temas Pendientes crear un campo fileteed lookup hacia la lista de Clientes, pero que únicamente muestre los clientes activos:

image

image

La configuración es tan sencilla como seleccionar la opción “Apply List View Filter” y luego elegir la lista de Activos.

 

Prueba de uso

Realizar una prueba: el primer paso es generar un alta en la lista de Temas Pendientes. Observar como sólo se muestran los 3 clientes activos:

image

image

Hacer clic sobre “Cliente 1” para probar su correcto funcionamiento:

image

Verificar qué sucede si Cliente 1 pasa a estado inactivo:

image

Al intentar modificar el tema pendiente que tenía asignado el tema 1, me permite modificar el registro con el Cliente que ahora está inactivo. Este era el funcionamiento que al menos yo esperaba:

image

Por supuesto si intento crear un nuevo tema pendiente, la opción de Cliente 1 ya no aparece:

image

Una prueba adicional es crear un vista que agrupe por este campo, para verificar que funcione de la misma forma que el campo estándar de SharePoint:

image

 

Conclusión

Ese proyecto de CodePlex permite agregar una funcionalidad muy necesaria en SharePoint, haciendo que las aplicaciones sean más amigables y permitan agregar algo de lógica de negocio. El producto funciona correctamente y es estable.

Personalmente, como contra le veo que utiliza un nuevo tipo de campo que no es el estándar de SharePoint, pero si pensamos que SharePoint ofrece la creación de este tipo de campos como forma de extender el estándar, no lo veo mal.

Por otro lado, el código fuente es público, lo cual siempre es importante, en caso que su autor discontinúe el mantenimiento del mismo o no brinde más soporte: http://filteredlookup.codeplex.com/downloads/get/70293.

También existe una versión para SharePoint 2010, que si bien escapa al alcance de este artículo su prueba de funcionamiento y su posibilidad de migración, da una idea de que es posible seguir usando el producto cuando cambiemos de versión: http://sp2010filteredlookup.codeplex.com/.

0 comentarios:

Publicar un comentario