🟢 Introducción

Las colecciones son una parte fundamental del desarrollo en Power Apps. Nos permiten almacenar datos temporalmente, manipularlos, transformarlos e incluso usarlos como “mini-bases de datos” en la app.
La función Collect() es la puerta de entrada al trabajo con colecciones, y hoy aprenderás cómo utilizarla de forma óptima, segura y profesional.

🧠 Qué es / para qué sirve

Collect() agrega uno o más registros a una colección o tabla existente.
Sirve para:

  • Crear colecciones temporales en memoria.
  • Guardar datos ingresados por el usuario.
  • Cargar datos desde orígenes externos.
  • Construir estructuras dinámicas para controles como galerías.
  • Simular tablas sin necesidad de una fuente de datos real.
  • Usarla como base para funciones como Patch(), Remove(), ClearCollect() y ForAll().

Es una de las funciones más utilizadas en Canvas Apps.

🧩 Sintaxis

Collect(
DataSource,
Item(s)
)

Parámetros:

  • DataSource: una colección o tabla donde se agregará la información.
  • Item(s): un registro o tabla que se agregará.

👉 Si la colección no existe, Collect() la crea automáticamente.

💻 Ejemplos con código

(OJO: usa ClearCollect si quieres evitar duplicados)

🔹 Ejemplo 1 — Crear una colección simple

Collect(
ColProductos,
{ Nombre: "Laptop", Precio: 1500 }
)

🔹 Ejemplo 2 — Agregar varios registros a la vez

Collect(
ColNúmeros,
[1,2,3,4]
)

🔹 Ejemplo 3 — Convertir una tabla externa en colección

Collect(
ColClientes,
ClientesDataSource
)

🔹 Ejemplo 4 — Usar Collect junto con controles

Collect(
ColTareas,
{
Tarea: txtTarea.Text,
Fecha: DatePicker1.SelectedDate,
Prioridad: ddPrioridad.Selected.Value
}
)

🧱 Buenas prácticas

✅ Prefiere ClearCollect() cuando cargues datos externos, así evitarás duplicados.
✅ Usa nombres de colecciones con prefijo como col, por ejemplo: colClientes.
✅ Mantén colecciones pequeñas; son memoria en tiempo de ejecución.
✅ Documenta la estructura de tu colección (especialmente si tienes registros complejos).
✅ Usa ForAll() + Patch() cuando necesites enviar datos a una fuente externa.

⚠️ Errores comunes

🚫 Crear colecciones enormes → afecta rendimiento.
🚫 Usar Collect para actualizar registros → mejor usa Patch().
🚫 Agregar datos repetidos accidentalmente (sobretodo usando Collect en OnVisible).
🚫 Suponer que Collect ordena datos: no lo hace, debes usar Sort().
🚫 No inicializar colecciones antes de usarlas en controles → puede mostrar errores.

🔄 Variantes o alternativas

  • ClearCollect() → borra y luego agrega.
  • Patch() → cuando necesitas actualizar o crear registros en fuentes externas.
  • Collect() + Sequence() → para generar listas dinámicas.
  • AddColumns() / DropColumns() → para transformar colecciones.
  • Remove() / RemoveIf() → para borrar elementos de la colección.

📚 Recursos oficiales

🧩 Mini práctica

  1. Crea una colección vacía llamada colTareas:
ClearCollect(colTareas, {})

2. En un botón “Agregar tarea”, coloca:

Collect(
colTareas,
{
Tarea: txtTarea.Text,
Fecha: DatePicker1.SelectedDate,
Prioridad: ddPrioridad.Selected.Value
}
)

3. Muestra la colección en una Gallery.

4. Agrega un botón “Eliminar seleccionada” con:

Remove(colTareas, ThisItem)

5. Experimenta agregando:

  • Ordenación (Sort)
  • Filtros (Filter)
  • Columnas calculadas (AddColumns)

💡 Utiliza el siguiente Sandbox para tus pruebas con Collect!

Power Fx Interactive Sandbox: Registros

Cargando el entorno interactivo de Power Fx…

Deja un comentario

¡Gracias por tu mensaje!

Me pondré en contacto tan rápido como pueda.

Descubre más desde Power Platform En Español

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo