Covid-19 PDF Generator

Introducción

Con la implantación de las medidas de confinamiento para contener el coronavirus, en Catalunya y creo que en la mayoría de regiones de España, se requiere de un documento para justificar los desplazamientos. Aunque existe una aplicación que te permite generar el documento en linea, pensé que sería una buena idea crear una aplicación con Power Apps para gestionar las solicitudes y crear los correspondientes justificantes.

Power App para generar justificantes de desplazamiento en PDF debido a las restricciones de movilidad

Desarrollo de la aplicación con Power Apps

En primer lugar, creé una lista en un sitio de SharePoint para guardar las solicitudes, así como el documento PDF generado. Básicamente guardamos el motivo del trayecto y los municipios origen y destino (tenemos otra lista con los municipios y las provincias, que hemos obtenido de aquí).

Lista de solicitudes en SharePoint

Posteriormente ya pude desarrollar una aplicación en Power Apps, creando una pantalla para añadir una nueva solicitud, y otra para consultar todas las solicitudes.

Pantalla de Nueva Solicitud
Pantalla de Consulta de Solicitudes

Si queréis aprender como crear estas pantallas (a partir de un origen de datos como SharePoint) os recomiendo utilizar algunos recursos como este o directamente en Microsoft Learn.

Desarrollo de los flujos con Power Automate

Generación del documento PDF

Desde mi punto de vista, el reto al desarrollar la aplicación se encontraba en generar un documento PDF a partir de unos campos que se encuentran almacenados en SharePoint (e introducidos desde Power Apps). Para ello estuve viendo este vídeo como introducción, donde se explica como se puede hacer con Power Automate y Word. Si queréis saber como hacer una formulario de Word que los usuarios pueden rellenar, aquí encontraréis más información.

Para generar el documento PDF de la solicitud utilicé el siguiente flujo:

Que podemos resumir con los siguientes pasos:

  1. Cuando se crea un elemento en la lista de Solicitudes de SharePoint.
  2. Obtenemos información sobre el usuario que ha creado el elemento en la lista (buscaremos en el Directorio Activo el NIF del usuario porqué lo tenemos guardado en un atributo).
  3. Obtenemos detalle del elemento creado en la lista, así como nos guardamos en dos variables las provincias (Origen y Destino).
  4. A continuación, el que, para mi, es el paso más importante, que es rellenar un documento Word con los campos y variables que tenemos en Power Automate (Populate a Microsoft Word template).
Campos de la plantilla de documento Word
  1. Posteriormente se guarda el documento en una biblioteca de documentos en SharePoint en formato Word, para posteriormente convertirse en PDF y guardarse en la misma.
Generación del documento PDF
  1. Posteriormente obtenemos los detalles del fichero PDF generado para adjuntarlo a la solicitud almacenada en la lista de SharePoint (es decir, guardamos el documento como “attachment” en el elemento de la lista).
  2. Finalmente eliminamos el documento Word y PDF generados en la biblioteca de documentos (se han utilizado de forma temporal, ya que el documento final se guarda como adjunto a la solicitud en la lista).

Visualización del documento PDF desde Power Apps

Para poder visualizar el documento PDF desde nuestra Power App (haciendo click en el icono “PDF”), he desarrollado el siguiente flujo:

Flujo para leer un documento PDF desde una Power App

Donde los pasos realizados son:

  1. Cuando se inicie un flujo desde la Power App.
  2. Recibiremos como parámetro el Id de la Solicitud, que usaremos para obtener los ficheros adjuntos del elemento en la lista.
  3. Para cada fichero adjunto (sólo debería haber uno), obtenemos el contenido del fichero.
  4. Y lo mandamos de vuelta a la Power App (aquí encontraréis una explicación interesante).

Conclusiones

El desarrollo de toda la aplicación me ha permitido comprobar como podemos automatizar la generación de documentación mediante aplicaciones de Power Apps bastante simples, y con un poco más de trabajo en la parte de Power Automate. Sin unos profundos conocimientos de programación hemos podido desarrollar una aplicación, sin tener que pensar en tecnología (lenguaje, capas, tipo de dispositivo), y que es facilmente reutilizable para cualquier tipo de documento.

Podéis encontrar todo el código fuente utilizado en github.com/fchopo/Covid-19-PDF-Generator.

¡Happy Power Platform!