Guardar información temporal
-
Acumular valores
-
Controlar cuándo y cuántas veces se ejecuta una acción
-
Evitar duplicidades y efectos no deseados
Este tipo de workflow es clave cuando trabajas con:
-
Listas de productos
-
Reglas complejas
-
Condiciones múltiples
-
Bonificaciones que solo deben aplicarse una vez
Qué son las variables en un workflow
Una variable es un valor temporal que se crea y se utiliza solo durante la ejecución del workflow.
Sirve para:
-
Guardar resultados intermedios
-
Marcar estados (true / false)
-
Acumular importes o cantidades
-
Tomar decisiones al final del flujo
Las variables no se guardan en el perfil del cliente.
Existen únicamente mientras el workflow se está ejecutando.
Tipos habituales de variables
En Omniwallet puedes usar variables para almacenar:
-
Números (importe, cantidad, contadores)
-
Booleanos (true / false)
-
Texto
-
Listas
Caso 1 – Variable booleana (detectar una condición)
Objetivo
Detectar si una compra contiene al menos un producto de una categoría concreta y actuar una sola vez.
Por qué es necesario
Si recorres una lista de productos y aplicas acciones dentro del bucle, corres el riesgo de ejecutar la acción varias veces.
Paso a paso
1. Crear la variable
-
Nombre:
categoria_detectada -
Tipo: Boolean
-
Valor inicial:
false
2. Bucle sobre productos
-
Paso: Para cada elemento en lista
-
Lista:
items
3. Condición dentro del bucle
-
Si
item.categorycontienePremium
👉 En la rama Verdadero:
-
Acción: Asignar variable
-
categoria_detectada = true
4. Salir del bucle
Aunque el bucle continúe, la variable ya queda marcada.
5. Acción fuera del bucle
Añade una Condición:
-
Si
categoria_detectada = true
👉 Acción:
-
Multiplicar puntos (una sola vez)
Caso 2 – Variable acumuladora (sumar valores)
Objetivo
Sumar el importe de ciertos productos y decidir una acción según el total.
Ejemplo
Si el importe total de productos “Electronics” supera 200 €, aplicar un bonus.
Paso a paso
1. Crear variable
-
Nombre:
importe_electronics -
Tipo: Número
-
Valor inicial:
0
2. Bucle sobre productos
-
Lista:
items
3. Condición por categoría
-
Si
item.categorycontieneElectronics
👉 En Verdadero:
-
Acción: Calcular
-
importe_electronics = importe_electronics + (item.price * item.quantity)
4. Condición final
Fuera del bucle:
-
Si
importe_electronics ≥ 200
👉 Acción:
-
Añadir puntos fijos
-
O multiplicar puntos
Caso 3 – Control de ejecución (una sola vez)
Problema habitual
Un workflow complejo puede ejecutar una acción más de una vez sin que lo notes.
Solución
Usar una variable de control.
Ejemplo
-
Variable:
bonus_aplicado -
Inicial:
false
Antes de aplicar cualquier bonus:
-
Condición:
bonus_aplicado = false
Después de aplicar el bonus:
-
Asignar
bonus_aplicado = true
Esto garantiza que:
-
La acción solo se ejecuta una vez
-
El workflow es seguro y predecible
Control de flujo avanzado
Las variables permiten:
-
Simular estructuras tipo
if / else if -
Crear reglas escalonadas complejas
-
Priorizar condiciones
-
Romper flujos lógicos
Ejemplo típico:
-
Si condición A → acción A
-
Si no, y condición B → acción B
-
Si no, no hacer nada
Todo controlado con variables y orden.
Errores comunes
❌ No inicializar variables
❌ Usar la variable fuera de su contexto
❌ Modificar variables dentro de bucles sin control
❌ Olvidar el estado final
Buenas prácticas
✔ Nombres claros para las variables
✔ Inicializar siempre
✔ Aplicar acciones fuera de bucles
✔ Testear con datos complejos
✔ Documentar el propósito de cada variable
Cuándo usar variables (regla de oro)
Usa variables cuando:
-
Hay bucles
-
Hay acumulaciones
-
Hay más de una condición
-
Hay riesgo de duplicidades
-
La lógica ya no cabe en un “if simple”