File Exporter PCF para Power Apps Canvas Apps

Exporta archivos desde Power Apps Canvas Apps con un componente PCF para Microsoft Power Platform, usando entrada JSON, descarga ZIP o salida JSON para Flow y SharePoint.

Harllens George | 2026-03-23

Esta guia muestra una forma practica de resolver escenarios de Power Apps file export PCF en Microsoft Power Platform. El componente recibe un payload JSON con uno o varios documentos y luego descarga los archivos en el navegador o expone una salida estructurada que puedes enviar a Power Automate, SharePoint u otro sistema externo.

La idea principal es simple: los makers pueden quedarse dentro de Canvas Apps, definir archivos en JSON y decidir si la exportacion ocurre directamente en el navegador o despues mediante automatizacion.

Que es este componente

Es un componente PCF para Power Apps Canvas Apps que prepara archivos basados en texto desde documentsJson. Valida cada entrada, calcula metadatos, genera una salida base64 por archivo y soporta tres modos:

  • Disabled, solo salida, sin descarga en navegador
  • Zip, una sola descarga en archivo comprimido
  • Separate, una descarga por cada archivo valido

Para quien es

  • Makers de Power Platform que necesitan funciones de exportacion en Canvas Apps
  • Equipos que buscan un patron reutilizable de exportacion sin escribir logica personalizada en el navegador
  • Proyectos que quieren entregar archivos generados a Power Automate o SharePoint

Get it

Compatibilidad

  • Microsoft Power Platform
  • Power Apps Canvas Apps
  • Power Automate o flujos de SharePoint cuando la descarga en navegador no es el paso final
  • Exportaciones basadas en texto como CSV, TXT, JSON, XML, HTML, Markdown o SQL

Por que importa

La exportacion de archivos es comun en apps de negocio, pero la implementacion suele quedar dispersa. Una pantalla arma un CSV, otra dispara un Flow y otra intenta descargar varios archivos con logica fragil.

Este componente ofrece un contrato mas claro:

  • Una sola entrada JSON para todas las definiciones de documentos
  • Un solo componente PCF para validar y preparar la salida
  • Un solo output JSON que puedes consumir desde Power Fx o un Flow

Eso es util cuando quieres un patron repetible de exportacion entre varias apps.

Casos de uso comunes

  • Exportar archivos CSV o TXT directamente desde una Canvas App
  • Generar payloads JSON y guardarlos en SharePoint mediante Power Automate
  • Entregar un solo ZIP en lugar de muchos archivos separados
  • Desactivar la descarga en la UI pero seguir preparando los archivos para sistemas externos

Como funciona el componente

El flujo es directo:

  1. Enviar un arreglo JSON a documentsJson.
  2. Cada objeto define un archivo con fileName, fileExtension, mimeType y contentText.
  3. El componente valida cada documento y publica el resultado en documentsOutputJson.
  4. Luego decides si los archivos:
    • se quedan solo en las salidas de la app,
    • se descargan como ZIP,
    • o intentan descargarse uno por uno en el navegador.

Ejemplo minimo de JSON

[
  {
    "id": "doc-001",
    "fileName": "customers",
    "fileExtension": "csv",
    "mimeType": "text/csv",
    "contentText": "Id,Name,Country\n1,Ana,DE\n2,John,US\n3,Mika,JP"
  },
  {
    "id": "doc-002",
    "fileName": "notes",
    "fileExtension": "txt",
    "mimeType": "text/plain",
    "contentText": "This is a simple text file.\nSecond line.\nThird line."
  }
]

Capturas

Vista previa del componente en Canvas Apps

Vista previa del File Exporter Component en una Canvas App.

Entrada documentsJson

Propiedad de entrada documentsJson del File Exporter Component.

Seleccion del modo de descarga

Propiedad downloadMode con Disabled, Zip y Separate.

Salida documentsOutputJson

Salida documentsOutputJson procesada por el File Exporter Component.

Propiedades de salida y estado

Propiedades de salida para validacion, estado del clic y archivos procesados.

Que modo de descarga usar

Disabled

Usa Disabled cuando el componente solo deba preparar los archivos. Es la opcion mas segura cuando SharePoint, Power Automate u otro sistema externo se encargara del almacenamiento.

Zip

Usa Zip cuando quieras una descarga fiable en el navegador con un solo archivo. En la practica, es la mejor opcion integrada para usuarios que esperan un clic y un resultado claro.

Separate

Usa Separate cuando realmente necesites una descarga por archivo. Es best effort, porque el navegador o el host pueden limitar varias descargas consecutivas.

Como usarlo en Canvas Apps

  1. Importa la solucion en tu entorno.
  2. Agrega el componente a una pantalla de Canvas App.
  3. Vincula documentsJson a un string JSON.
  4. Configura downloadMode segun el recorrido del usuario:
    • Disabled para flujos solo de salida
    • Zip para un archivo comprimido
    • Separate para archivos individuales
  5. Lee documentsOutputJson, isValid, validDocumentCount o downloadResultJson desde Power Fx.

Parsear la salida JSON en Power Fx

Si quieres reutilizar la salida procesada dentro de la app, puedes convertir documentsOutputJson en una coleccion.

ClearCollect(
    colDocs,
    ForAll(
        Table(ParseJSON(FileExporterComponent1.documentsOutputJson)),
        {
            id: Text(Value.id),
            fileName: Text(Value.fileName),
            fileExtension: Text(Value.fileExtension),
            fullFileName: Text(Value.fullFileName),
            mimeType: Text(Value.mimeType),
            contentText: Text(Value.contentText),
            base64: Text(Value.base64),
            sizeBytes: Value(Text(Value.sizeBytes)),
            isValid: Boolean(Value.isValid),
            errorMessage: Text(Value.errorMessage)
        }
    )
)

Esto sirve cuando quieres mostrar una pantalla de confirmacion, filtrar solo documentos validos o enviar el payload final a un Flow.

Patron para SharePoint y Power Automate

Uno de los usos mas practicos de este componente es guardar los archivos generados fuera del navegador.

Patron recomendado:

  1. Configura downloadMode = Disabled.
  2. Espera a que se actualice documentsOutputJson.
  3. Envia ese string JSON a Power Automate.
  4. Usa Parse JSON en el flujo.
  5. Recorre los documentos.
  6. Convierte cada campo base64 a binario.
  7. Crea los archivos en SharePoint u otro destino.

Asi obtienes un handoff claro entre la UI de la app y el flujo de almacenamiento.

Propiedades y salidas importantes

Entradas utiles:

  • documentsJson
  • downloadMode
  • archiveFileName
  • displayModeInput
  • propiedades de estilo del boton

Salidas utiles:

  • documentsOutputJson
  • downloadResultJson
  • documentCount
  • validDocumentCount
  • isValid
  • errorMessage
  • lastAction
  • changeToken
  • selectToken

Errores comunes a evitar

  • Usar Separate para entregas criticas de muchos archivos, normalmente ZIP es mas estable.
  • Esperar que el componente suba archivos por si solo, solo prepara la salida.
  • No revisar isValid y errorMessage antes de enviar datos al Flow.
  • Usar descarga en navegador cuando en realidad el requisito final es guardar en SharePoint, en ese caso es mejor Disabled mas documentsOutputJson.

Siguientes pasos

  • Empieza con una exportacion simple de CSV o TXT.
  • Decide si el usuario necesita un ZIP o un flujo de almacenamiento externo.
  • Agrega un handoff a Power Automate si SharePoint u otro backend debe guardar los archivos.

Conclusion

Si necesitas un patron Power Apps file export PCF para Microsoft Power Platform, este componente ofrece una base practica: JSON de entrada, archivos validados de salida, y una decision clara entre descarga en navegador o handoff a automatizacion.