Ejercicio: Cargar un archivo en la biblioteca de documentos de SharePoint

Completado

Es posible guardar un archivo en una biblioteca de documentos de SharePoint usando Power Apps y un flujo sencillo de Power Automate. En esta unidad, aprendemos a hacerlo con un ejercicio práctico. Esta técnica consiste en usar un control de archivos adjuntos (desde un control de formulario) y un flujo de Power Automate para enviar un archivo a una biblioteca de documentos de SharePoint.

Introducción

Vamos a usar el control de archivos adjuntos para cargar nuestro archivo en Power Apps. Luego, usaremos un flujo sencillo de Power Automate para extraer el nombre y el contenido del archivo y escribirlo en SharePoint. Por último, enviaremos de nuevo un vínculo al archivo en Power Apps para que podamos abrir el archivo guardado en nuestro navegador.

Para comenzar con esta técnica, decida primero cuál será la biblioteca de documentos de SharePoint donde guardará el archivo. También necesitará una lista de SharePoint que podamos conectar temporalmente a nuestra aplicación a fin de agregar un Formulario de edición a la aplicación. Debemos usar una lista porque es la manera de agarrar un control de archivos adjuntos; las bibliotecas de documentos no pueden agregar archivos adjuntos.

Veamos juntos todos estos pasos.

Ejercicio

  1. Vaya a Power Apps Maker Portal y cree una nueva aplicación de lienzo.

  2. Agregue SharePoint como un origen de datos. Seleccione Conectarse a datos desde la pantalla del nuevo lienzo en blanco o seleccione el botón Agregar datos.

  3. En el menú emergente Seleccionar un origen de datos, busque y seleccione SharePoint.

    Nota

    Si no está familiarizado con SharePoint, consulte este módulo sobre la creación y el uso de su sitio de SharePoint con Power Apps. Comenzar a utilizar Power Apps y SharePoint.

  4. En el panel Conectarse a un sitio de SharePoint que aparece en el lado derecho de la pantalla, seleccione su sitio de SharePoint o introduzca la URL del sitio (para la página principal de SharePoint) en el campo de entrada de la URL.

  5. En el panel Elegir una lista, seleccione una lista y una biblioteca de documentos (ambos) para usar en la aplicación y, luego, seleccione Conectar. Recuerde que solo usamos la lista para poder usar el control de formulario que incluye archivos adjuntos, así que elija una lista pequeña y con columnas limitadas para obtener los mejores resultados. Antes de seguir, la aplicación debería mostrar ahora dos elementos en la pestaña Datos: una biblioteca de documentos de SharePoint y una lista de SharePoint.

Agregue los controles necesarios

  1. Inserte un Formulario de edición en la aplicación seleccionando Insertar>Formulario de edición.

  2. Para conectar el formulario a su lista de SharePoint, mire el panel Propiedades, en el lado derecho de la pantalla, y seleccione su lista de SharePoint desde el menú desplegable Origen de datos.

  3. En el control Formulario de edición, busque y seleccione el control Archivos adjuntos. No necesita toda la tarjeta de datos, solo el control Archivos adjuntos. En la vista de árbol, el control Archivos adjuntos tiene un pequeño icono de clip a la izquierda del nombre que comienza por DataCardValue. Copie el control Archivos adjuntos.

  4. Ahora pegue el control Archivos adjuntos en la pantalla del lienzo, fuera del control de formulario. Como puede ver, la aplicación muestra errores. Esto se debe a que ha pegado una copia de este control fuera del formulario en el que se ha integrado. Vamos a solucionar esto momentáneamente.

  5. Seleccione y elimine el control Editar formulario de la aplicación (no elimine el control Archivos adjuntos que acaba de pegar). Solo hemos agregado el control Editar formulario para poder copiar el control Archivos adjuntos, por lo que ya no lo necesitamos. En este punto, también puede quitar la lista de SharePoint de los orígenes de datos. Ya no la necesita.

  6. Ahora, vamos a solucionar los errores en el control Archivos adjuntos. Primero, cambie el tamaño y colóquelo en la esquina superior derecha de la pantalla. Necesitamos corregir algunos errores dentro de las propiedades del control, ya que se sigue comportando como si fuera parte de un control de formulario. Cuando complete los siguientes cambios de propiedad, el control no tendrá ningún error:

    Items: elimine Parent.Default y déjelo en blanco.

    BorderColor: elimine la entrada y conviértala en Color.Black (o en un color adecuado).

    Tooltip: elimine Parent.Default y déjelo en blanco.

    DisplayMode: elimine Parent.Default y conviértalo en DisplayMode.Edit.

  7. Cambie el nombre de su control Archivos adjuntos a algo más significativo, como AttachmentControl. (En las siguientes fórmulas, usamos el nombre AttachmentControl).

  8. En este punto, puede obtener una vista previa de la funcionalidad del control de archivos adjuntos. Ponga la aplicación en modo Vista previa y seleccione la opción Adjuntar archivo en el control Archivos adjuntos. Puede seleccionar un archivo o una imagen de su equipo y agregarlo a los archivos adjuntos. Saque la aplicación del modo de vista previa.

Crear el flujo

  1. Ahora que ya tenemos los controles que necesitamos, vamos a crear un flujo de Power Automate. Podemos hacerlo desde Power Apps; seleccione el botón Power Automate desde el raíl de navegación izquierdo para que aparezca el panel de Power Automate.

  2. Desde el panel de Power Automate, seleccione Crear nuevo flujo.

  3. Desde el menú emergente Crear su flujo, seleccione + Crear un flujo.

  4. Aparecerá el lienzo Crear su flujo, con un flujo sin título con Power Apps como desencadenador. Seleccione la acción PowerApps (V2) y, después, seleccione + Agregar una acción.

    Captura de pantalla de

  5. Seleccione Archivo como tipo de entrada. Eso es todo lo que necesita para el desencadenador.

  6. Seleccione el icono + Nuevo paso para agregar otro paso.

  7. En el cuadro de diálogo Elegir una operación, busque y seleccione la operación de SharePoint Crear archivo.

    Captura de pantalla de PowerApps (V2); se pueden ver los resultados de la búsqueda en

  8. Tras insertar la acción Crear archivo, debe rellenar cuatro entradas obligatorias. En Dirección del sitio, seleccione la dirección del sitio en el menú desplegable. Debería ser el mismo sitio de SharePoint desde el que ha adjuntado la biblioteca de documentos en la aplicación.

  9. En Ruta de acceso de la carpeta, hay un mensaje que indica que debe comenzar con una biblioteca existente. Hay un icono de carpeta a la derecha del campo. Puede seleccionar ese icono y, luego, buscar y seleccionar la carpeta donde desea guardar el archivo.

  10. En primer lugar, insertamos File Content, ya que el desencadenador de Power Apps proporciona eso como contenido dinámico. Coloque el cursor en el campo de entrada Contenido de archivo. Luego, desde el contenido dinámico, seleccione File Content. Tras insertar esto en Contenido de archivo, al pasar el cursor sobre File Content, aparecerá la siguiente fórmula:

    triggerBody()['file']['contentBytes']

  11. A continuación, creamos el Nombre de archivo. Para hacer esto, insertamos una expresión. Coloque el cursor en el campo "Nombre de archivo" y seleccione la pestaña Expresión en la ventana emergente de contenido dinámico. Introduzca la siguiente fórmula en el campo de entrada de fórmulas de expresiones:

    triggerBody()['file']['name']

  12. Seleccione Aceptar. En el paso Crear archivo, debería tener valores para las cuatro entradas; la entrada Nombre de archivo debería mostrar una entrada fx con la fórmula para el nombre del archivo.

    Captura de pantalla de la acción

  13. En este momento, el flujo toma el contenido del archivo de Power Apps (que incluye el nombre del archivo) y crea un archivo en la biblioteca de documentos de SharePoint designada. Para la última parte de este flujo, vamos a devolver a Power Apps el vínculo al archivo recién creado. Seleccione + Nuevo paso para agregar otra acción.

  14. En el campo de entrada Elegir una operación, escriba powerapps. Luego, seleccione Responder a PowerApps o un flujo.

  15. En la acción Responder a PowerApps o un flujo, seleccione + Agregar una salida.

  16. Seleccione Texto.

  17. Donde dice Escriba un título, ponga FileLink

  18. Donde dice Introduzca un valor para responder, seleccione texto combinado y contenido dinámico. Primero, introduzca la dirección de la página principal del sitio de SharePoint. Debería coincidir con la dirección del paso "Crear archivo" en el flujo (comienza con https y termina con el nombre de su sitio de SharePoint). Después de eso, seleccione Ruta desde el contenido dinámico en el paso Crear archivo.

    Captura de pantalla del contenido dinámico

  19. Cambie el nombre del flujo a algo como SaveFileToSharePoint.

  20. Guarde el flujo y cierre la ventana del editor de Power Automate. Power Apps guarda el flujo y lo enumera en la pestaña Power Automate para que podamos usarlo en nuestra aplicación.

Completar la aplicación

  1. En la pantalla de su aplicación, seleccione el control Archivos adjuntos.

  2. Vaya a la propiedad OnAddFile.

  3. Comience a escribir el nombre de su flujo en la fórmula OnAddFile. Luego, agregue un punto y "Run", para que la fórmula diga algo parecido a SaveFileToSharePoint.Run; sin embargo, aún necesitamos agregar más a la fórmula al agregar un paréntesis abierto. Como puede ver, el flujo necesita una entrada como {file:Record}.

  4. Agregue "{file:" a la fórmula, agregue otra llave y escriba su fórmula para que coincida con el siguiente patrón. Vamos a definir los elementos de registro como contentBytes y nombre; nuestro flujo los pasará como un registro completo al flujo de Power Automate.

    SaveFileToSharePoint.Run({file:{contentBytes: Last(Self.Attachments).Value, name: Last(Self.Attachments).Name}})

    En estos elementos de OnAddFile, el uso de mayúsculas y minúsculas es importante; a medida que escribe, Power Apps sugerirá automáticamente las opciones correctas. Tenemos que usar la función Last porque Self.Attachments es una tabla y el flujo solo quiere un registro. También usamos Self, que se refiere al control en sí, en lugar de tener que escribir el nombre del control.

  5. Vamos a modificar la fórmula para incluir el "FileLink" devuelto desde el flujo. Para ello, configuraremos una variable antes de ejecutar el flujo y usaremos el "filelink" de salida como datos de variable. Haga los siguientes cambios en su fórmula:

    Set(varFileLink, SaveFileToSharePoint.Run({file:{contentBytes: Last(Self.Attachments).Value, name: Last(Self.Attachments).Name}}).filelink);

    Esto establece el valor de varFileLink como la propiedad "filelink" que el flujo devuelve a Power Apps.

  6. Agregue un control de botón a la aplicación y escriba el texto "Ver archivo"

  7. Ponga la propiedad OnSelect del nuevo botón del siguiente modo: Launch(varFileLink). El botón nuevo nos lleva a ese archivo para que podamos visualizarlo en nuestro navegador.

Probar la aplicación

  1. Ponga la aplicación en modo Vista previa y adjunte un archivo al control de archivos adjuntos. Puede seleccionar uno desde el ordenador o arrastrar y soltar un archivo en el control de archivos adjuntos. La acción debería empezar inmediatamente.

  2. Seleccione el botón Ver archivo. Pueden pasar tres cosas. Si ha cargado una imagen, el archivo de la imagen se abrirá en una pestaña independiente del navegador. Si ha enviado un documento o una hoja de cálculo, se abrirá el archivo en una aplicación de escritorio o del navegador. Es posible que se descarguen otros tipos de archivos en el navegador y que el sistema le permita abrirlos.

Siguientes pasos (opcional)

Enhorabuena Ha creado una aplicación con la capacidad de cargar un archivo en una biblioteca de documentos de SharePoint a través de Power Apps. Ya no tiene que hacer nada más, pero puede usar esta función a un nivel superior con los siguientes pasos:

  1. Con los datos que regresan del flujo, puede usar el vínculo en cualquier otro lugar de la aplicación.

  2. Puede introducir una galería en la aplicación con la propiedad Items apuntando hacia la biblioteca de documentos de SharePoint. Luego, puede usar la Miniatura del elemento con el control de imagen en la galería, mediante una fórmula para la propiedad Image como la siguiente: ThisItem.Thumbnail.Small. El registro Miniatura es muy potente, y está disponible en Grande, Mediano y Pequeño. Representa una parte visible de casi cualquier archivo.

  3. Puede utilizar la propiedad LinkToItem del elemento para ir a un elemento seleccionado, algo similar a lo que ocurre con el botón "ver archivo". Seleccione el control de galería y vaya a la propiedad OnSelect. Introduzca Launch(ThisItem.'Link to item').

  4. Ponga la aplicación en modo de vista previa y seleccione un elemento de la galería para ver esta característica en funcionamiento.

Resumen

Usar el control Archivos adjuntos con un flujo sencillo es un método muy potente para guardar un archivo en una biblioteca de documentos de SharePoint desde Power Apps. Puede agregar esta funcionalidad en cualquier parte de su aplicación donde desee guardar un archivo. El paso de Power Automate que transfiere el nombre y el contentBytes del archivo es lo único que Power Apps necesita para depositar el archivo en una biblioteca de documentos de SharePoint.