Crear Query CAML a partir de un parámetro variable

Hace unos meses ya comente la existencia de algunas herramientas que nos permiten realizar Querys sobre listas SharePoint de manera sencilla, entre ellas CAMLQueryBuilder de u2u. Recientemente me ha tocado trabajar con ella y la verdad que para ser una herramienta gratuita es bastante completa…pero también tiene sus agujeros.

Tratando de realizar un filtrado en una de nuestras listas a partir de un parámetro variable, en lugar de un valor concreto, hemos tenido bastantes complicaciones, ya que dicha herramienta no nos permitía introducir un parámetro definido externamente por código. En concreto queríamos filtrar un campo de nuestra lista llamado “Dia” de tipo DateTime, para poder volcar aquellos elementos que coincidieran con una fecha variable seleccionada a partir de un calendario. Dado los problemas que nos ocasionaba que el campo de nuestra lista fuera de tipo DateTime (ya que no sabíamos exactamente con que formato interpreta SharePoint estos elementos) decidimos cambiarlo a tipo Texto. De esta manera conseguimos que nuestra consulta funcionara de la siguiente manera:

SPQuery oQueryHoras = new SPQuery();
        oQueryHoras.Query = "<Where><Eq><FieldRef Name=’Dia’/><Value Type=’Text’>" + CalendarioTrabajo.SelectedDate.ToString("dd/MM/yyyy")
            + "</Value></Eq></Where>"; //Pasamos el parámetro (fecha seleccionada en el calendario) transformado a formato "dd/MM/yyyy" y utilizamos (+) para concatenar

Por otro lado, cuando creamos vistas personalizadas en SharePoint, podemos hacer filtros para que cada usuario sólo pueda ver aquellos elementos de una lista que han sido creados o modificados por el. Para ello lo único que tenemos que hacer es indicar:

filtrouserme

Pero si realizamos este mismo filtrado mediante una Query CAML, esto no funciona. ¿Cómo solucionamos esto? Buscando información en la red encontré dos sitios donde explicaban como tenía que ser nuestra Query para que esto funcione correctamente:

http://www.davehunter.co.uk/Blog/Lists/Posts/Post.aspx?ID=123

http://vspug.com/mirjam/2009/07/16/creating-a-custom-view-that-filters-on-the-current-user-or-me/

Y el código necesario es el siguiente siguiente:

<Where><Eq><FieldRef Name=’Author’/><Value Type=’Integer’><UserID Type=’Integer’/></Value></Eq></Where>

De forma que nuestra consulta final, que filtra por dia y persona, quedó de la siguiente manera:

"<Where><And><Eq><FieldRef Name=’Dia’/><Value Type=’Text’>" + CalendarioTrabajo.SelectedDate.ToString("dd/MM/yyyy")
            + "</Value></Eq><Eq><FieldRef Name=’Author’/><Value Type=’Integer’><UserID Type=’Integer’/></Value></Eq></And></Where>";

Espero que os haya resultado de ayuda esta información 😉

Página de administración de Web Parts

Muchas veces, trabajando en el desarrollo de Web Parts personalizados, nos encontramos con el problema de que al intentar implementarlos en un sitio SharePoint no podemos debido a algún tipo de error. Además, una vez implementados, tampoco podemos eliminarlos para corregir dicho error ya que no podemos acceder directamente hasta ellos. ¡¡O eso es lo que pensamos!!

La mayoría de la gente que comienza a desarrollar aplicaciones para SharePoint no sabe que existe una página de mantenimiento de Web Parts, que nos permite gestionar el mantenimiento de nuestra página de elementos web y por lo tanto también nos permite eliminar aquellos elementos que nos están ocasionando problemas. Por defecto esta página no esta visible para ninguno de los usuarios del sitio. Para acceder a ella lo único que tenemos que hacer es añadir al final de la URL, que nos esta dando problemas, el siguiente texto " ?contents=1 ", de manera que entraremos a una página similar a la que se observa en la imagen y que nos va permitir gestionar de manera sencilla todos los elementos web de nuestra página en cuestión.

 

image

Microsoft Web Platform Installer 2.0

Con la mejora de la experiencia de usuario como tema central, el pasado 24 de Septiembre tuvo lugar en Madrid el evento reMIX, donde se vieron algunas de las novedades sobre Silverlight 3, Expression 3, desarrollo para Windows 7 y mucho más. Toda la documentación del evento: presentaciones, aplicaciones.. están disponibles aquí ¡¡para nuestro disfrute!!.

logoremix

En mi opinión, una de las cosas más interesante que se presento en dicho evento es Web Platform Installer 2.0. Se trata de un paquete gratuito elaborado por Microsoft y soportado en 9 idiomas, que contiene las partes o componentes fundamentales de una plataforma Web de Microsoft. Incluye IIS (Internet Information Services), SQL Server 2008 Express Edition, .NET Framework, y Visual Web Developer 2008. Además permite instalar aplicaciones Web gratuitas para blogs, gestión de contenidos, etc, e incluso PHP, como se puede observar en las siguientes imágenes:

image image image

Por lo tanto se trata de un producto especialmente útil para la comunidad de desarrolladores o para todas aquellas personas que se quieran iniciar en el mundo del desarrollo web. Ya que esta permite instalar y personalizar el software necesario para desarrollar o desplegar sitios y aplicaciones web de manera sencilla. Básicamente, la herramienta analiza que tiene el sistema instalado, y nos muestra todos aquellos componentes que no están en nuestro equipo y que podemos instalar, evitando tener que hacerlo manualmente.

Si todavía no os lo habéis descargado desde aquí os animo a que lo hagáis. 😉