Power Automate – Variable vs Redactar

En Power Automate Cloud, una de las mejoras más “silenciosas” pero con mayor impacto práctico no es un nuevo conector: es cómo modelas los datos dentro del flujo. Elegir entre Variable y Redactar (Data Operations – Compose) puede marcar la diferencia en rendimiento, mantenibilidad, legibilidad y, sobre todo, en la capacidad de escalar con concurrencia (paralelismo) sin efectos inesperados. ✨ [learn.microsoft.com], [learn.microsoft.com], [learn.microsoft.com]
📌 Al grano!!
- ✅ Usa Redactar cuando necesites un valor inmutable, cálculos puntuales, transformaciones o quieras simplificar expresiones sin cargar el flujo. [learn.microsoft.com], [learn.microsoft.com]
- ✅ Usa Variables cuando necesites mutabilidad (contar, acumular, construir estado a través de iteraciones). [learn.microsoft.com]
- ⚠️ Si habilitas concurrencia en bucles, las Variables pueden volverse un riesgo (resultados no deterministas). [learn.microsoft.com], [learn.microsoft.com]
🧠 Comparativo : Variable vs Redactar
| Criterio | Variable | Redactar (Compose) |
|---|---|---|
| Tipo de valor | Mutable (cambia durante el flujo) [learn.microsoft.com] | Inmutable (resultado fijo de una entrada/expresión) [learn.microsoft.com] |
| Requisitos | Debes inicializar (Initialize variable) [learn.microsoft.com] | Se agrega donde lo necesites, sin inicialización previa [learn.microsoft.com] |
| Mejor uso | Estado, contadores, acumulación, control de flujo [learn.microsoft.com] | Transformaciones, “constantes”, payloads, depuración, expresiones [learn.microsoft.com], [learn.microsoft.com] |
| Paralelismo | Requiere cuidado: puede volverse impredecible en bucles concurrentes [learn.microsoft.com], [learn.microsoft.com] | Suele ser más seguro para procesar iteraciones en paralelo cuando no hay estado compartido [learn.microsoft.com], [learn.microsoft.com] |
🔹 Novedad práctica #1: Redactar como “bloque de rendimiento” para transformación de datos ⚡
La acción Redactar (Data Operations) está pensada para manipular datos de forma ligera: construir objetos, aplicar expresiones, reusar un valor calculado y facilitar debugging al ver entradas/salidas en el historial. [learn.microsoft.com], [learn.microsoft.com]
✅ ¿Qué mejora y para quién?
- Makers funcionales: reduces complejidad visual (menos expresiones repetidas en varias acciones). [learn.microsoft.com], [learn.microsoft.com]
- Desarrolladores / CoE: estandarizas flujos más legibles y fáciles de auditar (nombres como
Compose_Payload,Compose_FechaISO). [learn.microsoft.com]
🔹 Novedad práctica #2: Variable para estado y acumulación (pero con reglas claras) 🧩
Las Variables te permiten almacenar valores globales dentro del flujo, persistirlos a través de iteraciones y actualizar su contenido (set, increment/decrement, append). [learn.microsoft.com]
✅ ¿Qué mejora y para quién?
- Procesos con lógica progresiva: contadores, banderas (boolean), acumulación de resultados. [learn.microsoft.com]
- Automatizaciones con pasos dependientes: cuando el orden importa y necesitas un “estado” confiable. [learn.microsoft.com]
🔹 Novedad práctica #3: Concurrencia en bucles: el punto donde esta decisión se vuelve crítica 🚦
En Power Automate, los bucles Apply to each se ejecutan secuencialmente por defecto, pero puedes habilitar Concurrency Control para procesar iteraciones en paralelo y mejorar tiempos. [learn.microsoft.com]
📌 Pero: Microsoft advierte que si usas Variables dentro de bucles concurrentes, podrías perder predictibilidad en los resultados (condiciones de carrera / orden no garantizado). [learn.microsoft.com], [learn.microsoft.com]
Impacto práctico:
- ✅ Concurrencia ON: ideal para acciones independientes (ej.: notificar, actualizar registros sin dependencia). [learn.microsoft.com]
- ⚠️ Variables + concurrencia: úsalo solo si el orden no importa o si no compartes estado; si el estado es crítico, mantén ejecución secuencial. [learn.microsoft.com], [learn.microsoft.com]
✅ Matriz de decisión rápida (qué usar y cuándo) 📌
| Necesidad | Recomendación |
|---|---|
| Guardar un valor calculado para reutilizarlo | Redactar [learn.microsoft.com], [learn.microsoft.com] |
| Simplificar una expresión larga (y depurarla fácil) | Redactar [learn.microsoft.com], [learn.microsoft.com] |
| Contar iteraciones / llevar un acumulado | Variable [learn.microsoft.com] |
| Construir un “estado” que cambia por condiciones | Variable [learn.microsoft.com] |
| Activar concurrencia en Apply to each | Prioriza Redactar y minimiza Variables compartidas [learn.microsoft.com], [learn.microsoft.com] |
🧪 Casos de uso (escenarios reales y breves)
1) “Normalizar fecha y reutilizarla en 5 acciones” (ideal: Redactar) ✅
Escenario: necesitas una fecha ISO para nombre de archivo, asunto de correo y registro.
Solución: calcula una vez (Compose) y reutiliza su salida.
Beneficio: menos duplicación y más claridad; expresiones más mantenibles. [learn.microsoft.com], [learn.microsoft.com]
2) “Contar cuántos registros cumplen una condición” (ideal: Variable) ✅
Escenario: recorres elementos y requieres un contador.
Solución: Initialize variable (Integer) + incrementar cuando se cumpla la condición.
Beneficio: estado explícito y controlado durante la ejecución. [learn.microsoft.com]
3) “Procesar 200 elementos rápido” (ideal: Concurrencia + Compose) 🚀
Escenario: un Apply to each tarda demasiado.
Solución: habilita concurrencia y evita variables compartidas; usa Compose para transformar cada item.
Beneficio: mejoras en tiempo total cuando las iteraciones no dependen entre sí. [learn.microsoft.com], [learn.microsoft.com]
🛠️ Buenas prácticas recomendadas
- Redactar por defecto, Variable por necesidad. Si no necesitas mutabilidad, usa Redactar. [learn.microsoft.com], [learn.microsoft.com]
- Nombra acciones con intención:
Compose_Payload,Compose_FechaISO,varContadorErrores. Mejora mantenimiento y soporte. [learn.microsoft.com], [learn.microsoft.com] - Concurrencia con criterio: sube el “degree of parallelism” gradualmente y valida límites/overhead. [learn.microsoft.com]
- Expresiones en Redactar para depurar: ver el output de una función es más rápido que “adivinar” en condiciones. [learn.microsoft.com], [learn.microsoft.com]
- Si un bucle requiere resultados “exactos y ordenados”, mantén ejecución secuencial si dependes de variables para consistencia. [learn.microsoft.com], [learn.microsoft.com]
🧾 Conclusiones y próximos pasos ✅
- 📌 Si buscas rendimiento y claridad: adopta Redactar como tu herramienta principal para cálculos y transformaciones. [learn.microsoft.com], [learn.microsoft.com]
- 📌 Si necesitas estado mutable: usa Variables, pero define reglas (dónde se inicializan, cómo se actualizan y cómo afectan el paralelismo). [learn.microsoft.com]
- 📌 Si tu flujo escala en volumen: revisa bucles y considera concurrencia, minimizando variables compartidas para evitar resultados impredecibles. [learn.microsoft.com], [learn.microsoft.com]
✅ Recomendación práctica: toma un flujo “lento”, identifica variables que solo guardan resultados de expresiones (sin mutabilidad real) y reemplázalas por Redactar. Luego evalúa habilitar concurrencia donde el orden no sea relevante. [learn.microsoft.com], [learn.microsoft.com], [learn.microsoft.com]
📚 Referencias oficiales (Microsoft)
- Data operations (incluye Redactar) — Microsoft Learn: Use data operations in Power Automate [learn.microsoft.com]
- Variables en Power Automate — Microsoft Learn: Store and manage values in variables [learn.microsoft.com]
- Paralelismo y concurrencia — Microsoft Learn: Optimize flows with parallel execution and concurrency [learn.microsoft.com]
- Funciones para expresiones (Power Automate / Logic Apps) — Microsoft Learn: Expression functions reference [learn.microsoft.com]

