Parte II: Sharepoint

Según Microsoft, "las organizaciones usan Microsoft SharePoint para crear sitios web. Se puede usar como un lugar seguro donde almacenar, organizar y compartir información desde cualquier dispositivo, así como acceder a ella."

Pero es bastante más que eso.

SharePoint es algo así como el núcleo de todo el almacenamiento que existe en los sitios, grupos y equipos de Teams. Todo lo que contenga archivos, puede ser visto (con el permiso adecuado) dentro de alguna página con el nombre sharepoint.

Se hace evidente en el momento que abrimos la sección de Archivos dentro de algún equipo de Teams, y una de las opciones es "abrir en SharePoint".


Los que administran Microsoft 365 confirmarán que muchos de los permisos y configuraciones aplicados en SharePoint, también abarcan One Drive así como que, desde uno de los centros de administración, se pueden administrar opciones del otro.


Resumiendo: SharePoint será el medio de almacenamiento que utilizaremos para guardar los archivos para el gestor documental. Gracias a eso, aprovecharemos algunos de los beneficios de trabajar dentro de SharePoint (historial de versiones, Bibliotecas de contenido, listas, páginas web...).

 

Preparando SharePoint

Antes de trabajar con las aplicaciones en Power Apps, debemos tener un espacio donde almacenaremos la documentación. Es por eso que el primer paso es crear un Sitio de SharePoint. Y luego, tener configurada de la mejor forma posible a ese sitio.

(en la vida real el proceso fue más desordenado, no se preocupen si las cosas no salen como las planean.)

Primero, vamos a crear un conjunto de Bibliotecas y listas de acuerdo a cómo tenemos que separar la información:

Por un lado, sabemos que los documentos que se cargan al sistema, tienen que ir a una Biblioteca que va a recibir archivos .docx, .xlsx; es decir, los archivos que van a poder editarse. Vamos a llamar a esta biblioteca "Edición".

Después habrá otra biblioteca que tendrá contenido similar, es decir, los documentos como los anteriores, pero ya corregidos y aprobados. Nadie hará ediciones en esta carpeta (como mucho algunos administradores podrán borrar contenido, pero los documentos no deberían modificarse). Los documentos que llegarán a esta biblioteca serán todos en formato PDF. Llamaremos a esta biblioteca "Visualización".

De paso, y porque sabemos que en algún momento habrá que generarla de acuerdo a los lineamientos dados en el capítulo anterior, vamos a crear una lista para incorporar a los usuarios aprobadores de documentos.


Biblioteca Edición:

En esta Biblioteca llegarán documentos para editar. Esos archivos tendrán propiedades, y la mejor forma de asignar esas propiedades es definirlas mediante columnas dentro de la Biblioteca. Así que usaremos columnas ya existentes y además, crearemos nuevas columnas con estas especificaciones:

    - Título (ya existente): Si bien tenemos la columna de Nombre, esta identifica el nombre del archivo, por ejemplo documento.docx. La columna de Título es el nombre real que lleva dentro ese archivo, por ejemplo "Documento para la gestión de incidencias".

    - Fecha de Emisión / Vigencia Desde / Válido Hasta: Las tres columnas deberán ser de tipo Fecha y hora. No hay una configuración especial o diferente a la estandard al momento de generarlas.

    - Tipo de documento: Esta columna será de tipo Elección. Esto es porque los tipos de documentos los tendremos mediante un menú desplegable. Esas opciones vamos a escribirlas de a una por línea cuando generamos la columna. También que tenemos que tener en cuenta que debemos vaciar la opción Valor predeterminado porque no es necesaria. En el ejemplo que sigue a continuación les muestro cuatro opciones que agregué:

 

Como comentario adicional, si el día de mañana quieren renombrar, por ejemplo, el valor "ANS", reemplacen esa línea por la nueva. Lo que ocurrirá es que todos los archivos que tenían ANS de propiedad, tendrán el nuevo nombre de forma automática.

    - Número de Tipo de documento: Esta columna debería ser de tipo número. Pero ocurre lo siguiente: según el lineamiento de la app, ese número debe tener 5 caracteres, o sea, un número de 5 dígitos que, si el número del tipo de documento es "1", debería verse como "00001". Si la columna fuese numérica, sería imposible agregar los ceros delante. Por eso hay que tratarla como si esos números fueran Una línea de texto. La corrección importante a tener en cuenta es que el número máximo de caracteres debe ser de 5.

    - Estado: Aplica el mismo formato que el de Tipo de documento, es decir, Elección. Quedaría similar a esto:

    - Revisión: Esta vez sí utilizaremos el tipo Número. Como info adicional, podemos colocar el máximo valor numérico y en este caso vamos a decirle que ese número no tenga decimales, así que elegiremos "0" en esa opción.

    - Documentos Regulatorios: También será de tipo Elección, con las mismas configuraciones de las anteriores del mismo tipo, pero con una salvedad extra: los administradores necesitan elegir hasta dos opciones, entonces, donde dice Mostrar opciones con, vamos a elegir Casillas:


Adicionalmente a lo comentado en el lineamiento, vamos a necesitar generar unas columnas que nos van a ayudar cuando desarrollemos el sistema:

    - Contenido: En esta columna quiero insertar el texto que exista dentro de cada uno de los documentos de Word. La finalidad es que más adelante recurriré a esta columna desde la apliación para buscar palabras dentro del documento, si es que quiero filtrar documentos que tengan escrita cierta palabra o frase. Como el contenido será largo, necesitaré que el tipo de columna sea de Varias líneas de texto. Vamos a configurar para Permitir longitud ilimitada de bibliotecas de documentos, y el número de líneas lo subimos a su máximo, que es 100.

    - Aprobación: Sabemos que los documentos pasarán por un flujo de aprobación. Para eso necesitamos saber si los documentos son Nuevos, o si están en espera de aprobación, o si fueron Aprobados o no... Así que haremos otra Elección. Acá sí vamos a definir que el valor predeterminado sea Nuevo, porque todos los documentos que recién se cargan son Nuevos para el sistema.

 

    - Aprobado por: Necesitamos saber el nombre de usuario quien haya aprobado o rechazado el documento. Esta columna será de tipo Persona o grupo. La configuración particular es que la selección debería ser de Personas y grupos.

    - Editado por: Esta columna por el momento vamos a decir que funcionará algo así como para "solucionar" un problema que se nos va a presentar a futuro. El resumen es que una de las automatizaciones hará unas modificiaciones en los documentos. El usuario que automatizará quedará como el último usuario que modificó el documento, pero, como es una automatización, nosotros no queremos ver ese usuario. Entonces esta columna mostrará el usuario "real / humano" que haya entrado al documento y lo haya modificado. Esta columna será de tipo Una línea de texto.


Biblioteca Visualización:

Muchas de las columnas que crearemos aquí serán las mismas que las que creamos en Edición, con la diferencia de que muchas no deberían ser editables, así que serán en formato de texto (por ejemplo, las de tipo Elección):

    - Fecha de Emisión / Vigencia Desde / Válido Hasta: Las tres columnas deberán ser de tipo Fecha y hora.

    - Revisión: Esta tipo Número.

    - Tipo de Documento / Documentos Regulatorios / Nro de Tipo de Documento / Estado: Tipo Una línea de texto. La razón es que no hay nada para elegir, sino que estas columnas tomarán los valores resultantes de las propiedades de la biblioteca Edición.

    - Contenido: Como la original, Varias líneas de texto. Vamos a configurar para Permitir longitud ilimitada de bibliotecas de documentos, y el número de líneas lo subimos a su máximo, que es 100.

    - Aprobado por: Esta columna será de tipo Persona o grupo. La configuración particular es que la selección debería ser de Personas y grupos.


Lista Aprobadores:

En esta lista cargaremos los nombres de usuario que sean aprobadores. Más adelante, en la app, llegaremos a esta lista para seleccionar los usuarios mediante un menú desplegable.

Las listas siempre tienen una columna principal que se llama Título. Vamos a dejarla como está, y vamos a agregar una única columna extra de tipo Usuario, que se llamará (de forma muy original) Usuarios.

Si lo desean, como para dejarla lista, pueden agregar su propio nombre a la lista, y buscar su usuario en la columna correspondiente. Eso les ayudará a testear las aprobaciones, cuando lleguemos a ese momento. Más adelante agregarán a los verdaderos responsables de aprobación.

 

La seguridad, ante todo:

Para que la aplicación funcione correctamente, para que los usuarios que administran los documentos puedan ingresar al sistema para agregar y modificar archivos, y para que los usuarios finales puedan ingresar al sistema para visualizar lo que corresponde, todos ellos deben tener un conjunto de permisos sobre cada Biblioteca y lista dentro del Sitio de SharePoint.

Por defecto, un sitio de SharePoint se genera con tres grupos de seguridad:

    - Integrantes: Creado para incluir a usuarios y/o grupos que podrán Editar contenido dentro del sitio. Una de las actividades que no pueden realizar es la de borrar el sitio.

    - Propietarios: Tienen el control total, la capacidad absoluta de hacer y deshacer y de borrar el sitio.

    - Visitantes: Solamente pueden leer todo lo que haya en el contenido. Por ejemplo, pueden abrir un archivo, pero no pueden modificarlo, ni borrarlo. Tampoco podrán agregar otros archivos. 

 

Estos tres grupos, por defecto, aplican sobre todo un sitio.

El problema se presenta cuando en el mismo sitio tengo una Biblioteca donde solo pueden entrar personas que editen, y otra donde tienen que entrar los que solo pueden mirar. Si yo agrego usuarios en el grupo de Visitantes, éstos también podrán acceder a la Biblioteca de documentos editables y si bien no van a poder editarlos, van a poder ver contenido que, a lo mejor, no está listo para que el usuario final vea.

Con el fin de preservar la información de forma correcta, estos tres grupos deben utilizarse con extremo cuidado.

 

Entonces, cuál es la mejor forma de securizar un sitio de este tipo?

Primero, el grupo de Propietarios debe ocuparse solamente con quienes sean los dueños del sitio. En este caso, el sitio es administrado por una persona de sistemas, entonces esa persona de sistemas (y sus compañeros de área) deberían ser los propietarios.

Además, agregaremos como propietario a un usuario especial del cuál hablaremos más adelante. (cuando genere la entrada en el blog, modificaré este espacio para apuntar a esa nueva entrada). 

El grupo de Integrantes y de Visitantes, deben quedar vacíos! Esto es por lo que expliqué algunos párrafos arriba.


Para dar los permisos correspondientes, debemos editar los permisos de cada una de las Bibliotecas, entonces:

    - Desde Biblioteca Edición, vamos al engranaje de configuración que se encuentra en la barra superior derecha al costado de nuestro nombre de usuario. Seleccionamos Configuración de esta biblioteca.

 

Ahí buscamos Permisos para esta biblioteca de documentos.

Vamos a ver un alerta que nos informa que la biblioteca hereda los permisos del elemento primario (lo que expliqué al principio acerca de la seguridad de los sitios).

Entonces, la solución es Dejar de heredar los permisos. Es decir, vamos a hacer que esta Biblioteca tenga su set de permisos diferentes del resto del sitio.

Lo que ocurrirá es que el mensaje de alerta es diferente. Ahora dice "Esta biblioteca tiene permisos exclusivos.".

Dentro seguirán los mismos grupos del sitio general, por lo tanto, los propietarios seguirán siendo ustedes. Integrantes y Visitantes seguirán vacíos.

Pero ahora podremos agregar nuevos miembros y grupos, con el botón Conceder permisos.

Ahora busquemos al grupo de personas que deberían poder trabajar editando documentos (pueden crear un grupo de Microsoft 365 con aquellos administradores del sistema de gestión, o agregar uno por uno, pero recomiendo el grupo, como siempre, es más fácil de administrar). Vamos a activar las opciones avanzadas, vamos a darles el nivel de permiso Editar y si quieren, destilden la opción de enviar correo electrónico, porque no nos interesa avisarles.

 

 Veremos que se agregó el nuevo grupo de esta forma:

 

    - Desde Biblioteca Visualización, el método será el mismo, vamos a la configuración de la biblioteca, luego a sus permisos, deshabilitamos la herencia, agregamos los usuarios de edición tal como hicimos en el paso anterior (porque en esta biblioteca, los administradores del sistema también tienen que tener permisos); pero además agregaremos a todos los usuarios de nuestra empresa, con la salvedad de que el permiso es el de Leer.

 En esta Biblioteca, los permisos deberían quedar más o menos así:

 

    - Para la Lista Aprobadores, los pasos son iguales a la Biblioteca Edición, es decir, vamos a la Lista, desde el engranaje elegimos Configuración de la lista, luego vamos a Permisos de la lista. Allí deshabilitamos la Herencia, y luego agregamos como editores al grupo editor. Aquí no se agregan visualizadores, porque esta lista es solamente para los que administran el sistema.


Y listo!

Si por algún motivo, un usuario final consigue el link para entrar a la biblioteca Edición, no va a poder hacerlo.

De hecho, un editor del sistema de gestión tampoco podrá ver otras bibliotecas dentro del sitio (recordemos que los sitios de SharePoint tienen otras Bibliotecas y carpetas que sirven para el funcionamiento correcto del sitio y no es necesario que otras personas que no sean los propietarios ingresen a ver esas carpetas).


Espero que les haya servido esta información. Recuerden que recién arrancamos y falta mucho más contenido!


Si tienen dudas o quieren hacerme alguna corrección, déjen sus comentarios!


Nos vemos! ^____^

Comentarios

Entradas más populares de este blog

Parte III (bis): Dónde está el control para adjuntar archivos?

Parte IV: Configurando todo lo anterior

Parte III: Poniendo cositas en el lienzo (algunos controles y sus propiedades)