Las Librerías de Documentos de MOSS 2007 ofrecen la posibilidad de desproteger y proteger documentos (Checkout y Checkin). De este modo, un usuario puede desproteger un documento (Checkout), trabajar sobre dicho documento durante varios días, y finalmente actualizar el documento en MOSS y protegerlo (Checkin). La ventaja de trabajar de este modo es la siguiente:
- Mientras el usuario mantiene el documento desprotegido (checkout), el resto de usuarios sólo podrán acceder al documento en modo sólo lectura, evitando así, que múltiples usuarios modifiquen el documento sobrescribiendo los cambios realizados por sus propios compañeros.
- Una vez el usuario protege el documento (checkin), el resto de usuarios volverán a tener la posibilidad de modificarlo, si así lo requieren. De este modo, se evitan modificaciones descontroladas que puedan involucrar la pérdida de los cambios previos realizados por otros usuarios.
Esta forma de trabajo (desproteger y proteger, también conocida como Checkout y Checkin) no es nueva. En la anterior versión de SharePoint (SharePoint Server 2003 y/o Windows SharePoint Services 2.0) también era posible trabajas así. De hecho, esta es la forma de trabajar en otros entornos, como por ejemplo en sistemas de control de código fuente, como es el caso de Visual Source Safe (para los amantes de Visual Studio) e imagino que será más de lo mismo con Team Foundation Server (TFS), aunque este último no lo he probado.
En cualquier caso, desproteger y proteger documentos en MOSS, tiene alguna otra pequeña ventaja y/o detalles, como por ejemplo:
- Al desproteger un documento (Checkout), por defecto se hace una copia local, dentro de la carpeta Mis Documentos (My Documents). En esta ubicación, se crea una subcarpeta SharePoint Drafts (también conocida como local draft folder), la cual almacenará las copias desprotegidas de documentos de MOSS. Así, mientras mantenemos desprotegido el documento, las modificaciones que hagamos no serán visibles por el resto de usuarios.
Si desprotegimos el documento utilizando una copia local (SharePoint Drafts), las modificaciones que hagamos se realizarán sobre esta copia, y será durante la protección del documento (Checkin) cuando se subirá el contenido actualizado a MOSS (eliminándose la copia local de SharePoint Drafts). Si desprotegimos el documento sin utilizar una copia local, las modificaciones sobre el mismo se realizarán sobre MOSS, aunque esto será transparente para los usuarios, que sólo podrán ver la última versión protegida.
- Al volver a proteger un documento (Checkin) puede asociarse un comentario en dicha protección (ej: resumen o descripción de la modificación realizada en el documento). Esta información adicional o metadatos, puede resultar de utilidad en el seguimiento de cambios de los documentos almacenados en MOSS.
Aprovecho para comentar una duda típica ¿Dónde está local draft folder? ¿En qué ubicación está la local draft folder de SharePoint? Como comentamos, se trata del subdirectorio SharePoint Drafts, que encontraremos en Mis Documentos (My Documents) de nuestro PC, es decir, del PC que utilizamos en la desprotección.
Por defecto, no es necesario desproteger un documento para poder editarlo. Por lo tanto, sería posible abrir un documento de una librería de documentos de MOSS, modificarlo libremente, y guardar los cambios directamente sobre MOSS (sobrescribiendo), todo ello sin necesidad de desproteger el documento y de volverlo a proteger. Sin embargo, si el usuario lo desea, puede desproteger el documento manualmente.
En caso de que sea necesario, también es posible obligar a desproteger (checkout) los documentos antes de poder editarlos. Esto se configura a nivel de Librería de Documentos, por lo cual, cada Librería de Documentos puede tener una configuración distinta al respecto. Para realizar esta tarea de configuración, deberemos editar las propiedades de la Librería de Documentos (Settings -> Document Library Settings), como se muestra en la siguiente pantalla capturada.
Seguidamente, utilizaremos la opción Versioning settings, como se muestra en la siguiente pantalla capturada.
Y por fin, encontramos la opción que buscamos, Require Check Out. Para obligar a desproteger (checkout) los documentos antes de que puedan ser editados, será necesario establecer la opción Require Check Out al valor Yes, como se muestra en la siguiente pantalla capturada.
Realizada esta configuración, habremos conseguido nuestro objetivo. Ahora, al abrir un documento de la Librería de Documentos que acabamos de configurar, sólo tendremos dos opciones:
- Abrir el documento en modo sólo lectura.
- Desproteger (Checkout) el documento y editarlo.
A continuación se muestra una pantalla capturada de estas dos opciones.
Por último, nos queda hablar del Versionado. El Versionado facilita el almacenamiento de múltiples versiones de los documentos en una Librería de Documentos de MOSS, de forma que se consiga mantener un histórico de versiones o cambios. En muchas ocasiones, resulta de gran utilidad habilitar juntos el Versionado y la obligatoriedad de Desprotección y Protección de Documentos. MOSS 2007 permite tres tipos de Versionado:
- None. Implica que no se utiliza el Versionado, por lo cual, las nuevas versiones sobrescribirán a las anteriores. No se mantiene histórico de ningún tipo.
- Major Versions Only. Utiliza un método de versionado sencillo, en el cual se pueden almacenar múltiples versiones de un documento, las cuales se numerarán con valores numéricos enteros (ej: 1, 2, 3, etc.). Para optimiza la gestión del almacenamiento, puede configurar el número máximo de versiones que desean almacenarse.
En caso de utilizar Aprobación de Contenidos (Content Approval), será posible configurar qué usuarios se desea que vean las versiones de borrador, pudiendo elegir entre todos los usuarios, sólo los usuarios con permiso de edición, o sólo los usuarios que pueden aprobar elementos.
- Major and Minor Versions. Utiliza un método de versionado más complejo, permitiendo el almacenamiento de versiones definitivas (Major Versions, ej: 1.0, 2.0, 3.0, etc.) y versiones de borrador (Minor Versions, ej: 1.1, 1.2, 1.3, 2.1, etc.). Para optimiza la gestión del almacenamiento, puede configurar el número máximo de versiones que desean almacenarse.
Se puede configurar qué usuarios se desea que vean las versiones de borrador (Minor Versions), pudiendo elegir entre todos los usuarios, sólo los usuarios con permiso de edición, o sólo los usuarios que pueden aprobar elementos (esta última opción sólo en caso de utilizar Aprobación de Contenidos - Content Approval).
Para habilitar o deshabilitar el Versionado en una Librería de Documentos, seguiremos los mismos pasos que vimos anteriormente para habilitar la obligatoriedad del Checkout y Checkin, aunque las opciones que manejaremos son otras, como se puede observar en la siguiente pantalla capturada:
Principalmente, podemos configurar:
- Qué tipo de versionado deseamos (No versioning, Create major versions, Create major and minor (draft) versions).
- Opcionalmenet, limitar el número de versiones almacenadas (limitar el número de major versions, y limitar el número de borradores - drafts).
- Configurar que usuarios pueden ver los borradores (Any user who can read ítems, Only users who can edit ítems, Only users who can approve items).
Una vez que hemos habilitado el Versionado sobre una Librería de Documentos, es posible mostrar las versiones existentes para cualquier documento, con la opción Version History del menú contextual, como se muestra en la siguiente pantalla capturada.
Por ultimo, comentar que también podemos configurar la Aprobación de Contenidos - Content Approval. Esta funcionalidad, permite que al publicar una nueva versión definitiva (major version), se requerida su aprobación por un usuario con permisos de aprobación. De este modo, un autor de contenidos, puede estar trabajando sobre un documento, generando múltiples versiones de borrador. Finalmente, el autor solicita la publicación de su borrador. En este momento, dicha versión pasa de estar en estado borrador (draft) a estado pendiente (pending), siendo necesario que un usuario apruebe dicho documento para que finalmente alcance el estado de versión definitiva (major version).