Fecha Incorrecta en Eventos de SharePoint 2010

Resulta curioso que, en un blog que nace con la idea de hablar de mis experiencias con WP 7.5 la primera entrada sea sobre SharePoint 2010 y el tipo de Contenido Evento. En fin, vamos al grano.

Por ubicarnos un poco. SharePoint permite la utilización de Tipos de Contenido. Un tipo de contenido, al menos según nos cuenta Microsoft en su página oficial, permite modelar diferentes documentos que, si bien pueden estar relacionados entre sí, se crean, usan, comparten y conservan de diferentes maneras. Dichos tipos de contenido disponen, a su vez de cierta información relacionada llamada metadatos. Así pues, una imagen puede ser un tipo de contenido definido en tu colección de sites de SharePoint 2010. Pero explotarla puede hacerse algo complicado si no defines unos pocos metadatos (muchos formatos de imagen ya contienen gran cantidad de información /metadatos) como, por ejemplo: cuándo fue tomada, dónde, quién sale ahí, con qué cámara se tomo, la configuración de la cámara con la que dicha foto fue tomada. Por ejemplo, el formato Exif es un buen ejemplo de ello.

Hace unos días, en el trabajo, nos surgió uno de esos problemas curiosos que todos ansiamos que le ocurran a otro.

Resulta que habíamos creado una lista personalizada y la configuramos para hacer uso de un tipo de contenido que hereda de “Evento“. Evento es el tipo de contenido predefinido por SharePoint para modelar entradas de un calendario. Escogimos heredar de dicho tipo de contenido ya que proporciona mucha potencia a la hora de establecer eventos recurrentes (como reuniones, o sucesos que tienen que repetirse en el tiempo de acuerdo a determinado calendario) y, además añadimos cierta información interesante para el sistema que estábamos construyendo.

Hasta aquí todo perfecto.

Sin embargo, la sorpresa llegó cuando empezamos a probar dicha lista en una configuración similar a la que tendría una vez saliera a producción para su utilización por parte del cliente. Resulta que el cliente en cuestión se encuentra en una Zona Horaria (UTC -5 Eastern Time. US & Canada).

Empezaos a crear eventos y a registrar sus horas (lo bueno de los planes de pruebas es que, si lo tienes todo bien detallado te ahorras muchas idas y venidas).

Bien… Evento 1, Día 1, comienza a la 1 AM y finaliza 1 hora después. ¡Registrado!

Sin embargo, cuando miramos la hora que nos muestra la lista. ¡Cinco horas antes de lo previsto! ¡Vaya! No puede ser que SharePoint almacene en Universal Time Zone para luego olvidarse de mostrarlo bien. ¿No?

Doble click sobre el evento y… ¡Más sorpresa! La hora se muestra bien en el formulario de visualización /edición.

Evento diario creado en una lista MOSS 2010 con UTC -5
Puede verse diferencia en las horas de inicio en la lista y en el formulario

Bueno, basta de aburrir al personal. ¿Cuál es la conclusión? Parece (y lo tengo pendiente de confirmar) que la lista “Calendario” está preparada para hacer la conversión cuando muestra las horas en cualquiera de sus formatos (ya sea calendario, ya sea una vista tabular). Sin embargo, no lo hacen así las listas personalizadas de SharePoint.

¿Bug o diseño? Bueno, en cualquier caso la solución más rápida fue sustituir nuestra vista personalizada por un calendario con una vista tabular personalizada también para ajustarla a las necesidades del usuario.

Evento mostrado en el calendario y en el formulario

Puede apreciarse que no hay diferencia de fechas entre formulario y calendario

Cuando pueda verificar la suposición, miraré si otra opción es utilizar un XSLT personalizado para adaptar la hora … Me lo dejo para otro post.

Anuncios