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.

Verificar el flujo

Verifique que el flujo de observación de precios se haya creado correctamente sin errores ni advertencias.

Paso 3: verificar el flujo​

En los siguientes pasos, utilizaremos la UiPath CLI (uip) para validar nuestro flujo y cubrir algunas advertencias y errores comunes que detectaría. Esta sección te enseña a utilizar la CLI para ver cómo está configurado tu flujo y validarlo. Puedes saltar a la sección Probar el flujo y volver más tarde si prefieres ese enfoque.

3.1 - Confirmar los nodos y las conexiones​

Ejecuta el siguiente comando para enumerar los nodos:

uip maestro flow node list PriceWatch/PriceWatch.flow --output table
uip maestro flow node list PriceWatch/PriceWatch.flow --output table

La lista de nodos debe contener exactamente estos seis ID:

Id              | Type                | Label
----------------|---------------------|-----------------
start           | core.trigger.manual | Manual trigger
fetchRate1      | core.action.http.v2 | Fetch rate
reshapeRate1    | core.action.script  | Reshape rate
belowThreshold1 | core.logic.decision | Below threshold
endAlert1       | core.control.end    | End alert
endNoAction1    | core.control.end    | End no action
Id              | Type                | Label
----------------|---------------------|-----------------
start           | core.trigger.manual | Manual trigger
fetchRate1      | core.action.http.v2 | Fetch rate
reshapeRate1    | core.action.script  | Reshape rate
belowThreshold1 | core.logic.decision | Below threshold
endAlert1       | core.control.end    | End alert
endNoAction1    | core.control.end    | End no action

A continuación, ejecuta el siguiente comando para comprobar las conexiones (bordes) entre nodos:

uip maestro flow edge list PriceWatch/PriceWatch.flow --output table
uip maestro flow edge list PriceWatch/PriceWatch.flow --output table

La lista de bordes debe contener cinco bordes, y el nodo de decisión debe aparecer dos veces como origen, una en su puerto true y otra en false. Un nodo de decisión con un borde saliente es el defecto estructural más importante en este flujo, y la siguiente sección explica cómo comprobarlo.

Id                                         | Source                | Target               
-------------------------------------------|-----------------------|----------------------
start-output-fetchRate1-input              | start:output          | fetchRate1:input     
fetchRate1-default-reshapeRate1-input      | fetchRate1:default    | reshapeRate1:input   
reshapeRate1-success-belowThreshold1-input | reshapeRate1:success  | belowThreshold1:input
belowThreshold1-true-endAlert1-input       | belowThreshold1:true  | endAlert1:input      
belowThreshold1-false-endNoAction1-input   | belowThreshold1:false | endNoAction1:input   
Id                                         | Source                | Target               
-------------------------------------------|-----------------------|----------------------
start-output-fetchRate1-input              | start:output          | fetchRate1:input     
fetchRate1-default-reshapeRate1-input      | fetchRate1:default    | reshapeRate1:input   
reshapeRate1-success-belowThreshold1-input | reshapeRate1:success  | belowThreshold1:input
belowThreshold1-true-endAlert1-input       | belowThreshold1:true  | endAlert1:input      
belowThreshold1-false-endNoAction1-input   | belowThreshold1:false | endNoAction1:input   

Si tus ID difieren, corrígelos ahora en lugar de adaptar las expresiones de las páginas siguientes. Para cambiar los ID, sigue los pasos descritos sobre cómo cambiar el nombre de un ID de nodo.

3.2 - Comprobar advertencias y errores​

El comando validation lee todo el archivo, lo valida y es un buen hábito ejecutarlo antes de implementar un flujo para detectar posibles errores. Utiliza el siguiente comando:

uip maestro flow validate PriceWatch/PriceWatch.flow
uip maestro flow validate PriceWatch/PriceWatch.flow

Confirme que ve "Status": "Valid" sin campos Warnings (el campo File contendrá la ruta completa y absoluta del archivo .flow dependiendo de su sistema operativo y nombre de usuario):

{
  "Result": "Success",
  "Code": "FlowValidate",
  "Data": {
    "File": "/home/user/tutorial-maestro-flow-price-watch/PriceWatch/PriceWatch.flow",
    "Status": "Valid"
  }
}
{
  "Result": "Success",
  "Code": "FlowValidate",
  "Data": {
    "File": "/home/user/tutorial-maestro-flow-price-watch/PriceWatch/PriceWatch.flow",
    "Status": "Valid"
  }
}

Si no ves ninguna Warnings, puedes saltar al siguiente paso para Probar el flujo.

Consejo:

Se recomienda encarecidamente ejecutar el comando validate antes de ejecutar el flujo para evitar problemas como los que se muestran a continuación. Tanto uip maestro flow debug como uip maestro flow publish se completarán correctamente con advertencias y solo fallarán si hubo errores. Si estás configurando flujos de trabajo de integración continua/implementación continua (CI/CD), recuerda añadir uip maestro flow validate antes del comando publish para asegurarte de que no publique o implemente un paquete que tenga advertencias.

Advertencias comunes​

Aquí hay dos tipos de advertencias comunes a los que hay que estar atento y cómo solucionarlos:

  1. Falta una triggerNodeId en una variable de entrada, lo que significa que se configuró como una variable global, no como una variable de entrada de desencadenador. Cualquier nodo puede leer y establecer variables globales, y no se mostrarán al desencadenar el flujo manualmente como un valor obligatorio a proporcionar.

    - [variables.globals[baseCurrency].triggerNodeId] Input variable "baseCurrency" is
      read via `$vars.start.output.baseCurrency`, but it has no "triggerNodeId". At
      runtime the trigger "start" output will not contain "baseCurrency", so the value
      resolves to null (a downstream node may fault, e.g. "Cannot read property '…' of
      null"). Set "triggerNodeId": "start" on the "baseCurrency" global.
    - [variables.globals[baseCurrency].triggerNodeId] Input variable "baseCurrency" is
      read via `$vars.start.output.baseCurrency`, but it has no "triggerNodeId". At
      runtime the trigger "start" output will not contain "baseCurrency", so the value
      resolves to null (a downstream node may fault, e.g. "Cannot read property '…' of
      null"). Set "triggerNodeId": "start" on the "baseCurrency" global.
    

    Para solucionar este problema, primero elimina la variable global baseCurrency y luego edita el nodo desencadenador start para añadir la variable baseCurrency en ese nodo (consulta el paso 2.1).

  2. MISSING_OUTPUT_MAPPING : un nodo final que no establece las variables de salida y las devolverá con valores null : cualquier sistema descendente o flujo que los necesite probablemente cometerá un error si no se establecen los valores.

    - [nodes[endAlert1].outputs.watchResult.source] [MISSING_OUTPUT_MAPPING] "End alert"
      is missing output mapping for "watchResult"
    - [nodes[endAlert1].outputs.watchResult.source] [MISSING_OUTPUT_MAPPING] "End alert"
      is missing output mapping for "watchResult"
    

    Para solucionar este problema, edita el nodo endAlert1 y añade el código que falta para establecer la variable watchResult (consulta los pasos 2.5 y 2.6).

Consejo:

Cada nodo final tendrá un campo por variable de salida creada en el flujo. Esto garantiza que todos los nodos finales posibles devolverán las mismas salidas, pero la forma en que se establecen se configura en cada nodo final individual. Una forma útil de pensar en esto es que las variables de entrada del nodo Desencadenador y la variable de salida de los nodos Finales son los valores de contrato necesarios para este Flujo, similares a los objetos de solicitud y respuesta para una llamada a la API.

Si no se establece una asignación de salida en un nodo final, se resaltará con una advertencia roja para "End" is missing output mapping for "<name>" al ver las propiedades del nodo en el lienzo en VS Code. Esa es la misma advertencia que uip maestro flow validate muestra como MISSING_OUTPUT_MAPPING.


Ahora podemos probar el flujo utilizando el comando Depurar.

  • Paso 3: verificar el flujo​
  • 3.1 - Confirmar los nodos y las conexiones​
  • 3.2 - Comprobar advertencias y errores​
  • Advertencias comunes​

¿Te ha resultado útil esta página?

Conectar

¿Necesita ayuda? Soporte

¿Quiere aprender? UiPath Academy

¿Tiene alguna pregunta? Foro de UiPath

Manténgase actualizado