24/3/21

Insertar datos de un cuestionario de Forms en una lista de SharePoint con Power Automate

Forms almacena sus resultados en la nube y podemos descargarlos desde la sección de respuestas del formulario. Pero puede resultarnos interesante insertar los resultados de la encuesta directamente en una lista de SharePoint, que podemos tener en Lists, en un equipo de Teams o en un sitio de SharePoint. 

Para ello, podemos aprovechar las posibilidades que nos brinda Power Automate, la herramienta para crear flujos de tareas sobre aplicaciones de Office365, que nos permite el traspaso de datos entre servicios y la integración de los mismos. 


Deberemos contar de manera previa con un formulario de Forms así como una lista, con campos equivalentes en el formulario y en la lista, para poder pasar la información recogida entre ambos. Para ver cómo trabajar con Forms y Listas, podemos acceder al Canal de Habilidades Digitales. 


Para crear el flujo, accederemos a Power Automate en el portal de Office365, que tendremos disponible si contamos con licencia de Teams, en la dirección portal.office.com. En la relación de aplicaciones seleccionaremos Power Automate 




Nos dará la opción de crear un flujo desde cero o bien desde una plantilla. Puesto lo que queremos es que el flujo se ejecute cada vez que se rellene un formulario, seleccionaremos la opción “Flujo de nube automatizado” 



Introduciremos el nombre del flujo y seleccionaremos la acción desencadenante, que en este caso es “Cuando se envía una respuesta nueva” del conector de Microsoft Forms y pulsaremos “Crear” 



Si no tuviésemos accesible el conector de Forms, podríamos buscarlo desde el cuadro de búsqueda. Se nos abrirá el panel del desarrollo del flujo con la acción desencadenante y elegiremos el formulario del que queremos obtener las respuestas desde el menú desplegable 

 

Si no encontramos el formulario, al final de toda la relación, tendremos la posibilidad de “Escribir un valor personalizado” que es el código del formulario que aparece en la URL del mismo.  



Y pulsaremos “Nuevo paso” para añadir la siguiente acción 




Se nos mostrará el cuadro de selección de conector y buscaremos el de Forms, y entre las acciones elegiremos “Obtener los detalles de la respuesta”. 




En el “Id. de formulario”, seleccionaremos el mismo formulario que desencadenó el proceso y al colocar el curso en el campo “Id. de respuesta”, nos permitirá seleccionar los datos que van pasándose entre las distintas tareas del proceso, en este caso el “Id. de la respuesta”. Este id permitirá determinar el objeto o matriz de respuestas del formulario para su uso posterior. 




Quedando incorporado en el campo


Añadiremos un nuevo paso con el conector de Sharepoint con la acción de “Crear elemento”, que será el nuevo registro en la lista de SharePoint con los datos del formulario. 


Y seleccionaremos el sitio de SharePoint o equipo de Teams donde hayamos creado la lista, y elegiremos entre las listas que haya en dicho sitio. 


Se nos mostrarán la relación de columnas de dicha lista y podremos ir asignando los valores del formulario a las mismas. 



Finalmente guardaremos el flujo 




Podremos ir al panel del flujo pulsando en la flecha de la esquina superior izquierda. Para probarlo, bastará con rellenar el formulario y ver si se inserta en la lista. Podemos ver los pasos de ejecución y controlar si ha habido algún error desde el panel del flujo. En el Historial de ejecución de 28 días, podremos ver las ejecuciones y seleccionar aquella que queramos examinar. 


Y veremos los pasos del flujo y si su ejecución ha sido correcta. Pulsando en el nombre de la acción, se despliega información sobre las entradas y salidas de la misma. 



NOTA: Podemos cambiar el nombre de una acción pulsando en los tres puntos de la esquina derecha de la misma 




Insertar un enlace a ficheros anexados en formulario 



Si nuestro formulario cuenta con preguntas que impliquen subir ficheros (en este caso el formulario sólo podrá ser rellenado por personas de nuestra organización), podremos incluir un enlace en la lista al fichero que se guardará en una carpeta llamada Microsoft Forms, dentro de la carpeta Aplicaciones (en OneDrive). 



IMPORTANTE: Los formularios de Forms pueden estar asociados al usuario o a un grupo de usuarios de 365 como es un equipo de Teams. 


Para que los ficheros sean accesibles desde la lista, el formulario debe estar asociado a un grupo de 365, siendo lo más fácil, un equipo de Teams. En ese caso se guardarán en una carpeta llamada Microsoft Forms, dentro de la carpeta Aplicaciones en Documentos, dentro del sitio de SharePoint interno del equipo de Teams. 


Para obtener el enlace, tendremos que pasarlo al flujo e insertarlo en el registro. Deberemos incorporar una acción de Análisis de Archivo JSON y Redactar, dentro del conector “Operación de datos”, que nos permita parsear la respuesta y sacar el enlace al fichero. 



NOTA: Puesto que vamos a parsear un objeto JSON, necesitaremos un ejemplo del mismo antes de incluir el paso en el flujo. Para ello, cumplimentaremos nuestro formulario y analizaremos la ejecución como se indicó previamente. Iremos dentro de una ejecución previa del flujo: 

 


Y en el paso “Obtener los detalles de la respuesta”, seleccionaremos y copiaremos el contenido (incluidos los corchetes) de “Archivo anexo” que guardaremos en el bloc de notas. 


 


Ahora ya podremos insertar la acción de parseoDetrás de la acción de “Obtener los detalles de la respuesta” insertaremos un nuevo paso de tipo “Análisis de archivo JSON” en el conector de “Operación de datos” 


 


Seleccionaremos la acción “Análisis del archivo JSON” 

 


Como “Entradas” seleccionaremos el “Archivo anexo” con todas las respuestas del cuestionario. 


C:\Users\ggg16\AppData\Local\Temp\SNAGHTML1b8588.PNG 


Ahora obtendremos el esquema del objeto, para lo cual insertaremos la muestra que hemos obtenido como se indicaba al principio de este apartado y que tendremos en un bloc de notas o similar. Pulsaremos en el botón “Generar desde la muestra” 

 


Y se nos abre una pantalla donde pegamos (ctrl+v) el ejemplo y pulsamos listo


 


Y tendremos ya el parseo de nuestra matriz JSON, quedando pendiente obtener el enlace del mismo. 


 


Detrás del paso “Análisis del archivo JSON”, introduciremos una acción de “Redactar” dentro del conector “Operación de datos” 


 


Como entrada seleccionaremos el enlace (link) 


 


Y se nos crea un paso “Aplicar a cada uno” con la acción Redactar en su interior. Pulsaremos “Agregar una acción” 


 


Incorporaremos la creación de un elemento de lista del conector de SharePoint, de manera similar a como hicimos en la sección anterior del artículo.

 

 


Y asignamos los datos del formulario, incluido el del enlace que obtenemos del paso “Redactar” 


 


Y con esto ya tenemos nuestro flujo 

 


Nota: si tenemos otro paso con la inserción de los datos en SharePoint fuera de “Aplicar a cada uno”, pues hemos seguido los pasos del artículo, deberemos borrarlo.