Saltar al contenido principal

Condition

Usa Condition cuando quieras que un flujo de trabajo tome una ruta diferente según el valor de la salida de un paso anterior o de una entrada inicial. El paso Condition evalúa una expresión booleana y enruta la ejecución por una rama TRUE o FALSE. Ambas ramas deben volver a unirse eventualmente en un único paso de fusión antes de que el flujo de trabajo pueda continuar. Recurre a este paso cuando necesites lógica if/else, pasos condicionados (por ejemplo, enviar un correo solo cuando una puntuación esté por encima de un umbral) o divisiones A/B ligeras dentro de un flujo de trabajo.

Configuración

OpciónRequeridoDescripción
NameNoEtiqueta del paso en el lienzo del flujo de trabajo.
ConditionLa expresión booleana que decide qué rama se ejecuta. Se construye en el Condition builder como una o más filas, opcionalmente anidadas en grupos AND / OR / NOT.
Branches rejoin atSolo lectura. Se muestra una vez que ambas ramas convergen en un paso de fusión.
Agrega este paso desde el grupo Utilities en Search steps…. En el selector de pasos, la etiqueta es Condition. Cuando insertas una Condition, Fetch Hive crea automáticamente una rama TRUE vacía y una rama FALSE vacía que inicialmente apuntan a cualquier paso que solía seguir el punto de inserción. Usa los controladores + en cada rama para agregar pasos a ese lado de la rama desde el lienzo.

Operadores

El Condition builder admite estos operadores:
  • Operadores de grupo: AND, OR, NOT — combinan varias filas o niegan una subexpresión.
  • Operadores de hoja:
    • equals, does not equal
    • >, >=, <, <=
    • contains, starts with, ends with
    • is one of
    • exists, is empty — toman solo un operando izquierdo

Operandos

Cada cláusula compara un operando izquierdo con un operando derecho (excepto exists y is empty, que solo toman un operando izquierdo). Los operandos son:
  • Una variable del flujo de trabajo — haz clic en Insert Variable para referenciar una entrada inicial ({{variable_name}}) o la salida de un paso anterior ({{step_2.output.score}}).
  • Un valor literal — escribe directamente una cadena, número, booleano o arreglo en el campo de la derecha.

Salida

Haz clic en Run en el encabezado del paso para probar la Condition. Fetch Hive muestra el resultado booleano evaluado y un seguimiento de los operandos izquierdo/derecho resueltos en Output después de que se complete la ejecución. Durante una ejecución real del flujo de trabajo, solo se ejecuta una rama — la que coincide con el resultado booleano. La referencia base del paso es:
{{STEP_IDENTIFIER.output}}
Que se resuelve como true o false para pasos posteriores que quieran referenciar la decisión de la rama en sí.

Ejemplo

Agrega Condition desde el grupo Utilities en Search steps…. Establece Name en algo como Score above threshold. En el Condition builder:
  1. En el operando izquierdo, haz clic en Insert Variable y elige {{step_2.output.score}}.
  2. Elige el operador >.
  3. En el operando derecho, elige Literal y escribe 70.
Haz clic en Run para confirmar que la expresión se evalúa como esperas con la última salida de prueba. Luego agrega el paso «enviar correo» en la rama TRUE del lienzo para que solo se ejecute cuando la puntuación esté por encima de 70. La rama FALSE puede permanecer vacía (se vuelve a unir directamente al paso de fusión) o puedes agregar una ruta alternativa.

Notas

  • La expresión debe estar completa antes de guardar. Cada fila necesita un operando izquierdo y derecho (excepto exists / is empty, que solo toman un operando izquierdo).
  • El evaluador es flexible con cadenas que parecen numéricas — comparar "70" con 70 funciona como esperarías.
  • Una Condition solo se puede eliminar cuando ambas ramas están vacías. Eliminar una Condition cascadea la eliminación de cada paso dentro de las ramas TRUE y FALSE, así que limpia las ramas primero si quieres conservar esos pasos.
  • Ambas ramas deben converger en un único paso de fusión para que el flujo de trabajo sea válido. Fetch Hive muestra una advertencia si las ramas no se vuelven a unir.
  • Las Conditions aún no se pueden anidar dentro de la rama de otra Condition.
Consulta también: Creación y edición, Pruebas e iteración y Manejo de errores