🟢 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
- 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