UiPath Documentation
getting-started
latest
false
Guía del desarrollador de introducción
  • Introducción
    • Información general
    • Configuración del entorno
  • Primeros pasos con los agentes de UiPath
  • Primeros pasos con los agentes de UiPath utilizando LangGraph
  • Crear un agente de código bajo en Studio Web
  • Añadir herramientas a tu agente de UiPath
  • Primeros pasos con UiPath Maestro Flow
    • Introducción
    • Crea el flujo
    • Verificar el flujo
    • Probar el flujo
    • Implementar el flujo
    • Ejecutar el flujo
Importante :
Este contenido se ha traducido mediante traducción automática. La localización de contenidos recién publicados puede tardar entre una y dos semanas en estar disponible.

Crea el flujo

Cree el flujo de observación de precios utilizando VS Code añadiendo cada uno de los 6 nodos y configurándolos.

Ahora que hemos andamiado nuestro proyecto desde el Paso 1, cubriremos los bloques de construcción fundamentales y luego añadiremos los cinco nodos restantes, las tres entradas de desencadenador y la variable de salida para nuestro Flujo.

Nota:

Utilizaremos los términos "descendente" y "ascendente" para el resto de este tutorial, y debes familiarizarte con ellos.

  • Upstream: los nodos que vienen antes de un nodo determinado en la ruta de ejecución del flujo. Los nodos anteriores de un nodo son todo de lo que depende: sus salidas se alimentan de él y deben completarse antes de que pueda ejecutarse.
  • Descendente: los nodos que vienen después de un nodo determinado en la ruta de ejecución del flujo. Los nodos posteriores de un nodo son todo lo que depende de él: consumen sus salidas y se ven afectados si falla, cambia o se vuelve a ejecutar.

Cómo cambiar el nombre de un ID de nodo​

Durante este tutorial, cambiaremos el nombre de los valores ID del nodo generado en la mayoría de los pasos de este tutorial para que sean más fáciles de leer. Es más fácil entender lo que hace un nodo llamado fetchRate1 que httpRequest1. Un nodo consta de un label y un ID.

Puedes tener varios nodos con el mismo label, pero cada ID debe ser único. Al añadir un nuevo nodo, el valor predeterminado para ID es el tipo de nodo con un número adjunto, a partir de 1. Por ejemplo, añadir el primer tipo de nodo final tendrá un ID de end1 y el segundo será end2. Cambiar el label de un nodo no actualiza el ID.

Los pasos para cambiar el ID de un nodo son:

  1. Selecciona el nodo en el lienzo para mostrar la barra de herramientas en línea encima de él.
  2. Selecciona el lápiz, Editar.
  3. Abre la pestaña Avanzado y verás el campo ID mostrado como un campo de solo lectura, con un botón de lápiz junto a él para Renombrar ID de nodo.
  4. Selecciona ese lápiz para abrir un cuadro de diálogo Cambiar nombre de ID de nodo con una entrada para Nuevo ID.
  5. Introduce el nuevo ID y selecciona Cambiar nombre.

El cuadro de diálogo incluirá detalles para cualquier actualización necesaria al cambiar el nombre ID campo, por ejemplo "se actualizarán 3 referencias", "2 conexiones" y "1 expresión en otros nodos". La opción Cambiar nombre permanecerá deshabilitada hasta que realices un cambio en el valor y luego se actualizarán todas las referencias que se mostraron.

Paso 2: crear el flujo​

Ahora crearemos nuestro flujo de trabajo de Observación de precios nodo a nodo. En el código VS, abre PriceWatch/PriceWatch.flow : deberías ver un nodo de desencadenador manual llamado start en el lienzo.

Paso 2.1: declarar las entradas del desencadenador​

Necesitamos añadir tres entradas al nodo desencadenador de inicio que utilizaremos en nuestra llamada a la API de Frankfurter. El baseCurrency es aquel para el que requerimos el tipo de cambio actual del quoteCurrency, y el alertThreshold es el valor por debajo del cual queremos ser alertados. Añadamos estas 3 entradas con:

  1. Selecciona el nodo Desencadenador manual en el lienzo.

  2. Abre las propiedades del nodo con la opción "Editar" botón.

  3. Utiliza el botón + Add input argument para añadir baseCurrency con el tipo String y el valor predeterminado USD.

  4. Utiliza el botón + Add input argument para añadir quoteCurrency con el tipo String y el valor predeterminado EUR.

  5. Utiliza el botón + Add input argument para añadir alertThreshold con el tipo Number y el valor predeterminado 0.9.

  6. Confirma que has añadido las 3 variables de entrada comparándolas con la siguiente imagen:

Paso 2.2: añadir el nodo de solicitud HTTP​

El tipo de nodo HTTP se utilizará para llamar a la API de Frankfurter para recuperar los datos del tipo de cambio utilizando nuestras 3 variables de entrada de desencadenador. Créalo con los siguientes pasos:

  1. Selecciona el + en el manipulador saliente del nodo Desencadenador manual.

  2. Busca en la paleta del nodo Solicitud HTTP y selecciónala.

  3. Abre las propiedades del nuevo nodo con la opción "Editar" botón.

  4. Establece la Etiqueta del nodo en Fetch rate.

  5. Cambia el nombre del campo ID de httpRequest1 a fetchRate1.

  6. En el panel de propiedades, deja Autenticación establecida en Autenticación manual.

  7. Establece el Método HTTP en GET.

  8. Establece la URL en https://api.frankfurter.dev/v2/rates.

  9. En la sección Parámetros de consulta , utiliza + Add pair dos veces para añadir dos pares de clave/valor vacíos.

  10. Para el primer par, establece la clave en base y el valor en $vars.start.output.baseCurrency.

  11. Para el segundo par, establece la clave en quotes y el valor en $vars.start.output.quoteCurrency.

Confirme que el ID del nodo en el panel de propiedades dice fetchRate1 en la pestaña Advanced y que ambos parámetros de consulta se guardan. En tiempo de ejecución, el nodo solicita https://api.frankfurter.dev/v2/rates?base=USD&quotes=EUR y expone exactamente tres claves:

  • $vars.fetchRate1.output.body : el cuerpo de la respuesta analizado
  • $vars.fetchRate1.output.code: el código de estado de respuesta HTTP
  • $vars.fetchRate1.output.headers: los encabezados de respuesta HTTP

En el fondo, cualquier nodo de solicitud HTTP requiere un Integration Service para realizar una llamada a la API. Esto suele requerir primero crear uno y luego hacer referencia a él desde el nodo de solicitud HTTP. Como la API de Frankfurter no requiere autenticación, establecer el método de autenticación en Manual authentication crea una conexión implícita utilizando la configuración que proporcionamos en lugar de requerirnos crear primero la conexión y luego seleccionarla en el menú desplegable.

Paso 2.3: remodelar la respuesta con un nodo de Script​

Utilizaremos un nodo de Script para extraer el tipo de cambio actual y compararlo con nuestro valor de umbral de alerta. Los datos del cuerpo del JSON de respuesta de la API de Frankfurter son una matriz , ya que puedes solicitar el tipo de cambio para varias monedas en una sola llamada a la API. La matriz tendrá una entrada por moneda cotizada: solo incluiremos 1 valor quoteCurrency , por lo que la matriz siempre contendrá solo 1 resultado:

[
  {
    "date": "2026-09-01",
    "base": "USD",
    "quote": "EUR",
    "rate": 0.86111
  }
]
[
  {
    "date": "2026-09-01",
    "base": "USD",
    "quote": "EUR",
    "rate": 0.86111
  }
]

Sigue estos pasos para crear el nodo Script:

  1. Selecciona el + en el manipulador saliente del nodo Obtener tasa .

  2. Busca Script en la paleta del nodo y selecciónalo.

  3. Abre las propiedades del nuevo nodo Script con la opción "Editar" botón.

  4. Establece la Etiqueta del nodo en Reshape rate.

  5. Cambia el nombre de ID de script1 a reshapeRate1.

  6. En el editor de scripts, introduce lo siguiente:

    const rates = $vars.fetchRate1.output.body;
    const quote = $vars.start.output.quoteCurrency;
    const match = rates.find(function (entry) { return entry.quote === quote; });
    const rate = match.rate;
    
    return {
      pair: match.base + "/" + quote,
      rate: rate,
      asOf: match.date,
      belowThreshold: rate < $vars.start.output.alertThreshold
    };
    const rates = $vars.fetchRate1.output.body;
    const quote = $vars.start.output.quoteCurrency;
    const match = rates.find(function (entry) { return entry.quote === quote; });
    const rate = match.rate;
    
    return {
      pair: match.base + "/" + quote,
      rate: rate,
      asOf: match.date,
      belowThreshold: rate < $vars.start.output.alertThreshold
    };
    

Aunque sabemos que solo habrá un único resultado en la API, el script no debe asumir que el valor que queremos es la primera entrada. En lugar de utilizar una referencia de ubicación de índice con rates[0] o buscar una entrada con "EUR" en ella, encontramos la entrada donde quote coincide con el valor quoteCurrency proporcionado desde la variable de entrada del desencadenador. A continuación, el script compara la tasa actual con el umbral e incluye el resultado en el objeto de salida del nodo, manteniendo la lógica de comparación junto al código que consume los datos de la API en lugar de repetirla en el nodo de decisión.

ADVERTENCIA:

Introduce el cuerpo exactamente como se muestra, sin contenedor function . Un envoltorio function main(input) { … } alrededor del código seguirá ejecutándose correctamente, pero devolverá null en lugar del objeto devuelto. Esto evitará que los nodos posteriores utilicen los datos; esto es diferente de la función codificada de UiPath, que utiliza el contenedor.

Los nodos posteriores ahora pueden leer las variables de salida como:

  • $vars.reshapeRate1.output.pair
  • $vars.reshapeRate1.output.rate
  • $vars.reshapeRate1.output.asOf
  • $vars.reshapeRate1.output.belowThreshold

Paso 2.4: ruta basada en el resultado​

Un nodo de decisión divide el flujo en dos rutas en función del valor de belowThreshold: es un booleano, por lo que solo puede ser true o false. Para cada una de estas ramas, añadiremos un nodo final para devolver el resultado utilizando una variable de salida. Establecemos el valor de esta variable de salida en cada una de las ramas del nodo de decisión, pero primero debemos crear la variable y luego usarla al añadir nuestro nodo de decisión:

  1. Selecciona la pestaña Variables en el panel de propiedades sin ningún nodo seleccionado.

  2. Utilice el + junto a "Salidas" para abrir el cuadro de diálogo para añadir una variable de salida.

  3. Crea la variable con el nombre watchResult, tipo Object, y sin valor predeterminado.

  4. Selecciona el + en el controlador de salida del nodo Tasa de reforma .

  5. Busca en la paleta del nodo Decisión y selecciónala.

  6. Abre las propiedades del nuevo nodo con la opción "Editar" botón.

  7. Establece la Etiqueta del nodo en Below threshold.

  8. Cambia el nombre del nodo ID de decision1 a belowThreshold1.

  9. Establecer condición en:

    $vars.reshapeRate1.output.belowThreshold === true
    $vars.reshapeRate1.output.belowThreshold === true
    

    No hay prefijo =js: aquí, a diferencia de los parámetros de consulta en el nodo HTTP. Una expresión de decisión es un campo de flujo nativo que el motor de flujo evalúa por sí mismo, por lo que ya es JavaScript.

  10. Establece la etiqueta de la rama Verdadero en Alert.

  11. Establece la etiqueta de rama Falso en No action.

    Las etiquetas aparecen en los dos controladores de salida del nodo, por lo que el lienzo y el seguimiento de ejecución se leen como reglas empresariales en lugar de como true y false.

Paso 2.5: añadir el nodo Final de alerta​

El nodo de decisión tiene 2 ramas, primero, añade la de la rama Alert con:

  1. Selecciona el + en la rama Alerta .

  2. Busca en la paleta del nodo Fin y selecciónalo.

  3. Abre las propiedades del nuevo nodo Final con la opción "Editar" botón.

  4. En la pestaña Parámetros, establece la Expresión para watchResult en:

    $vars.reshapeRate1.output
    $vars.reshapeRate1.output
    
  5. En la pestaña Avanzado, establece la Etiqueta en End alert.

  6. Cambia el nombre del ID del nodo de end1 a endAlert1.

Paso 2.6: añadir el nodo final Sin acción​

Ahora añade el nodo final No action para la otra rama del nodo de decisión con:

  1. Selecciona el + en la rama Sin acción .

  2. Busca en la paleta del nodo Fin y selecciónalo.

  3. Abre las propiedades del nuevo nodo Final con la opción "Editar" botón.

  4. En la pestaña Parámetros, establece la Expresión para watchResult en:

    $vars.reshapeRate1.output
    $vars.reshapeRate1.output
    
  5. En la pestaña Avanzado, establece la Etiqueta del nodo en End no action.

  6. Cambia el nombre del ID del nodo de end2 a endNoAction1.

Revisar​

El lienzo ahora debería mostrar seis nodos conectados y cinco bordes, una sola bifurcación después del nodo Decisión, y ambos nodos finales llevan una asignación para watchResult. Tu flujo ahora debería ser similar al siguiente, puedes utilizar el icono de escoba para organizar los nodos en el flujo y el botón Fit to screen para cambiar el tamaño del lienzo para que se ajuste a tu pantalla.


Siguiente paso​

Ahora que está creado, verificaremos el flujo utilizando el comando uip maestro flow validate .

¿Te ha resultado útil esta página?

Conectar

¿Necesita ayuda? Soporte

¿Quiere aprender? UiPath Academy

¿Tiene alguna pregunta? Foro de UiPath

Manténgase actualizado