Power Apps - Carga de Documentos a SharePoint

Cuando intentamos cargar un archivo a una biblioteca de documentos en SharePoint desde Power Apps, lo primero que nos damos cuenta es que dentro de nuestro listado de controles no existe un control de carga de archivos.

Sin control de documentos.

Obtener control de archivos.

Agregamos una pantalla temporal en blanco, la cual nos servirá para obtener el control de archivos necesario para cargar los documentos a SharePoint.

En esta pantalla en blanco agregamos nuestro formulario en formato de editar.

Seleccionamos el formulario y en el panel del lado derecho debemos seleccionar un Origen de datos conectado a una lista de SharePoint.

Con esto, nuestro formulario mostrará la información correspondiente a la lista.

Lo que necesitamos de este formulario es solamente el control de adjuntos, seleccionamos el control, damos clic derecho y seleccionamos la opción de copiar.

Pasamos a la pantalla principal de nuestra aplicación y pegamos el control de adjuntos.

Dentro de este control asignamos las siguientes propiedades:

  • Nombre del control: ControlAdjuntos1
  • Items: Blank()
  • DisplayMode: DisplayMode.Edit
Nota: Después de esto podemos eliminar la pantalla temporal, así como la conexión al sitio de SharePoint, ya no son necesarios.

Subir los documentos a una biblioteca de documentos de SharePoint

Desafortunadamente Power Apps no puede cargar los documentos a una biblioteca de SharePoint de manera directa, para esto vamos a generar un flujo dentro de la herramienta de Microsoft Flow, el cual se encargará de subir nuestra información de Power Apps a SharePoint.

Seleccionamos el menú Acción, luego Power Automate y Crear nuevo flujo.

Seleccionamos la opción Power apps button.

Para poder identificar fácilmente nuestro flujo vamos a renombrarlo a Carga de Archivos SharePoint.

Debemos cambiar el disparador que se inserta de manera automática, eliminamos el disparador y agregamos el disparador de Power Apps (V2).

Dentro del nuevo disparador agregamos la entrada de tipo Archivo y la marcamos como requerida.

Finalmente agregamos una acción de Crear Archivo a nuestro flujo y lo configuramos de la siguiente manera.

  • Site Address: Sitio de SharePoint donde se desea cargar el archivo.
  • Folder Path: Biblioteca de documentos de SharePoint.
  • File Content: Parámetro de salida de la paso anterior (Power Apps(v2))
  • File Name: Para esta propiedad debe agregarse la siguiente expresión:
triggerBody()['file']['name']

Guardamos los cambios realizados a nuestro flujo y con esto terminamos nuestro flujo de carga de archivos y regresamos a nuestra Power App.

Conectar nuestro flujo de Power Automate con nuestra App.

Volviendo a nuestra Power App, agregamos un nuevo botón de alta, seleccionamos la propiedad OnSelect y eliminamos el contenido, luego abrimos nuevamente el panel de Power Automate en el menú Acción y seleccionamos el flujo Carga de Archivos de SharePoint.

Una vez hecho esto modificamos la propiedad OnSelect del botón para tener la siguiente configuración:

 ForAll(
     ControlAdjuntos1.Attachments As Document;
     CargadeArchivosSharePoint.Run(
         {
             file: {
                 contentBytes: Document.Value;
                 name: Document.Name
             }
         }
     )
 )

Este código ejecuta el flujo de Power Automate para cada uno de los archivos que se suban a nuestro control de documentos, con esto completamos nuestra Power App, simplemente resta validar que nuestra App este funcionando correctamente.

Sé productivo. Sé extraordinario. Sé INAVANT.