scieee AI-readable full text Open interactive document viewer

Gestor documental para la documentación oficial de una compañía

Galceran Serrano, Sergi

Abstract

There has been an increase in the use of software related to the digital archive. It is a trend that is growing, and every time you can find more companies that decide to invest in this type of software. This allows for a much faster and more agile management of documents. It also allows for much more controlled and available access to the world of documents.In this project the process thathas been followed for the development of a document manager for a company will be explained. This document manager will allow the upload of the official documents of the company. In the manager you can upload documents that may be restricted, or not, to acertaingroup of users. You can upload documents that require the acceptance of read and understood by the users that the person that uploads the document indicates.

Full text

TRABAJO FINAL DE GRADO TÍTULO DEL TFG: Gestor documental para la documentación oficial de una compañía TITULACIÓN: Grau en Enginyeria Telemàtica AUTOR: Sergi Galceran Serrano DIRECTOR: Toni Oller DATA: 9 de julio del 2019 Título: Gestor documental para la documentación oficial de una compañía Autor: Sergi Galceran Serrano Director: Toni Oller Data: 23 de julio del 2019 Resumen Actualmente ha habido un aumento en el uso de software relacionado con el archivo digital. Es una tendencia que está en crecimiento, y cada vez se pueden encontrar más empresas que deciden invertir en este tipo de softwares. Esto permite que haya una gestión mucho más rápida y ágil de los documentos. También permite tener un acceso mucho más controlado y disponible para todo el mundo de los documentos. En este proyecto se explicará el proceso que se ha seguido para el desarrollo de un gestor documental para una compañía. Este gestor documental permitirá la subida de los documentos oficiales de la compañía. En el gestor se podrán subir documentos que podrán ser restringidos, o no, a un determinado grupo de usuarios. Se podrán subir documentos que requieran la aceptación de leído y comprendido por parte de los usuarios que la persona que suba el documento indique. Title: Documentary manager for the documentation of a company Author: Sergi Galceran Serrano Director: Toni Oller Date: July 9th 2019 Overview There has been an increase in the use of software related to the digital archive. It is a trend that is growing, and every time you can find more companies that decide to invest in this type of software. This allows for a much faster and more agile management of documents. It also allows for much more controlled and available access to the world of documents. In this project the process that has been followed for the development of a document manager for a company will be explained. This document manager will allow the upload of the official documents of the company. In the manager you can upload documents that may be restricted, or not, to a certain group of users. You can upload documents that require the acceptance of read and understood by the users that the person that uploads the document indicates. ÍNDICE Introducción…………………………………………………………………………10 CAPÍTULO 1. OBJETIVOS PRINCIPALES .................................................. 11 1.1. Objetivo del proyecto ...................................................................................................... 11 1.2. Situación actual ............................................................................................................... 11 1.3. Requerimientos básicos ................................................................................................. 12 1.3.1. Documentos Controlados ..................................................................................... 12 1.3.2 Documentos Internos ........................................................................................... 13 1.4. Solución ofrecida............................................................................................................. 13 CAPÍTULO 2. PLATAFORMA DE LA SOLUCIÓN ....................................... 14 2.1 Sharepoint ........................................................................................................................ 14 2.2 Historia ............................................................................................................................. 14 2.2.1 SharePoint Portal Server 2001 ............................................................................. 14 2.2.2 SharePoint Portal Server 2003 ............................................................................. 15 2.2.3 Office SharePoint Server 2007 ............................................................................. 16 2.2.4 SharePoint Server 2010 ....................................................................................... 16 2.2.5 SharePoint Server 2013 ....................................................................................... 17 2.2.6 SharePoint Server 2016 ....................................................................................... 17 2.2.7 SharePoint Online – Office 365 ............................................................................ 18 CAPÍTULO 3. ARQUITECTURA ................................................................... 19 3.1. Modelo de objetos .......................................................................................................... 19 3.1.1 Granja ................................................................................................................... 19 3.1.2 Base de datos de contenidos ............................................................................... 19 3.1.3 Aplicación Web ..................................................................................................... 19 3.1.4 Servicios ............................................................................................................... 19 3.1.5 Colección de sitios ................................................................................................ 20 3.1.6 Sitio ....................................................................................................................... 20 3.1.7 Lista/Biblioteca ..................................................................................................... 20 3.1.8 Modelo de datos ................................................................................................... 20 3.1.9 Listas .................................................................................................................... 20 3.1.10 Columnas .............................................................................................................. 21 3.1.11 Tipos de contenido ............................................................................................... 21 3.1.12 Seguridad y permisos ........................................................................................... 21 CAPÍTULO 4. DESARROLLO DE LA SOLUCIÓN ....................................... 22 4.1 Herramientas utilizadas .................................................................................................. 22 4.1.1 Visual Studio ........................................................................................................ 22 4.2 Diseño de la solución ...................................................................................................... 22 4.2.1 Funcionalidades de la solución ............................................................................ 22 4.2.2 Diseño conceptual ................................................................................................ 23 4.3 Diseño físico .................................................................................................................... 28 4.3.1 Fases de la solución ............................................................................................. 28 4.4 Creación del site de SharePoint..................................................................................... 28 4.4.1 Programación de la solución ................................................................................ 30 4.5 Creación de la solución .................................................................................................. 31 4.5.1 Columnas de sitio ................................................................................................. 31 4.5.2 Contenidos del sitio .............................................................................................. 33 4.5.3 Listas y bibliotecas ............................................................................................... 34 4.5.4 Receptores de evento ......................................................................................... 35 4.5.5 Receptor documentos controlados ....................................................................... 37 4.5.6 Receptor documentos internos............................................................................. 39 4.5.7 Timer Jobs ............................................................................................................ 39 4.5.8 Timer Job de Caducidad de Documentos ............................................................ 42 4.5.9 Timer Job de Envío de Correos............................................................................ 43 4.5.10 Timer Job de Recordatorios ................................................................................. 44 4.5.11 Estructura final del proyecto e instalación ............................................................ 46 CAPÍTULO 5. SOLUCIÓN FINAL ................................................................. 50 5.1 Documentos internos ...................................................................................................... 50 5.2 Documentos controlados ............................................................................................... 52 5.3 Listas de configuración .................................................................................................. 54 5.4 Caducidad de documentos ............................................................................................. 56 5.5 Leídos y comprendidos .................................................................................................. 56 CAPÍTULO 6. CONCLUSIONES ................................................................... 60 Bibliografia…………………………………………………………………………..61 Gestor documental para la documentación oficial de una compañía 7 ÍNDICE DE FIGURAS Ilustración 2.1. Pantalla SharePoint Portal Server 2001 ........................................................... 153 Ilustración 2.2 Pantalla SharePoint Portal Server 2003 ............................................................ 154 Ilustración 2.3. Pantalla Office SharePoint Server 2007 ........................................................... 164 Ilustración 2.4. Pantalla Office SharePoint Server 2010 ........................................................... 175 Ilustración 2.5. Pantalla Office SharePoint Server 2013 ........................................................... 176 Ilustración 2.6. Pantalla SharePoint Online ............................................................................... 187 Ilustración 3.1. Esquema de servidores .................................................................................... 189 Ilustración 4.1 Proceso publicación de documentos.................................................................. 22 Ilustración 4.2 Flujo de funcionamiento para la lista de estado.................................................. 25 Ilustración 4.3 Flujo formulario leído y comprendido...................................................................25 Ilustración 4.4 Flujo funcionamiento restringir documentos........................................................26 Ilustración 4.5 Proceso nuevas incorporaciones........................................................................ 26 Ilustración 4.6 Proceso de recordatorios.................................................................................... 26 Ilustración 4.7 Pantalla central admin......................................................................................... 28 Ilustración 4.8 Pantalla creación de site..................................................................................... 29 Ilustración 4.9 Formulario creación nuevo ítem ..........................................................................31 Ilustración 4.10 Estructura del elemento en formato xml ...........................................................32 Ilustración 4.11 Tabla de Contenido de Sitio.............................................................................. 33 Ilustración 4.12 Formulario creación de lista ..............................................................................34 Ilustración 4.13 Configuración columnas de la lista ...................................................................34 Ilustración 4.14 Formulario creación receptores de eventos .....................................................36 Ilustración 4.15 Código lógica añadir código de documento...................................................... 37 Ilustración 4.16 Código asignación permisos documento ..........................................................37 Ilustración 4.17 Código poner en cola un ítem ...........................................................................37 Ilustración 4.18 Estructura de un TimerJob................................................................................ 38 Ilustración 4.19 Código activación del TimerJob ........................................................................39 Ilustración 4.20 Código creación TimerJob................................................................................ 40 Ilustración 4.21 Código eliminación TimerJob existente ............................................................40 Ilustración 4.22 Código obtención días de la lista de configuración ...........................................41 Ilustración 4.23 Código obtener documentos caducados ..........................................................41 Ilustración 4.24 CamlQuery obtención de documentos activos y caducados ............................42 Ilustración 4.25 Código obtención configuración del correo .......................................................42 Ilustración 4.26 Definición del TimerJob Worker........................................................................ 43 Ilustración 4.27 Código WorkItem de envío de correos ..............................................................44 Ilustración 4.28 Obtención valores de la lista de configuración .................................................44 Ilustración 4.29 Código envío correos del Worker ......................................................................44 Ilustración 4.30 Estructura feature ..............................................................................................45 Ilustración 4.31 Pantalla de la feature ........................................................................................46 Ilustración 4.32 Javascript desactivación link items ...................................................................47 Ilustración 4.33 Javascript redirección al formulario custom ......................................................47 Ilustración 4.34 Pagina en modo edición ...................................................................................48 Ilustración 4.35 Formulario edición de la webpart ......................................................................48 Ilustración 5.1 Biblioteca Documentos Internos......................................................................... 50 Ilustración 5.2 Formulario carga documento.............................................................................. 50 Ilustración 5.3 Formulario propiedades del documento.............................................................. 51 Ilustración 5.4 Error al no rellenar los campos ...........................................................................52 Ilustración 5.5 Biblioteca documentos controlados ....................................................................52 Ilustración 5.6 Formulario propiedades documentos controlados ..............................................53 Ilustración 5.7 Error al no rellenar los campos........................................................................... 53 Ilustración 5.8 Lista configuración recordatorios ........................................................................54 Ilustración 5.9 Lista configuración correos .................................................................................54 Ilustración 5.10 Lista configuración departamentos................................................................... 55 Ilustración 5.11 Lista configuración de empresas ......................................................................55 Ilustración 5.12 Lista configuración idioma .................................................................................56 Ilustración 5.13 Correo caducidad documento........................................................................... 56 Ilustración 5.14 Correo nuevo documento leído y comprendido ................................................57 Ilustración 5.15 Formulario leído y comprendido sin aceptar..................................................... 57 Gestor documental para la documentación oficial de una compañía 8 Ilustración 5.16 Formulario leído y comprendido aceptado ........................................................58 Ilustración 5.17 Lista estado documentos ..................................................................................58 Ilustración 5.18 Correo recordatorio lectura documento ............................................................59 Gestor documental para la documentación oficial de una compañía 9 GLOSARIO UI User Interface, es el medio con que el usuario puede comunicarse con una máquina, equipo, computadora o dispositivo, y comprende todos los puntos de contacto entre el usuario y el equipo. IIS Internet Information Services, es un servidor web y un conjunto de servicios para el sistema operativo Microsoft Windows. XML eXtensible Markup Language, es un lenguaje de marcado similar a HTML. Gestor documental para la documentación oficial de una compañía 16 2.2.3 Office SharePoint Server 2007 Esta es la primera versión que alcanzaría el éxito tras poder ofrecerlo a través de CD’s con licencias de hasta 25 usuarios de forma gratuita. Además, permitía la instalación en una única máquina aparte de otras mejoras de administración de contenidos. Ilustración 2.3. Pantalla Office SharePoint Server 2007 2.2.4 SharePoint Server 2010 Esta versión implicó una mayor integración entre todos los productos de la suite de Microsoft. Además de ello, incluyó mejoras notables como nuevas opciones para Workflows, wikis, perfiles sociales y características de Networking, aparte de mejoras en la interfaz y mayor soporte a un amplio número de navegadores. Gestor documental para la documentación oficial de una compañía 17 Ilustración 2.4. Pantalla Office SharePoint Server 2010 2.2.5 SharePoint Server 2013 Una de las versiones más robustas en la actualidad debido a las mejoras que se presentaron que hicieron que fuera un cambio incremental más que una nueva versión. Se realizaron pequeñas mejoras, arreglo de bugs y mejoras en el cacheo de servicios aparte de una nueva UI. Ilustración 2.5. Pantalla Office SharePoint Server 2013 2.2.6 SharePoint Server 2016 La última versión disponible por Microsoft orientada más a la nube donde la permisividad para la creación de entornos híbridos junto a Office 365 la hacen destacar en este entorno. Gestor documental para la documentación oficial de una compañía 18 Pasa a ser del referente de Microsoft a recibir las actualizaciones tardías en boga a su propio servicio de Office 365. 2.2.7 SharePoint Online – Office 365 Microsoft crea un grupo de software más suscripciones a servicios, donde a los consumidores se les permitía el uso de las aplicaciones de Microsoft Office, espacio de almacenamiento en OneDrive, 60 minutos gratuitos de Skype al mes. Además, a las empresas se les podía proveer de servicios sociales y de emailing con las herramientas Exchange, Skype for Business, SharePoint y, posteriormente, Yammer. En esta versión no encontramos versiones ya que Microsoft va actualizando periódicamente que van actualizando SharePoint. Ilustración 2.6. Pantalla SharePoint Online Gestor documental para la documentación oficial de una compañía 19 CAPÍTULO 3. Arquitectura En este capítulo se define la arquitectura que se desarrollará en la solución. Para ello se detallará cual es modelo de datos que compone la solución. Por último, también se hablará sobre la seguridad y permisos que ofrece. La arquitectura de la solución se basa en los estándares de diseño y programación definidos por Microsoft para el desarrollo y publicación de portales documentales. 3.1. Modelo de objetos SharePoint ofrece un modelo de objetos del lado servidor altamente estructurado. A continuación, se detallarán los diferentes tipos de objetos que podemos encontrar acompañados de una breve descripción. 3.1.1 Granja Una granja es un conjunto de servidores que trabajan de forma integrada para proveer de servicios básicos de SharePoint. Algunos de los principales tipos de servidores que se pueden encontrar son: • Servidor Web • Servidor SQL • Servidor Aplicaciones • Servidor Correo 3.1.2 Base de datos de contenidos Base de datos que contiene los datos de los usuarios para una aplicación web concreta. 3.1.3 Aplicación Web Web almacenada en un servidor IIS. Aloja colecciones de sitios y provee de los accesos mediante credenciales y otras configuraciones a lo largo de las aplicaciones que existan en la granja. 3.1.4 Servicios Aplicación que está ejecutándose en segundo plano en una granja de servidores. Gestor documental para la documentación oficial de una compañía 20 3.1.5 Colección de sitios Conjunto de sitios existentes en una aplicación web y, a su vez ésta, se desglosa en sitios y subsitios de forma jerárquica. 3.1.6 Sitio Web que administra contenidos en su interior: listas, bibliotecas, webparts, etc… 3.1.7 Lista/Biblioteca Objetos que permiten almacenar información (y documentos) en su interior como elementos de lista. Ilustración 3.1 Esquema de servidores 3.1.8 Modelo de datos Un modelo de datos describe piezas de información del mundo real con el que trabajarán nuestras aplicaciones a través de una relación entre las diferentes piezas. En SharePoint existen varias entidades básicas. 3.1.9 Listas Son el mecanismo principal de almacenamiento en la plataforma. Están compuestas por columnas y filas (elementos), y permite crear relaciones entre listas. Gestor documental para la documentación oficial de una compañía 21 3.1.10 Columnas Son el núcleo de construcción en SharePoint. Permite que se le apliquen propiedades básicas (nombre y tipo), de agrupación, lógicas (requerido, único, longitud máxima del campo, valor por defecto) e, incluso, reglas de validación. Pueden ser de diferentes tipos: string, int, Campo calculado a partir de otras columnas, etc. 3.1.11 Tipos de contenido Son una agrupación lógica de una o más columnas. Sirven para añadirles flujos de aprobación, políticas de retención de información y, sobre todo para compartir metadatos comunes entre diversos elementos de una única colección de sitios. Para poder tener una mejor aproximación de estos elementos, podemos hacer una comparación con elementos que se encuentran en SQL. SharePoint SQL Listas Tablas Columnas Columnas Tipos de contenido Conjunto de columnas Elementos Filas 3.1.12 Seguridad y permisos La seguridad es un añadido que ofrece SharePoint de base con respecto a una simple aplicación .NET. Está basada en grupos o usuarios, y roles de permisos que se pueden crear y combinar de múltiples formas. SharePoint, por defecto, genera grupos de Visitantes (lectura), Miembros (edición) y Propietarios (administración) para cada uno de los sitios que se crean. Los permisos se aplican jerárquicamente de arriba a abajo y permiten controlar las acciones de los usuarios sobre los elementos. Adicionalmente, esta jerarquía de permisos se puede romper para cualquier objeto y aplicar permisos específicos para ellos. Gestor documental para la documentación oficial de una compañía 22 CAPÍTULO 4. Desarrollo de la solución En esta segunda parte se procederá a explicar cómo se ha desarrollado la solución. Como se ha explicado anteriormente la solución se desarrolla para un entorno de SharePoint, en este caso la compañía para la cual se desarrolla dispone de un SharePoint On-Premise 2016. Primero se definirán las herramientas que se han utilizado en el desarrollo y, posteriormente se hablará sobre el diseño de la solución. Para concluir se detallará el proceso de creación de la solución, es decir, como se ha desarrollado la estructura y la lógica de la solución. 4.1 Herramientas utilizadas Para el desarrollo de la solución en SharePoint se ha utilizado la herramienta de desarrollo Visual Studio, aparte del propio entorno de SharePoint que el cliente ya tiene. Sobre SharePoint se ha comentado en apartados anteriores sobre esta herramienta. 4.1.1 Visual Studio Es un entorno de desarrollo integrado, el cual soporta múltiples lenguajes de programación y entornos de desarrollo web. En este proyecto en particular se hace uso de la versión 2017. 4.2 Diseño de la solución 4.2.1 Funcionalidades de la solución Las Funcionalidades de la solución son las características detalladas del producto final que permiten conocer qué acciones ofrece el entorno implementado, así como sus posibilidades de parametrización y configuración. El conjunto de estas funcionalidades conforma el alcance final del proyecto acordado. • FS01: Carga y consulta de documentos • FS02: Funcionamiento de listas de estado • FS03: Formulario de leído y comprendido • FS04: Restringir acceso a documentos • FS05: Proceso para nuevas incorporaciones • FS06: Proceso de recordatorios Gestor documental para la documentación oficial de una compañía 23 4.2.2 Diseño conceptual El Diseño Conceptual establece los elementos de alto nivel de la solución implementada y permiten tener una primera visión comprensible para todo el equipo de qué forma se va a crear la solución. En la ilustración 4.1 podemos ver el proceso que sigue la subida de un documento. Ilustración 4.1. Proceso publicación de documentos 4.2.2.1 Carga y propiedades del documento La carga de documentos se realiza mediante el botón de “Nuevo documento” y no se puede realizar masivamente. Esta limitación es para permitir realizar el completado de propiedades correctamente, y por ello, se deben que cargar y completar las propiedades por cada archivo. En caso de no completar todas las propiedades obligatorias, el documento quedará almacenado en la biblioteca, pero sólo será visible para el usuario que ha publicado y quedará desprotegido hasta completar dichas propiedades. Una vez completadas, el propietario deberá hacer “Check-in” del documento para cambiar el estado a protegido y hacerlo visible para el grupo de personas indicado en las propiedades de este. Actúa de igual manera, en caso de que se cierre el formulario sin haber completado todas las propiedades (también quedando desprotegido, es decir, no visible públicamente para el resto de los usuarios). Gestor documental para la documentación oficial de una compañía 24 Si a futuro, se añaden campos de propiedades (columnas a la lista) en la biblioteca, no habrá histórico para dicho campo, sino que se empezará a almacenar desde el momento de la creación del campo. El campo de “Nombre del Documento”, por estándar de SharePoint, no es modificable, por tanto, si se desea modificar el nombre se debe eliminar el erróneo y volver a cargar el archivo correctamente. Si un mismo documento aplica a dos idiomas, se han de publicar dos documentos para generar dos elementos. Ya que la propiedad de “Idioma” aplica al nombre del documento y éste es único. Los Tags que categorizan un documento, se pueden añadir al subir el mismo en el gestor documental, o bien se pueden editar posteriormente en las propiedades de este. Los Tags se configuran como metadatos, por la/las personas que tengan permisos especiales para hacerlo, en el menú cerrado correspondiente de SharePoint (Term Store). Esto significa que no se puede añadir un Tag a un documento que no exista como metadato. Por lo que primero habrá que añadir los Tags deseados como metadatos y posteriormente introducirlos en las propiedades de los documentos. Esto es así para evitar que distintos usuarios den un valor distinto a un mismo concepto, por temas idiomáticos, mayúsculas o errores ortográficos. Las personas que pueden añadir Tags (existentes como metadato) a documentos son las personas con permisos para publicar documentos. Una vez añadidos los tags deseados a los detalles de cualquier documento, estos no se mostrarán en la lista de documentos, para verlos, habrá que entrar en las propiedades del documento. En las propiedades de un documento, a petición de la compañía, no existe un campo de “agrupación”, y, por tanto, no se puede filtrar documentos por un concepto de este tipo. Para los documentos controlados, una vez el usuario recibe el correo que genera el sistema para la validación de los documentos (“Leído y comprendido”), este es redirigido al formulario de “leído y comprendido”. En este formulario se encuentra un enlace al documento y un botón deshabilitado para la aceptación de las condiciones. Dicho botón únicamente se habilita cuando el usuario abre el enlace que del documento que tiene que leer y comprender. Si el usuario rechaza el formulario de aceptación y no responde, queda como “No leído y comprendido”. 4.2.2.2 Listas relacionadas y comportamiento con las propiedades Se han establecido tres listas de selección: Gestor documental para la documentación oficial de una compañía 25 • Lista de departamento • Lista de tipo de documento • Lista de idiomas El acceso a estas listas es restringido, de manera que, sólo pueden acceder las personas que tengan permisos para editarlas. Cada una de estas listas serán definidas por la compañía y corresponderán a una opción del campo seleccionable en la lista principal de Documentos. Adicionalmente, las listas nombradas anteriormente contienen otra columna con la abreviatura de la propiedad, definida por la compañía, que es utilizada para la generación del “Código Alfanumérico” El Código alfanumérico se utiliza para identificar de manera unívoca cada uno de los documentos almacenados en el Gestor Documental. Dicho código estará compuesto por: • Año de publicación (dos últimas cifras) • Abreviatura de tipo documento (de la lista Tipo de Documento) • Abreviatura del departamento (de la lista Departamento) • Abreviatura idioma (de la lista de Idiomas) • Código enumerativo creado automáticamente (incremental de 1) El Código enumerativo se incrementa respecto al código generado anteriormente en la misma biblioteca, independientemente de las demás propiedades, de manera que cada biblioteca puede tener el mismo código enumerativo. El código alfanumérico tiene el siguiente formato: Ejemplo → 18-PO-COM-ES-1 Para que el nombre del documento sea unívoco por cada documento, el nombre final será la unión del Código alfanumérico y el nombre original con el que se ha subido el documento: Ejemplo → 19-PO-COM-ES-4_Política de riesgos.pdf Si un documento tiene una nueva versión, se genera un nuevo código para dicho documento (distinto al que tiene el documento anterior). De tal manera que, para informar a los usuarios que existe una versión de un documento, el promotor del mismo tendrá que activar la propiedad de Vigente No para las versiones anteriores del propio documento y el sistema publica el nuevo documento con esta propiedad activada. 4.2.2.3 Ciclo de vida del documento En caso de que sea un Documento Controlado (siempre que se genere un nuevo documento), se procede a lanzar el proceso de Nuevo Documento, Gestor documental para la documentación oficial de una compañía 32 Ilustración 4.9 Formulario creación nuevo ítem Una vez creado el objeto en la solución, al entrar en el objeto, se puede ver una estructura de xml donde hay diferentes propiedades del objeto. Estas propiedades son: • ID: Es un guid que identificara al objeto de manera única e inequívoca. Esta propiedad no puede ser cambiada, y es asignada de manera aleatoria. • Name: Nombre interno del objeto, también nos permitirá identificar el objeto a través de él. Esta propiedad puede ser modificada antes de crear el objeto, una vez creado no puede volverse a modificar. • DisplayName: Es el nombre que SharePoint utilizará para mostrar el objeto Puede ser diferente del Name y también puede ser modificado antes y después de ser creado. • Type: En esta propiedad definimos el tipo de columna que será. Aquí podemos encontrar diferentes tipos como de usuario, texto, numero, … Una vez creada la columna no se puede volver a cambiar el tipo. • Required: Nos permite definir si esta columna será requerida, es decir, cuando se cree un ítem que contenga esta columna nos obligará a introducir información de todas las columnas que tengan esta propiedad. Esta propiedad se marca como un booleano, si se marca como true la columna será de tipo requerido. Esta propiedad también puede ser cambiada después de ser creada. • Group: Esta es la última propiedad permite agrupar columnas que tengan un mismo grupo, es decir, todas las columnas que tengan un Gestor documental para la documentación oficial de una compañía 33 mismo grupo, SharePoint las agrupará, de tal manera que a la hora de crear una lista o biblioteca podemos indicar a SharePoint que nos muestre todas aquellas que pertenezcan a un grupo en concreto, de tal manera que sea más sencillo a la hora de crear una lista o biblioteca. Ilustración 4.10. Estructura del elemento en formato xml 4.5.2 Contenidos del sitio Una vez que se crearon las columnas de sitio se pudo proceder a crear los contenidos del sitio. Para poder crear contenidos del sitio se tuvo que volver a añadir un nuevo ítem, en este caso se seleccionó la opción de Content Type. En este caso aparecerá una tabla con tres columnas. • DisplayName: Al hacer clic sobre ella nos permite seleccionar una columna que haya sido creada con anterioridad o una columna de las que SharePoint tiene ya predeterminadas. • Type: En esta columna se muestra de que tipo es la columna que hemos seleccionado. Se completa de manera automática una vez elegida la columna. • Required: Nos aparece una casilla que podemos marcar. En el caso que marquemos la casilla hará que esa columna sea requerida en el contenido de sitio que se cree. Gestor documental para la documentación oficial de una compañía 34 Ilustración 4.11. Tabla de Contenido de Sitio 4.5.3 Listas y bibliotecas El siguiente paso que se siguió fue la creación de las listas y las bibliotecas. Al igual que en los casos anteriores se creó un nuevo elemento de tipo List. En este caso aparece otra pantalla que permitirá seleccionar que tipo lista se quiere crear. Para el caso de la lista se seleccionó la opción que viene por defecto, que es una Custom List. Para el caso de la biblioteca se debe seleccionar Document Library. Una vez creados los elementos, se le añadieron los contenidos del sitio, que se crearon previamente, para cada lista o biblioteca. Para añadir los contenidos hay que seleccionar el botón de Content Types y se puede añadir un contenido del sitio que previamente haya sido creado. Gestor documental para la documentación oficial de una compañía 35 Ilustración 4.12. Formulario creación de lista Ilustración 4.13 Configuración columnas de la lista 4.5.4 Receptores de evento Los receptores de eventos son una herramienta que nos ofrece SharePoint que permite poder ejecutar una lógica, programada por el usuario, cuando se realiza una acción sobre algún elemento de SharePoint. Un ejemplo de ello es ejecutar una lógica después que es un elemento se haya añadido o haya sido modificado de una lista en concreto. Para este proyecto se desarrollaron dos Gestor documental para la documentación oficial de una compañía 36 receptores de eventos diferentes asociados a las dos bibliotecas que hay (Documentos controlados y Documentos Internos). Para la creación de un receptor de eventos, al igual que en los casos anteriores hay que añadir un nuevo ítem de tipo Event Receiver. Una vez seleccionado aparecerá un Wizard donde hay que configurar tres parámetros: • El tipo de receptor de eventos: Este parámetro hace referencia a que elemento se asocia el receptor. Los diferentes tipos que podemos encontrar son eventos de ítems de una lista, de lista, de web, de correo y de workflow. En este proyecto se utilizaron del tipo ítems de una lista. • Donde actuará el receptor de eventos: En este parámetro se selecciona sobre que elemento actuará el receptor de eventos. Según el tipo de receptor de eventos podremos elegir el origen donde estará. Por ejemplo, si seleccionamos un receptor asociado a una lista, en este parámetro nos aparecerá una lista con todas las listas disponibles que tenemos en SharePoint. Solo podemos elegir un único parámetro, por lo que para cada elemento debemos crear un nuevo receptor. • Tipo de eventos asociados: Que eventos hacen desencadenar la ejecución del receptor de eventos. El receptor de eventos solo actua en unos eventos en particular (se elimina un ítem de una lista, se añade, se modifica, …), este parámetro determina que eventos desencadenaran la ejecución del receptor. Este valor puede ser múltiple, de manera que podemos asociar diferentes acciones que desencadenen el receptor asociado a un elemento. Gestor documental para la documentación oficial de una compañía 37 Ilustración 4.14 Formulario creación receptores de eventos Una vez se han seleccionado los parámetros ya se puede crear el nuevo receptor. Al crear un nuevo receptor aparecerá un nuevo ítem en la solución, si se entra a ver, se podrá comprobar cómo se ha creado uno o varios métodos. Estos métodos están asociados con las acciones que el usuario ha elegido al crear el receptor. Dentro del método se incluirá la lógica que se ejecutará cuando se realice la acción asociada, esta lógica se programa con el lenguaje .NET. A continuación, se procederá a explicar los dos receptores de eventos creados para el proyecto. 4.5.5 Receptor documentos controlados Este receptor se ha programado para ejecutarse cuando haya un cambio en un ítem. La finalidad del receptor es de generar el código del documento a partir de las propiedades de este. Por otra parte, también rompe permisos de este ítem de manera que solo los usuarios que se han añadido como promotores, personas con acceso al documento, pendientes de leído y comprendido y los promotores. Por último, se pasa el ítem creado a uno de los Timer Jobs que se encargara de enviar los correos de leído y comprendido a los usuarios correspondientes. Para el desarrollo de la lógica de este receptor se utilizó el Nuget de Microsoft.SharePoint.dll que fue necesario para realizar la lógica y poder trabajar con los diferentes elementos de SharePoint. Gestor documental para la documentación oficial de una compañía 38 Ilustración 4.15. Código lógica añadir código de documento En esta primera imagen podemos ver la lógica para poder añadir el código al documento. Para ello primero de todo se obtienen todos los campos que conforman el código mediante su nombre interno. Una vez obtenidos los campos se genera el código y se añade como la propiedad, de nombre “Codedoc” del ítem que se ha creado al subir el documento. Ilustración 4.16 Código asignación permisos documento En esta segunda imagen se encuentra la lógica relacionada con la asignación de permisos del documento. En la primera parte del código se recuperan los usuarios a los que se les han de conceder permisos para poder ver el documento. Una vez recuperados, se rompen los permisos del item del documento (vienen heradados por los permisos que tiene el sitio). Una vez rotos los permisos se eliminan los permisos antiguos y se añaden los usuarios que se han recuperado al inicio. Ilustración 4.17. Código poner en cola un ítem Gestor documental para la documentación oficial de una compañía 39 Por último solo queda enviar los correos a los usuarios, dado que este proceso puede tardar debido a que se puede seleccionar un número muy elevado de usuarios a los que se les enviará el correo, se utlizará un timer job que será el que se encargue de enviar todos los correos. Para ello se utiliza la función de AddWorkItem que nos permite poner en una cola un ítem para que una vez se ejecute el timer job procese todos los usuarios y les envie el correo a todos ellos. 4.5.6 Receptor documentos internos La lógica de este receptor es la misma que se encuentra para el receptor de documentos controlados, a excepción de que en este caso no tenemos usuarios que tengan que marcar el leído y comprendido, por lo que no será necesario pasar el ítem al Timer Job. 4.5.7 Timer Jobs Un Timer Job, es otra de las herramientas que nos da SharePoint y es prácticamente igual que un Receptor de Evento, con la única diferencia que el Timer Job no se ejecuta al desencadenarse un evento, sino se programa para que se ejecute cada cierto tiempo. El tiempo en el que se ejecuta depende de cómo haya sido configurado por el usuario, ejecutándose cada vez que pase el intervalo de tiempo que se le haya configurado. Para el proyecto se han utilizado dos Timer Jobs diferentes. Uno de ellos se utiliza para comprobar la caducidad de los documentos y está configurado para que se ejecute una vez, cada día. El otro, es un Timer Job diferente, está configurado para que se ejecute cada hora, pero en este caso es un Timer Job de tipo Worker. Este Timer Job tiene la particularidad que, al ejecutarse, tiene una cola de elementos que procesar, al iniciarse, mira si en su cola tiene algún elemento pendiente de procesar, en caso positivo ejecuta todos los elementos que tenga pendientes. Este Timer Job es utilizado para poder enviar los correos a los usuarios que se añaden en el receptor que se ha mencionado antes en el punto anterior. Para la creación de un Timer Job hay que añadir un nuevo elemento en la solución, de tipo clase. Una vez se haya creado la nueva clase, hay que añadir la estructura de una clase de un Timer Job. Para ello hay que añadir la definición SPJobDefinition para representar el tipo de clase que crearemos y añadir los tres constructores de la clase. Ilustración 4.18. Estructura de un TimerJob Gestor documental para la documentación oficial de una compañía 40 Una vez creada la clase con la lógica relativa al Timer Job, hay que crear una nueva Feature, que se asociará a esta nueva clase que se ha construido. En esta Feature será donde se configurará el tiempo de ejecución (cada cuanto se ejecuta). Para crear esta Feature se agregará otro ítem de tipo Feature. Una vez creada la nueva Feature, habrá que añadirle un evento receiver, para ello hay que hacer clic con el botón derecho y nos dará la opción. Una vez creada, tendremos una clase con métodos comentados, cada uno de estos métodos son receptores de eventos que corresponden con una acción asociada a la Feature, como cuando se activa la Feature o se desactiva. Los métodos que nos interesan son FeatureActivated que salta cuando la Feature es activada y FeatureDeactivating que se ejecuta al desactivar la Feature. Adicionalmente a estos métodos, crearemos dos funciones nuevas donde pondremos la lógica que se aplicara al activar la Feature y al desactivarla, estos métodos se encargaran de ejecutar la lógica asociada en la clase que se ha creado antes y, hacer que pare de ejecutarse nuestra lógica una vez se desactiva la Feature. Ilustración 4.19 Código activación del TimerJob En esta primera parte al activar la Feature en SharePoint eliminamos otro Timer Job de esta clase que se estuviera ejecutando y creamos uno de nuevo. Se define un nombre de Job, para que posteriormente se pueda recuperar por ese nombre y borrarlo. Gestor documental para la documentación oficial de una compañía 41 Ilustración 4.20 Código creación TimerJob La lógica para crear un nuevo Timer Job, se define el tiempo cada cuanto se ejecutará y se crea un Timer Job, que se asocia con una clase en concreto como la que se ha creado en el anterior apartado. En el caso de los Timers Job de caducidad fueron programados para ejecutarse una vez al dia, entre las 4 y las 5 de la mañana. En esta parte se controla que al desactivar la feature asociada al timer, este deje de ejecutarse. Para ello se llama a la función de DeleteExistingJob que es donde se pondra la lógica para ello. Ilustración 4.21 Código eliminación TimerJob existente Gestor documental para la documentación oficial de una compañía 48 pendiente de leer y comprender, cuando hace clic al documento lo redirige a una página diferente donde le da la opción de darle al leído y comprendido. Ilustración 4.32 Javascript desactivación link ítems Ilustración 4.33 Javascript redirección al formulario custom Para agregar este TypeScript hay que entrar en la biblioteca donde se quiera añadir y se edita la página. Para poder editar la página hay que hacer clic en la rueda de configuración que se encuentra en la parte superior derecha de la página y en el menú seleccionar editar página. Aparece la misma pantalla que había antes, pero se ha dividido en secciones, cada una de estas secciones es un elemento web que se puede editar, en este caso queremos que cuando un usuario haga clic en el nombre del documento y lo tiene pendiente de aceptar el leído y comprendido lo redireccione. Por ello hay que editar el segundo elemento web, haciendo clic en el punto que aparece al lado del cuadrado y haciendo clic en editar elemento web del menú que aparecerá. Ahora aparece otro recuadro con las propiedades del elemento web, hay que ir al apartado de varios y donde aparece vínculo JavaScript se puede añadir una ruta de dentro del SharePoint donde subiremos nuestro fichero que contiene el JavaScript, en el proyecto este archivo se guardó en la carpeta de Style Library, dentro de una carpeta que pone la compañía. Gestor documental para la documentación oficial de una compañía 49 Ilustración 4.34 Página en modo edición Ilustración 4.35 Formulario edición de la webpart Gestor documental para la documentación oficial de una compañía 50 CAPÍTULO 5. Solución final En este apartado se muestra el resultado final de la implementación de la solución en el SharePoint de la compañía, así como su funcionamiento. 5.1 Documentos internos Esta biblioteca es la de documentos internos, para poder agregar un nuevo documento hay que hacer clic en el botón de nuevo y esto abre dos formularios, primero nos aparece uno para subir el documento (Ilustración 5.2) y el después otro para rellenar sus propiedades (Ilustración 5.3). Ilustración 5.1 Biblioteca Documentos Internos Ilustración 5.2 Formulario carga documento Gestor documental para la documentación oficial de una compañía 51 Ilustración 5.3 Formulario propiedades del documento Una vez rellenados los campos se sube el nuevo documento con las propiedades rellenadas. En caso de no rellenar los campos obligatorios (marcados con asterisco) no deja guardar el documento apareceran marcados en el formulario los campos que faltan por rellenar (Ilustración 5.4). Gestor documental para la documentación oficial de una compañía 52 Ilustración 5.4 Error al no rellenar los campos 5.2 Documentos controlados El funcionamiento de esta biblioteca es idéntico al de documentos internos, hay que hacer clic en el botón de nuevo y nos aparecen dos formularios, al igual que en el caso anterior. En este caso en el segundo formulario (Ilustración 5.6) cambian algunas propiedades. Ilustración 5.5 Biblioteca documentos controlados Gestor documental para la documentación oficial de una compañía 53 Ilustración 5.6 Formulario propiedades documentos controlados Ilustración 5.7 Error al no rellenar los campos Gestor documental para la documentación oficial de una compañía 54 También al igual que pasa con el otro formulario, en caso de no rellenar todos los campos obligatorios no nos deja guardar (Ilustración 5.7). 5.3 Listas de configuración A continuación, se muestran las listas de configuración que hay en el proyecto con los diferentes parámetros de configuración de cada una de ellas. En esta primera lista (Ilustración 5.8) se encuentran parámetros relacionados con las configuraciones de días y número de recordatorios. Ilustración 5.8 Lista configuración recordatorios En esta segunda lista (Ilustración 5.9) se encuentra la información referente al envio de correos que se enviarán cuando haya un recordatorio. Ilustración 5.9 Lista configuración correos Gestor documental para la documentación oficial de una compañía 55 En estas listas los usuarios administradores del espacio documental, pueden modificar todos los valores de la lista exceptuando el código o abreviatura. En el segundo tipo de listas se encuentran listas que contienen la información de los campos de selección múltiple que estan al crear un nuevo documento. Estos campos son la empresa, el idioma y el departamento. En estas listas se pueden añadir o eliminar los elementos que hay en ellas. Ilustración 5.10 Lista configuración departamentos Ilustración 5.11 Lista configuración de empresas Gestor documental para la documentación oficial de una compañía 56 Ilustración 5.12 Lista configuración idioma 5.4 Caducidad de documentos Todos los documentos, que al ser creados se les añada una fecha de caducidad en el formulario, esto hace que, según los días que haya configurados en la lista de configuración, se envíe un correo al promotor o promotores del documento. El texto que se envía también se obtiene de la lista de configuración de correos. A continuación, se muestra un ejemplo del correo que recibiría el promotor (Ilustración 5.13). Ilustración 5.13 Correo caducidad documento En el correo que se envia se indica el nombre del documento que va a caducar en el título y en el cuerpo y se añade un link que nos lleva al documento. 5.5 Leídos y comprendidos Al crear un documento controlado, los usuarios que se añadan en el campo del formulario “Personas leído y comprendido” se les envía un correo avisando que tienen pendiente un documento por aceptar. El texto que es envía en el correo Gestor documental para la documentación oficial de una compañía 57 se obtiene también de la lista de configuración de correos. Al igual que pasaba con los recordatorios aparece el título del documento en el título y en el cuerpo del correo. Si el usuario hace clic en el enlace, este le redirigirá al formulario (Ilustración 5.15) donde tendrá que aceptar el leído y comprendido del documento. Otra manera de acceder al formulario es haciendo clic en el nombre del documento en la biblioteca de documentos controlados. Ilustración 5.14 Correo nuevo documento leído y comprendido Para poder marcar la casilla de Leído y comprendido el usuario deberá hacer clic primero en el nombre del documento para que este se abra. Una vez se haya abierto el documento el usuario ya podra hacer clic. Hasta que el usuario no haya abierto el documento la casilla de leído y comprendido no será clicable. Figura 5.15 Formulario leído y comprendido sin aceptar