🟢 Introducción

En las aplicaciones Canvas, a menudo necesitamos encontrar un único registro dentro de un origen de datos según condiciones específicas. Para ello, Power Fx nos ofrece la función LookUp(), una de las herramientas más útiles para localizar información rápidamente y sin necesidad de delegar toda una tabla en memoria.

Si alguna vez has necesitado “traer el nombre del cliente que tiene este ID” o “obtener el precio del producto seleccionado”, LookUp() es tu aliado más directo.

🧠 Qué es / para qué sirve

LookUp() sirve para buscar un solo registro dentro de un origen de datos que cumpla una condición.

Es ideal para:

  • Traer valores específicos de un registro (ej. correo del usuario logueado).
  • Recuperar un registro relacionado sin necesidad de filtrar listas completas.
  • Usar datos en lógica interna (Patch, colecciones, controles, variables).
  • Conectar campos entre pantallas (ej. detalle → edición).

💡 Dato clave:
LookUp() devuelve un registro, no una tabla.
Si quieres obtener una tabla, usarías Filter().

🧩 Sintaxis

LookUp(
    DataSource,
    Condition,
    [Result]
)
  • DataSource → Origen de datos (SharePoint, Dataverse, Excel, etc.)
  • Condition → Expresión booleana que debe cumplir el registro deseado
  • Result (opcional) → Campo específico que deseas devolver

💻 Ejemplos con código

🔹 Ejemplo 1 — Buscar un registro por ID

LookUp(Clientes, ID = 10

Devuelve el registro completo del cliente con ID 10.

🔹 Ejemplo 2 — Buscar campo específico

LookUp(Users, Email = User().Email, FullName)

Devuelve solo el nombre del cliente con ID 10.

🔹 Ejemplo 3 — Buscar un valor para usar dentro de Patch()

Patch(
    Orders,
    Defaults(Orders),
    {
        Product: LookUp(Products, SKU = txtSKU.Text),
        Quantity: Value(txtQty.Text)
    }
)

🔹 Ejemplo 4 — LookUp con múltiples condiciones

LookUp(
    Employees,
    Department = ddDept.Selected.Value &&
    Status = "Active",
    EmployeeID
)

🧱 Buenas prácticas

✅ Usa LookUp cuando NECESITES un solo registro; para múltiples registros usa Filter().
✅ Asegúrate de que la condición identifique un registro único.
✅ Cuando solo necesites un campo, usa el tercer parámetro: mejora el rendimiento.
✅ Si tu origen de datos es grande, verifica si la condición es delegable.
✅ Guarda el resultado en variables o colecciones si lo usarás varias veces.

⚠️ Errores comunes

🚫 Usar LookUp en tablas muy grandes con condiciones no delegables → pérdida de rendimiento.
🚫 Suponer que LookUp devuelve varios registros → solo devuelve uno.
🚫 Usar LookUp cuando Filter es más apropiado → pérdida de flexibilidad.
🚫 No validar que el resultado pueda estar en blanco.
🚫 Comparar por campos de texto con errores ortográficos o espacios invisibles.

🔄 Variantes o alternativas

  • Filter(): cuando necesitas varios registros en vez de uno.
  • First(Filter()): alternativa más explícita cuando deseas el primer registro que coincide.
  • Search(): búsqueda de texto parcial.
  • LookUp + With(): para lógica avanzada o cálculos encadenados.
  • Relaciones Dataverse: cuando el origen de datos ya tiene navegación entre tablas.

📚 Recursos oficiales

📗 FilterFunciones , Searchy LookUp

✨ Conclusión

La función LookUp() es una herramienta esencial en Canvas Apps para construir experiencias rápidas, inteligentes y eficientes.
Dominarla te permitirá crear apps conectadas, limpias y con mejor lógica interna.

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