UiPath Documentation
maestro-automate
latest
false
Guía de usuario de Maestro Automate

Flujo de control

Control flow: which node to choose when a workflow must decide, repeat, or wait for parallel paths, with an example that uses all four together.

El flujo de control determina cómo un flujo de trabajo decide qué ejecutar y en qué orden. Un flujo de trabajo comienza como una línea recta de nodos, pero el trabajo real requiere decisiones, repetición y reincorporación de rutas. Cuatro nodos de flujo de control cubren estas necesidades: Decisión, Cambiar, Bucle y Combinar. Se ramifican, repiten y vuelven a unir rutas sin salir del lienzo.

Ramificación​

La ramificación divide un flujo de trabajo en rutas independientes, por lo que se ejecutan diferentes nodos dependiendo de una condición.

Decisión: dos caminos​

El nodo de decisión evalúa una sola expresión de JavaScript y la enruta a una de dos salidas: verdadero o falso. Se ajusta a preguntas de sí o no, comprobaciones de aprobación o fallo y cualquier otra comprobación con dos resultados.

$vars.httpRequest1.output.code === 200
$vars.httpRequest1.output.code === 200

La expresión anterior envía respuestas correctas por la rama verdadera y todo lo demás por la rama falsa.

La referencia del nodo de decisión describe la configuración completa.

Conmutador: tres o más rutas​

El nodo Switch evalúa una lista ordenada de expresiones de casos y toma la primera coincidencia. Añade hasta diez casos más una rama predeterminada opcional para cualquier cosa que no coincida.

El conmutador ajusta el enrutamiento por categoría, estado o cualquier valor con más de dos resultados posibles. La referencia del nodo Switch describe la configuración completa.

Bucles​

Un bucle repite una secuencia de nodos una vez para cada elemento de una colección.

Bucle (para cada uno)​

El nodo Bucle itera sobre una colección, que es una matriz, una lista ordenada de valores, y ejecuta su cuerpo una vez por elemento. Expone tres variables dentro del cuerpo del bucle:

  • currentItem: el elemento para la iteración actual.
  • currentIteration: el número de la iteración actual.
  • collection: la matriz completa que se está iterando.

Una vez completadas todas las iteraciones, el bucle produce una matriz output que agrega los resultados de cada iteración, y el flujo de trabajo continúa desde el nodo conectado al controlador de salida del bucle en el borde derecho.

La expresión de colección de un nodo de bucle apunta a la matriz sobre la que itera, como $vars.script1.output. La opción Paralelo ejecuta todas las iteraciones al mismo tiempo en lugar de secuencialmente. El bucle aparece en el lienzo como un contenedor, con un identificador de inicio y un identificador de continuación en su interior. Los nodos colocados entre ellos forman el cuerpo del bucle, y el controlador de continuación finaliza cada iteración.

Salir de un bucle antes de tiempo​

Un nodo de bucle ofrece dos formas de detenerse antes de llegar al final de la colección:

  • Break on condition is an expression that the loop checks after each iteration completes. When it's true, the loop stops, and the workflow continues after the loop. Because the check happens after each iteration in order, it works only in sequential loops.
  • El controlador de interrupción aparece dentro del bucle cuando Mostrar controlador de interrupción está activado. Cuando una ruta en el cuerpo del bucle llega a él, el bucle deja de iterar. El controlador de interrupción está disponible tanto en bucles secuenciales como en paralelo. Úsalo cuando un nodo del cuerpo tome la decisión, por ejemplo, una Decisión que encuentre el elemento que estás buscando.

Bucle describe ambas configuraciones, con un ejemplo.

Fusionar ramas​

Un nodo Fusionar vuelve a unir ramas paralelas. Espera a que finalice cada rama entrante antes de que el flujo de trabajo continúe, y acepta varios bordes entrantes en su único controlador de entrada.

Las ramas de una Decisión o Switch son mutuamente excluyentes, porque solo se ejecuta una de ellas. No necesitan una fusión, y una fusión después de ellos seguiría esperando la rama que no se ejecutó. Combinar describe cómo se comporta.

Ejemplo práctico​

Un flujo de trabajo que obtiene una lista de tickets de soporte, recorre cada uno de ellos y enruta los tickets de alta prioridad de forma diferente al resto utiliza cinco nodos:

  1. Un nodo de solicitud HTTP llama a una API de ticket y devuelve una matriz de objetos de ticket.
  2. Un nodo de bucle itera sobre $vars.httpRequest1.output.body.tickets.
  3. Dentro del cuerpo del bucle, un nodo Decisión evalúa $vars.loop1.currentItem.priority === "high". La rama verdadera se conecta a un nodo Enviar correo electrónico , que proviene de un conector de correo electrónico como Amazon SES, que alerta al equipo de guardia; la rama falsa se conecta a un nodo de Script que registra el ticket para su revisión posterior.
  4. Ambas ramas se conectan al controlador de continuación del bucle, por lo que la iteración finaliza independientemente de la ruta que se ejecute.
  5. Después de todas las iteraciones, el nodo conectado al controlador de salida del bucle continúa con el resto del flujo de trabajo.

Este patrón de obtención, bucle y rama cubre una gran parte de los escenarios de automatización del mundo real.

Próximos pasos​

¿Te ha resultado útil esta página?

Conectar

¿Necesita ayuda? Soporte(opens in new window)

¿Quiere aprender? UiPath Academy(opens in new window)

¿Tiene alguna pregunta? Foro de UiPath(opens in new window)

Manténgase actualizado