Así es cómo cargar archivos desde Power Apps a las bibliotecas de documentos de SharePoint Online (SPO).
Requisitos Previos
Primero, crea una biblioteca de documentos en SharePoint Online donde se cargarán los archivos: 

Luego, crea una lista de SharePoint. Nota: Esto es necesario para usar el control de archivos adjuntos. 

Con estos pasos completados, estamos listos para continuar.
Creación del Flujo de Power Automate
Primero, vamos a crear un flujo de Power Automate que se activará desde Power Apps para gestionar la carga de archivos.
Crea un flujo con el desencadenador de Power Apps (V2): 

Agrega un parámetro de tipo archivo:



Luego, agrega la acción «Crear archivo» de SharePoint, selecciona la biblioteca de documentos y el sitio que creamos anteriormente, y establece el [Nombre del archivo] como «triggerBody()[‘parameter_name’][‘name’]»: 

Para el [Contenido del archivo], ingresa el parámetro en sí (específicamente, el contentsByte): 

¡Y con esto, la configuración del flujo de Power Automate está completa! 

Creación de la Aplicación Power Apps
Ahora, vamos a crear la aplicación Power Apps.
Crea una nueva aplicación de lienzo y agrega la lista de SharePoint que creamos en los requisitos previos: 

Agrega un [Formulario de edición] a la pantalla: 

Establece la lista de SharePoint como origen de datos, lo que creará una DataCard de archivos adjuntos. Corta el DataCardValue desde su interior: 

Pega el DataCardValue cortado en cualquier pantalla y resuelve los errores para completar la configuración. Nota: Para las propiedades que muestran errores como X e Y, establece valores arbitrarios, y configura la propiedad Items como «blank» 

¡Y con esto, la interfaz de usuario está completa!
Llamada a Power Automate desde Power Apps
Agrega el flujo de Power Automate que creamos anteriormente usando [Agregar flujo]: 

Establece MaxAttachments en 1 para limitar el número de archivos que se pueden cargar a uno. Nota: Más adelante discutiremos cómo manejar la carga de múltiples archivos. 

Finalmente, agrega un botón de carga e ingresa la siguiente fórmula en OnSelect para completar la configuración:

FlowName.Run({ FlowParameterName: { contentBytes:First(AttachmentControlName.Attachments).Value, name:First(AttachmentControlName.Attachments).Name } });
Prueba de la Aplicación
Ejecuta la aplicación, adjunta cualquier archivo y presiona el botón: 

Power Automate se ejecutará: 

Y el archivo se guardará en la biblioteca de documentos: 

Carga de Múltiples Archivos
Para habilitar la carga de múltiples archivos, cambia MaxAttachments al número deseado de archivos:


Luego modifica la fórmula del botón de la siguiente manera:

ForAll(AttachmentControlName.Attachments As attachment, FlowName.Run({ FlowParameterName: { contentBytes:attachment.Value, name:attachment.Name } }) );
Cuando adjuntas múltiples archivos y presionas el botón de carga: 

Se cargarán múltiples archivos. Nota: Los archivos con el mismo nombre se sobrescribirán. 

Si bien es posible cargar archivos obteniendo dataUri mediante un control de imagen, personalmente prefiero este método ya que proporciona una implementación más concisa.
コメント