23 de diciembre de 2009

Sharepoint: Consultas en CAML para Páginas de Publicación

En Sharepoint, hay unas páginas que se pueden crear para la publicación de contenidos de forma especial. Se crean con la feature de Publicación de Páginas y funcionan genial!! De forma automática, Sharepoint se encarga de realizar el filtrado de las páginas que se pueden ver según la fecha de inicio programada ("Scheduling Start Date") y fecha fin programada ("Scheduling End Date"). La dificultad surge cuando quieres hacer consulta a la librería de páginas para consultar cuales se encuentran vigentes: en este caso, debes filtrar del listado de páginas las que se encuentren vigentes, para lo cual debes incluir explicitamente los filtros correspondientes, como ocurre cuando realizar una consulta y obtienes los datos vía listadoPaginas.GetItems(consulta).

Para realizar la consulta, sin duda alguna, lo mejor es utilizar CAML.Net, que te permite realizar las consultas que necesites en las listas de Sharepoint (recordad que las páginas, pertenecen a la lista de páginas de un Sitio). Pero hay que tener en cuenta, que estas columnas son de un tipo particular de datos: PublishingScheduleEndDateFieldType y que hay que cuidar los nulos, porque tienen 2 características importantes: Inmediatamente y Nunca. El SDK dice que se utilizan los valores de fecha especial, pero no se comporta, en la realidad, exactamente de esta manera.

<Where>

   <And>
      <Or>
         <Leq><FieldRef Name='PublishingStartDate' /><Value Type='DateTime'><Today /></Value></Leq>
         <IsNull><FieldRef Name='PublishingStartDate' /></IsNull>
      </Or>
      <Or>
         <Geq><FieldRef Name='PublishingExpirationDate' /><Value Type='DateTime'><Today /></Value></Geq>
         <IsNull><FieldRef Name='PublishingExpirationDate' /></IsNull>
      </Or>
   </And>
</Where>

Hay que tener cuidado con el Content Query Web Part, porque no funciona correctamente con este tipo de dato. ¿El motivo? A saber, la cosa es que no funcionan correctamente.

No hay comentarios:

Publicar un comentario