🟢 Introducción

Cuando construimos aplicaciones empresariales sobre Dataverse, a menudo necesitamos que ciertos valores se calculen automáticamente sin depender de flujos ni de fórmulas dentro de las aplicaciones.

Las Columnas Calculadas permiten agregar lógica directa al modelo de datos, asegurando que los cálculos estén centralizados, sean consistentes y se ejecuten automáticamente ante cualquier cambio relevante en el registro.

🧠 Qué es / para qué sirve

Las Columnas Calculadas de Dataverse son columnas cuyo valor se determina a partir de una fórmula declarativa. Se recalculan automáticamente cuando cambian los campos de los cuales dependen.

Sirven para:

  • Estandarizar lógica de negocio directamente en la capa de datos.
  • Evitar lógica duplicada en Canvas Apps, Model-Driven Apps y Power Automate.
  • Cálculos automáticos como: fechas, totales, porcentajes, estado lógico, concatenaciones.
  • Reducir la necesidad de flujos cuando el cálculo es simple y basado en datos del mismo registro o de tabla relacionada.

🧩 Sintaxis

Las columnas calculadas no usan una “sintaxis” libre como DAX o fórmulas de Power Apps; se definen mediante expresiones configuradas en el diseñador, usando operadores como:

  • Aritméticos: +-*/
  • Lógicos: ANDORNOT
  • Condicionales: IF <condición> THEN <valor> ELSE <valor>
  • Funciones comunes:
    • CONCAT
    • ADDHOURSADDDAYS
    • DATEDIFF
    • ROUNDABS

💻 Ejemplos con código (representación lógica)

🔹 Ejemplo 1 — Calcular el total de una orden

Total = Cantidad * PrecioUnitario

🔹 Ejemplo 2 — Determinar si un cliente está activo

IF (FechaUltimaCompra > ADDDAYS(Today(), -90)) THEN "Activo" ELSE "Inactivo"

🔹 Ejemplo 3 — Calcular edad

Edad = DATEDIFF(FechaNacimiento, Today(), Years)

🔹 Ejemplo 4 — Mostrar nombre completo

NombreCompleto = CONCAT(Nombre, " ", Apellido)

🧱 Buenas prácticas

✅ Usa columnas calculadas para lógica que siempre debe mantenerse igual en todas las apps y flujos.
✅ Prefiere este método para cálculos simples y deterministas.
✅ Documenta los campos de los que depende cada columna calculada.
✅ Evita lógica muy compleja con múltiples dependencias (mejor usar un flujo o un plugin).
✅ Combina columnas calculadas con columnas de opción, fechas y relaciones para agregar inteligencia al modelo.

⚠️ Errores comunes

🚫 Intentar usar columnas calculadas para lógica que depende de procesos externos o datos en movimiento → usa Power Automate.
🚫 Usar demasiadas condiciones en cascada dentro de un solo cálculo → difícil de mantener.
🚫 Intentar usar funciones no soportadas por Dataverse (no es DAX ni fórmulas de Canvas Apps).
🚫 Olvidar que las columnas calculadas no se recalculan retroactivamente si la lógica se modifica (solo ante nuevos cambios en los datos).

🔄 Variantes o alternativas

Plugins C# → máximo control y lógica avanzada del servidor.

Columnas de negocio (Rollup Columns) → agregaciones automáticas (sumas, recuentos) basadas en relaciones 1:N o N:N.

Power Automate → cuando el cálculo requiere condiciones dinámicas, APIs externas o desencadenantes complejos.

Fórmulas en Canvas Apps → cuando el cálculo solo importa dentro de la interfaz.

📚 Recursos oficiales (verificados)

🧩 Mini práctica

  1. En Dataverse, abre una tabla (por ejemplo, Ordenes).
  2. Crea una nueva columna calculada llamada Total.
  3. En el diseñador, agrega la fórmula:
Cantidad * PrecioUnitario
  1. Guarda y publica los cambios.
  2. Crea un registro de prueba y observa cómo el total se calcula automáticamente.
  3. Modifica la cantidad o el precio → valida que el campo recalcula el valor al instante.
  4. Añádelo a una vista o formulario de Model-Driven App para visualizarlo.

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