Cómo cargar archivos masivamente de Power Apps a Dataverse

Tabla de Contenidos

Algunas aplicaciones requieren que los usuarios carguen varios archivos a la vez en Dataverse (cada uno con su propio registro), pero el proceso para cargar archivos masivamente desde Power Apps a Dataverse no es sencillo.

Este blog mostrará cómo crear una pantalla donde un usuario puede seleccionar varios archivos, agregar un comentario a cada uno y subir cada archivo a su propio registro con un solo clic, con el archivo guardado en una columna de archivo y el comentario almacenado en una columna de texto.

Por qué subir múltiples archivos a Dataverse requiere una configuración diferente

Por defecto, un formulario de Power Apps está diseñado para crear o editar un registro a la vez, y las columnas de tipo archivo de Dataverse solo permiten almacenar un archivo a la vez (en SharePoint, la columna de adjuntos permite subir varios archivos al mismo registro).

Paso a paso: subir varios archivos de Power Apps a Dataverse

También creamos un tutorial de esto en nuestro canal de YouTube, ¡asegúrate de verlo!

1. Configurar el diseño de la pantalla

Creemos una nueva pantalla y elijamos la diseño de barra lateral, lo que nos da una sección a la izquierda para el selector de archivos y una sección a la derecha para una galería que lista los archivos subidos.

Automatiza las tareas que te ralentizan

Libere el tiempo de su equipo y concéntrese en el trabajo estratégico con la automatización digital y robótica.

2. Crear un formulario y conectarlo a la tabla de Dataverse

Inserta un formulario en la sección izquierda y conéctalo a tu tabla de Dataverse (en este blog se llama table_attachments).

Una vez conectado el formulario, Power Apps genera automáticamente tarjetas de datos para cada columna de la tabla, incluidas varias columnas predeterminadas de Dataverse que no necesitaremos.

3. Reduce el formulario a solo la tarjeta de archivo adjunto

De todas las tarjetas generadas, la única que necesitamos es la tarjeta de adjunto. Copiemos esa tarjeta y peguémosla dentro del contenedor que contiene el formulario, luego eliminemos el resto del formulario.

Aparecerán algunos errores. Simplemente elimine el código dondequiera que haya un error.

4. Configurar el control de adjuntos

Selecciona la tarjeta de adjunto y:

  • Aumentar número máximo de archivos adjuntos permitido (por ejemplo, establécelo en 10)
  • Aumentar altura del control para que utilice más pantalla

Renombra el control a algo claro, como attachment_fileupload, para que sea fácil de referenciar más tarde.

5. Entender la estructura que Dataverse espera para los archivos adjuntos

Si creáramos un único registro, esta sería la estructura que Dataverse esperaría:

				
					Patch(
    table_attachments,
    Defaults(table_attachments),
    {
        attachment: {
            'FileName': "test.txt",
            Value: "..."
        },
        comments: "hola, este es un comentario"
    }
)
				
			

La columna de archivos adjuntos de Dataverse espera específicamente una estructura con dos propiedades: Nombre de archivo y Valor (el contenido real del archivo).

6. Agrega una galería para que los usuarios puedan ingresar un comentario por archivo

Insertar una galería en blanco en la sección derecha y añadir dos controles:

  • Añadir un etiqueta mostrando el nombre del archivo (renómbralo lbl_filename). Texto: ThisItem.Name

 

  • Añadir un entrada de texto donde el usuario escribe un comentario para ese archivo específico (renombrarlo txt_filecomments)

7. Conecta los elementos de la galería a la vista de adjuntos

Para mostrar la lista de archivos adjuntos que fueron agregados por el usuario en la galería y permitirles agregar comentarios a cada archivo, necesitamos conectar la galería a la lista de archivos subidos al control de archivos adjuntos.

Solo encuentra el atributo “items” y usa:

				
					attUploadFile.Archivos adjuntos
				
			

8. Itera sobre cada archivo cargado con ForAll

Usando el código del punto 5, solo necesitamos ejecutar esto para todos los elementos dentro de la galería usando la función ForAll.

				
					ForAll(
    attachment_fileupload.Attachments As FileUploaded,
    Patch(
        table_attachments,
        Defaults(table_attachments),
        {
            attachment: {
                'FileName': FileUploaded.Name,
                Value: FileUploaded.Value
            },
            comments: "hola, este es un comentario"
        }
    )
)
				
			

9. Empareja cada archivo con su comentario usando una búsqueda

Para cargar el comentario junto con el archivo en el mismo registro, use una función Lookup:

				
					ForAll(
    attachment_fileupload.Attachments As FileUploaded,
    Patch(
        table_attachments,
        Defaults(table_attachments),
        {
            archivo adjunto: {
                'Nombre del archivo': FileUploaded.Name,
                Valor: FileUploaded.Value
            },
            comentarios: LookUp(
                gal_attachmentcomments.AllItems,
                FileName.ext = FileUploaded.Name
            ).txt_filecomments.Text
        }
    )
)
				
			

10. Prueba la carga

Añade un botón y, a continuación, en la propiedad OnSelect, añade el código del punto #9.

Ejecuta la aplicación y prueba:

¿Está su negocio preparado para la automatización?

Automatiza procesos con Microsoft Power Platform.

Cada archivo debe crearse como su propio registro en Dataverse con archivo adjunto y comentarios:

Estructura de tabla de Dataverse para carga múltiple de archivos

Dataverse espera dos atributos o columnas al crear archivos desde Power Apps: Nombre del archivo y Valor (contenido del archivo).

				
					{
    'FileName': FileUploaded.Name,
     Value: FileUploaded.Value
}
				
			

Problemas comunes al subir archivos a Dataverse desde Power Apps

Surgen algunos puntos difíciles al construir este tipo de flujo:

  • Errores de adjunto en el parche. Si al objeto pasado a la columna de adjunto le faltan las propiedades FileName o Value, la llamada a Patch fallará. Dataverse espera específicamente esos dos nombres de propiedad.
  • Errores restantes después de copiar la tarjeta de archivo adjunto. Después de copiar la tarjeta de datos del adjunto fuera del formulario y eliminar el resto del formulario, es posible que vea brevemente errores en la aplicación; estos se eliminan una vez que el formulario no utilizado o duplicado se elimina por completo.

Mejores prácticas para cargas de archivos en Power Apps y Dataverse

  • Nombre de la variable de su bucle ForAll. Usar el bucle “As” LoopVariable Name (o un nombre igualmente descriptivo) en lugar del valor predeterminado ThisRecord hace que las fórmulas sean mucho más fáciles de leer y mantener.
  • Asegúrate de renombrar todos los controles en la pantalla, ayuda a mantener el código organizado y ordenado, y más fácil de leer para tu futuro yo.
  • Reutilice la estructura de objetos de archivo existente de los controles de archivos adjuntos si es posible. En lugar de construir manualmente un objeto {FileName, Value}, la función RenameColumns se puede usar para escribir menos código:
  • Añadir comentarios al código

Subir archivos a Dataverse desde Power Apps con PowerGI

En Poder[GI] podemos ayudarte a crear formularios y plataformas que tu equipo disfrutará usando, incorporando funciones útiles como cargas masivas a Dataverse. Descubre nuestro Servicios de Power Apps o contáctanos hoy.

¿Está listo para descubrir la alegría de la automatización?

Autor
Consultor de Power Platform | Experto en Automatización de Procesos de Negocio
Consultor certificado de Microsoft Power Platform y Arquitecto de Soluciones con más de 4 años de experiencia aprovechando Power Platform, Microsoft 365 y Azure para descubrir continuamente oportunidades de automatización y reimaginar procesos.