🟢 Introducción

En una Canvas App, muchas veces necesitamos guardar información que debe estar disponible en cualquier pantalla de la aplicación, como datos del usuario, idioma seleccionado, permisos, o configuraciones temporales.

Para eso existe la función Set(), que permite crear y actualizar variables globales, accesibles desde cualquier parte de la app mientras esté en ejecución.

🧠 Qué es / para qué sirve

La función Set() sirve para:

  • Crear una variable global.
  • Actualizar su valor.
  • Guardar datos que deben usarse en múltiples pantallas.
  • Transportar información central durante toda la sesión del usuario.

Las variables globales viven en memoria mientras la app está activa.

🧩 Sintaxis

Set( NombreVariable, Valor )
  1. NombreVariable → el nombre de tu variable global
  2. Valor → puede ser texto, número, registro, booleano, tabla, color, colección, etc.

💻 Ejemplos con código

🔹 Ejemplo 1 — Guardar el nombre del usuario

Set( UserName, "Pepe" )

Uso:

"Hola " & UserName

🔹 Ejemplo 2 — Contar clics

Set( Contador, Contador + 1 )

🔹 Ejemplo 3 — Guardar un registro completo

Set( CurrentProduct, LookUp( Productos, ID = 10 ) )

Acceder a propiedades:

CurrentProduct.Nombre
CurrentProduct.Precio

🔹 Ejemplo 4 — Guardar un resultado de API

Set( WeatherData, WeatherConnector.GetWeather("Madrid")

🔹 Ejemplo 5 — Modificar variable desde OnStart

Set( ThemeColor, RGBA(10, 80, 180, 1) )

🧱 Buenas prácticas

✅ Pon nombres descriptivos a tus variables (CurrentUserSelectedItemThemeColor).
✅ Úsalas para datos globales, no para cálculos pequeños.
✅ Inicialízalas en App → OnStart cuando sea necesario.
✅ Documenta qué variables globales existen en tu app.
✅ Mantén su número limitado (no abuses de variables globales).
✅ Prefiere context variables (UpdateContext) para valores temporales de pantalla.

⚠️ Errores comunes

🚫 Crear muchas variables globales para datos que deberían estar en colecciones o tablas.
🚫 No inicializar la variable y esperar que tenga siempre un valor.
🚫 Asignar registros con estructura cambiante → errores en controles.
🚫 Usar Set() dentro de galerías o ForAll (mala práctica).
🚫 Copiar variables globales a múltiples pantallas sin revisar su tipo.

🔄 Variantes o alternativas

  • UpdateContext() → variables locales por pantalla.
  • SetProperty() (Copilot-enabled apps) → nuevas capacidades contextuales.
  • Colecciones (Collect) → para listas de datos, no simples valores.
  • Environment Variables (Dataverse) → para configuración empresarial.
  • Dataverse o SharePoint → cuando necesitas persistencia real.

📚 Recursos oficiales 

📗 Variables en Canvas Apps
📕 Guía de buenas prácticas Power Fx

🧩 Mini práctica

  1. Abre una Canvas App nueva.
  2. En el botón “Guardar nombre”, en OnSelect, escribe:Set( UserName, TextInput1.Text )
Set( UserName, TextInput1.Text )
  1. En otra pantalla, agrega un Label con:"Bienvenido, " & UserName
"Bienvenido, " & UserName
  1. Corre la app y escribe tu nombre.
  2. Cambia de pantalla → verifica que el nombre persiste.
  3. Crea otra variable llamada ThemeColor y úsala para cambiar el color de fondo de dos pantallas.

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