If / Elseif / Else
If / Elseif / Else
Sección titulada «If / Elseif / Else»Tipo: if · Paquete: Core Activities v1.0.8
Toma una decisión: evalúa una condición y, según sea verdadera o falsa, ejecuta un grupo de actividades u otro. Es la base de la lógica de cualquier automatización — “si el total supera el límite, pedir aprobación; si no, continuar”.
Admite varias condiciones encadenadas: la principal (if), una o más intermedias (elseif) y una por defecto (else).
Cómo funciona
Sección titulada «Cómo funciona»- Evalúa la condición principal. Si es verdadera, ejecuta la rama
theny termina. - Si es falsa, evalúa en orden cada condición
elseif. La primera que sea verdadera ejecuta su rama y termina. - Si ninguna se cumple, ejecuta la rama
else(si existe). Sinelse, el flujo simplemente sigue.
Solo se ejecuta una rama: la primera cuya condición sea verdadera. Las condiciones de las ramas siguientes ni siquiera se evalúan.
Cómo se evalúa la condición
Sección titulada «Cómo se evalúa la condición»La condición admite dos formas:
- Constructor visual: una o varias filas columna · operador · valor, combinadas con AND (todas deben cumplirse) u OR (basta una). La columna se lee como expresión (por ejemplo
totalofila["Estado"]); el valor es el dato con el que se compara. Un grupo sin filas cuenta como falso. - Expresión libre: cualquier expresión C# que devuelva verdadero o falso (ej.
intentos < 3 && !exito). Un valor vacío (null) cuenta como falso; un texto debe sertrueofalse; un número distinto de 0 cuenta como verdadero.
Operadores del constructor visual:
| Operador | Se cumple cuando… |
|---|---|
equals / not-equals | Los valores son iguales / distintos. Si ambos parecen números, se comparan como números; si no, como texto sin distinguir mayúsculas. |
contains / starts-with / ends-with | El texto contiene / empieza por / termina en el valor, sin distinguir mayúsculas. |
greater-than / less-than / greater-or-equal / less-or-equal | Comparación numérica. Ambos lados deben ser números; si no, la actividad falla. |
is-empty / is-not-empty | El campo está vacío (o solo tiene espacios) / tiene contenido. No usan valor. |
Parámetros requeridos
Sección titulada «Parámetros requeridos»| Parámetro | Tipo | Por defecto | Descripción |
|---|---|---|---|
condition | bool | — | Condición a evaluar: constructor visual o expresión booleana. Ej: total > 1000. |
Parámetros opcionales
Sección titulada «Parámetros opcionales»Ninguno.
Sub-flujos
Sección titulada «Sub-flujos»Estos parámetros son bloques de actividades que se configuran como lanes en el canvas, no como texto.
then requerido
Sección titulada «then requerido»Actividades que se ejecutan cuando la condición es verdadera.
elseif opcional
Sección titulada «elseif opcional»Lista de ramas intermedias, cada una con su propia condition y su then, evaluadas en orden cuando la condición principal es falsa. No se editan en el panel de propiedades: el lienzo las muestra como lanes («elseif 1», «elseif 2»…) cuando el playbook las tiene. Para encadenar condiciones desde el lienzo, la forma más directa es anidar otro If dentro de else.
else opcional
Sección titulada «else opcional»Actividades que se ejecutan cuando ninguna condición se cumplió.
Esta actividad no devuelve ningún valor.
Ejemplo
Sección titulada «Ejemplo»Clasificar una factura según su monto:
If condition = num(fila["Total"]) > 1000000 ├─ then: │ Log level = warning message = "Factura alta: requiere aprobación" │ Set Variable name = requiereAprobacion value = true └─ else: Log level = info message = "Factura dentro del límite"Errores comunes
Sección titulada «Errores comunes»| Mensaje | Causa y solución |
|---|---|
Value '…' is not numeric. / Comparison value '…' is not numeric. | Un operador numérico del constructor visual recibió un texto (el campo o el valor). Convierte con num(...) o usa equals. |
String '…' was not recognized as a valid Boolean. | La expresión devolvió un texto distinto de true/false. Escribe una comparación (estado == "Pendiente"). |
La condición siempre va al else | Comparaste celdas de tabla con == directo. Envuelve en str(...)/num(...) o usa eq(a,b). |
Actividades relacionadas
Sección titulada «Actividades relacionadas»- While — repetir mientras una condición sea verdadera.
- Try / Catch — ramificar según si algo falla, no según una condición.
- Expresiones — escribir la condición.