UiPath Documentation
activities
latest
false

Actividades del flujo de trabajo

Última actualización 5 de may. de 2026

Flujos de trabajo de muestra

El panel Fragmentos en UiPath Studio almacena los archivos XAML añadidos por los usuarios. Los archivos XAML de muestra se almacenan en carpetas. La carpeta que almacena los archivos XAML utilizados en los flujos de trabajo de larga duración se llama Orchestration.

Los archivos XAML de ejemplo son de solo lectura. Debes crear un proceso independiente en Studio, donde repliques las actividades y configuraciones encontradas en los fragmentos.

Estos fragmentos representan flujos de trabajo de muestra creados con las actividades disponibles en el paquete de actividades Persistencia .

Requisitos previos

  • Para desarrollar flujos de trabajo de larga duración, basados en los flujos de trabajo del panel Fragmentos , debes tener instalado el paquete UiPath.Persistence.Activities .
  • Recomendamos utilizar la plantilla Proceso de orquestación para empezar a crear flujos de trabajo de larga duración.

Agregar elemento de la cola y Esperar hasta la finalización

Este fragmento crea un elemento de cola y suspende el flujo de trabajo hasta que se complete el procesamiento de ese elemento de cola .

  1. Arrastra una actividad Añadir elemento de cola y obtener referencia a tu flujo de trabajo.

    Esta actividad añade un elemento de cola a un contenedor de cola ubicado en Orchestrator, utilizando parámetros de entrada/salida. A continuación, recupera los datos correspondientes sobre el objeto de elemento de cola recién creado en una variable de tipo QueueItemData , para suspender el flujo de trabajo, hasta que el elemento de cola se añada a la cola. Consulta la página Añadir elemento de cola y obtener referencia para obtener más información sobre la actividad.

    Cuando los elementos de la cola se añaden a la cola de Orchestrator, todas las variables de tipo QueueItemData se rellenarán con los datos recuperados de Orchestrator.

    1. En la colección Información del elemento , crea un parámetro con la Dirección de entrada/salida y establece el valor como una variable que deseas pasar como elemento de cola. Para este ejemplo, pasa una variable String llamada Test.
    2. En el campo de propiedad QueueItemObject(Output) , pulsa CTRL + k en tu teclado y crea una variable de tipo QueueItemData , para almacenar los datos sobre el artículo en cola, después de que se haya creado en Orchestrator. Para este ejemplo, crea una variable QueueItemData llamada QueueItemObject.

    Imagen de documentos

  2. Arrastra cualquier actividad que desees ejecutar antes de que se suspenda el flujo de trabajo para recuperar datos sobre el elemento de cola. En este fragmento, la sección Cualquier paso a ejecutar antes de suspender el flujo de trabajo está comentada, actuando como un contenedor dentro del cual puedes colocar actividades que no se ejecutarán en tiempo de ejecución.

  3. Arrastra una actividad Esperar elemento de cola y reanudar a tu flujo de trabajo. Esta actividad espera a que se añada un elemento de cola y se procese en Orchestrator, para recuperar datos sobre él y asignarlos de nuevo al flujo de trabajo, dentro de las variables de tipo QueueItemData . Consulta la página Esperar elemento de cola y reanudar para obtener más información sobre la actividad.

    1. En el campo de propiedad Objeto de elemento de cola (entrada) , pasa la variable QueueItemObject , para hacer referencia al elemento de cola exacto que querías añadir a Orchestrator.
    2. En el campo de propiedad Objeto de elemento de cola (salida) , pulsa CTRL + k en tu teclado y crea una variable de tipo QueueItemData para almacenar los datos sobre el elemento de cola después de que se haya procesado y recuperado.
  4. Añade una actividad Escribir línea en tu flujo de trabajo, para imprimir el elemento de cola que has añadido en Orchestrator. Para este ejemplo, en el campo de la propiedad Texto , pasa la variable Test .

Crear tarea externa y suspender hasta su finalización

Este fragmento crea una acción externa y suspende el flujo de trabajo hasta que el usuario complete la acción.

  1. Arrastra una actividad Crear tarea externa a tu flujo de trabajo. Esta actividad crea una acción externa en Action Center con el título de la tarea, la prioridad de la tarea, el catálogo de tareas (ahora llamado catálogo de acciones) y los datos de la tarea. Consulta la página Crear tarea externa para obtener más información sobre la actividad.

  2. Rellena la ventana de propiedades RecopilaciónDeDatosDeLaTarea con argumentos que transmiten información In, Out o In/Out. Para este ejemplo, crea tres argumentos, cada uno de ellos con una Dirección diferente: In, Out y In/Out. Establece el Tipo como String. Para el campo Valor , pulsa CTRL + K en tu teclado y crea tres variables, que den información (para argumentos de tipo In ), o extraigan información (para argumentos de tipo Out ).

    Para este ejemplo, crea tres variables de tipo String :

    • InVariable : el valor del argumento de tipo In.
    • VariableDeSalida : el valor del argumento de tipo Out.
    • VariableEntradaFuera : el valor del argumento de tipo In/Out.

    Imagen de documentos

    En el campo de propiedad Objeto de tarea (Salida) , pulsa CTRL + k en tu teclado y crea una variable de tipo ExternalTaskData . Para este ejemplo, nombra la variable TaskPersistData. Este objeto ExternalTaskData se utiliza para pasar datos desde Orchestrator, con el fin de que el robot sepa que hasta que se complete una tarea de acción específica, el flujo de trabajo está suspendido.

  3. Agrega cualquier actividad que quieras ejecutar antes de que se suspenda el flujo de trabajo para recuperar datos sobre el objeto ExternalTaskData .

    1. Para este ejemplo, arrastra y suelta una actividad Secuencia en tu flujo de trabajo y rellena con tres actividades Escribir línea . Cada actividad Escribir línea está destinada a generar los datos de las tres variables pasadas en la Tarea externa. Pasa los siguientes valores en los campos de propiedad Texto : InVariable, OutVariable, InOutVariable.
  4. Arrastra una actividad Esperar tarea externa y reanudar a tu flujo de trabajo. Esta actividad suspende el flujo de trabajo hasta que se complete una tarea externa y luego la asigna de nuevo al flujo de trabajo, dentro de las variables de tipo ExternalTaskData . Consulta la página Esperar tarea externa y reanudar para obtener más información sobre esta actividad.

    1. En el campo de propiedad Objeto de tarea (entrada) , pasa la variable ExternalTaskData , para hacer referencia a la tarea externa exacta que creaste. Para este ejemplo, pasa la variable TaskPersistData .
    2. En el campo de propiedad Acción de tarea , pulsa CTRL + k en tu teclado y crea una variable de tipo String y nómbrala TaskAction. Esto almacena la acción realizada por el usuario para completar la tarea.
    3. En el campo de propiedad Objeto de tarea (Salida) , pulsa CTRL+ k en tu teclado y crea una variable de tipoDatosDeTareaExterna y nómbrala TaskData. Esta variable almacena el objeto Tarea actualizado recuperado de Orchestrator después de la finalización de la acción externa.
  5. Añade cualquier actividad que desees ejecutar después de que se reanude el flujo de trabajo. Para este ejemplo, imprime en el panel Salida todos los valores recuperados tras la finalización de la Acción externa, utilizando cuatro actividades Escribir línea . Pasa las siguientes variables en los campos de Texto : TaskAction, InVariable, OutVariable, InOutVariable.

    Imagen de documentos

Crear tarea de formulario y suspender hasta su finalización

Este fragmento crea una Actions Actions

  1. Arrastra una actividad Crear tarea de formulario a tu flujo de trabajo. Esta actividad crea una acción de formulario en Action Center con el título de la tarea, la prioridad de la tarea, el catálogo de tareas (ahora llamado catálogo de acciones) y los datos de la tarea. Consulta la página Crear tarea de formulario para obtener más información sobre la actividad.

  2. Rellena la ventana de propiedades Recopilación de datos de la tarea con argumentos que transmiten información In, Out o In/Out. Para este ejemplo, crea tres argumentos, cada uno de ellos con una Dirección diferente: In, Out y In/Out. Establece el Tipo como String. Para el campo Valor , pulsa CTRL + K en tu teclado y crea tres variables que den información (para argumentos de tipo In ) o extraigan información (para argumentos de tipo Out ).

    Para este ejemplo, crea tres variables de tipo String :

    • InVariable : el valor del argumento de tipo In.
    • VariableDeSalida : el valor del argumento de tipo Out.
    • VariableEntradaFuera : el valor del argumento de tipo In/Out.

    Imagen de documentos

    En el campo de propiedad Objeto de tarea (Salida) , pulsa CTRL + k en tu teclado y crea una variable de tipo FormTaskData . Para este ejemplo, nombra la variable TaskPersistData. Este objeto FormTaskData se utiliza para pasar datos desde Orchestrator, con el fin de que el robot sepa que hasta que se complete una tarea de acción específica, el flujo de trabajo está suspendido.

  3. Añade cualquier actividad que quieras ejecutar antes de que se suspenda el flujo de trabajo para recuperar datos sobre el objeto FormTaskData . Para este ejemplo, arrastra y suelta una actividad Secuencia en tu flujo de trabajo y rellénala con tres actividades Escribir línea . Cada actividad Escribir línea está destinada a generar los datos de las tres variables pasadas en la acción externa. Pasa los siguientes valores en los campos de propiedad Texto : InVariable, OutVariable, InOutVariable.

  4. Arrastra una actividad Esperar tarea externa y reanudar a tu flujo de trabajo. Esta actividad suspende el flujo de trabajo hasta que se complete una acción de formulario y luego la asigna de nuevo al flujo de trabajo, dentro de las variables de tipo FormTaskData .

    1. En el campo de propiedad Objeto de tarea (entrada) , pasa la variable FormTaskData , para hacer referencia a la tarea de formulario exacta que creaste en Action Center. Para este ejemplo, pasa la variable TaskPersistData .
    2. En el campo de propiedad Acción de tarea , pulsa CTRL + k en tu teclado y crea una variable de tipo String y nómbrala TaskAction. Esto almacena la acción realizada por el usuario para completar la tarea.
    3. En el campo de propiedad Objeto de tarea (Salida) , pulsa CTRL + k en tu teclado y crea una variable de tipo FormTaskData y nómbrala TaskData. Esta variable almacena el objeto Tarea actualizado recuperado de Orchestrator tras la finalización de la tarea.
  5. Arrastra cualquier actividad que desees ejecutar después de que se reanude el flujo de trabajo. Para este ejemplo, pasa al panel Salida todos los valores recuperados tras la finalización de la Acción externa, utilizando cuatro actividades Escribir línea . Pasa las siguientes variables en los campos de Texto : TaskAction, InVariable, OutVariable, InOutVariable.

Crear tarea y asignar a usuario

Este fragmento crea dos acciones externas, las asigna a un usuario y muestra una lista de las asignaciones de acciones fallidas.

  1. Drag two Create External Task activities into your workflow.

    1. Para la primera actividad, asigna un título a la acción y establece su prioridad. En el campo de propiedad TaskObject(Output) , pulsa CTRL + k en tu teclado y crea una variable de tipo ExternalTaskData . Para este ejemplo, nómbralo Task1PersistData.

    2. Para la segunda actividad, asigna un título a la acción y establece su prioridad. En el campo de propiedad TaskObject(Output) , pulsa CTRL + k en tu teclado y crea una variable de tipo ExternalTaskData . Para este ejemplo, nómbralo Task2PersistData.

      Imagen de documentos

  2. Arrastra dos actividades Añadir a la colección a tu flujo de trabajo.

    Nota:

    La actividad Añadir a la colección es una actividad clásica. Para que la actividad Añadir a la colección esté disponible en tu proyecto:

    • Tener instalado el paquete System.Activities 22.4.1 o inferior.
    • Ve al panel Actividades .
    • Haz clic en Ver opciones Imagen de documentos icono.
    • Haz clic en Mostrar clásico. La actividad se puede encontrar en Actividades predeterminadas > Programación > Colección.
    1. En los campos de propiedad Colección , pulsa CTRL + k en tu teclado y crea una variable de tipo List<TaskUserAssignment> y nómbrala TaskAssignementsInput. Ve al panel Variables e inicializa la variable en el campo Predeterminado como new List(Of TaskUserAssignment.

    2. En el campo Propiedad del elemento , crea una instancia de TaskUserAssignment que tenga los siguientes parámetros: la variable DatosDeTareaExterna y la dirección de correo electrónico del usuario al que quieres asignar la tarea. Para este ejemplo, escribe lo siguiente:

      • Thenew TaskUserAssignment(Task1PersistData.Id, "emailaddress") expression for the first Add To Collection activity
      • La expresión new TaskUserAssignment(Task2PersistData.Id, "emailaddress") para la segunda actividad Añadir a la colección .

      Imagen de documentos

    3. Establece la propiedad TipoDeArgumento como System.Collections.Generic.List<UiPath.Persistence.Activities.Tasks.TaskUserAssignment>.

  3. Arrastra una actividad Asignar tareas a tu flujo de trabajo.

    1. En el campo de propiedad AsignacionesDeUsuarioDeTareas (Entrada) , pasa la variable List<TaskUserAssignment> . Para este ejemplo, pasa la variable TaskAssignmentsInput .

    2. En el campo de propiedad Tipo de asignación de tareas , escribe la operación de asignación exacta que deseas realizar: Asignar o Reasignar. Para este ejemplo, escribe Assign.

    3. En el campo de propiedad FailedTaskAssignments (Output) , pulsa CTRL + k en tu teclado y crea una variable de tipo List<TaskAssignmentResponse> y nómbrala FailedTaskAssignmentsOutput.

      Imagen de documentos

  4. Arrastra una actividad Escribir línea para generar el número de asignaciones de tareas fallidas. En el campo Propiedad de texto , pasa la variable de tipo List<TaskAssignmentResponse> y luego usa las propiedades .Count y .ToString . Para este ejemplo, pasa la siguiente expresión: FailedTaskAssignemntsOutput.Count.ToString.

Iniciar trabajo y reanudar después de finalizar

Inicia un proceso desatendido y suspende el flujo de trabajo hasta que se completa un trabajo concreto.

  1. Arrastra una actividad Iniciar trabajo y obtener referencia a tu flujo de trabajo. Esta actividad inicia un trabajo en Orchestrator, en función de los argumentos introducidos, y luego recupera el objeto de trabajo correspondiente. Consulta la página Iniciar trabajo y obtener referencia para obtener más información sobre la actividad.
    1. En el campo de la propiedad NombreDelProceso , pasa el Nombre para mostrar del Proceso que deseas utilizar para el Trabajo. Para este ejemplo, almacena el nombre dentro de una variable. Pulsa CTRL +k en tu teclado y crea una variable de tipo String y nómbrala ProcessName. En el campo Valor , pasa el Nombre para mostrar del Proceso, por ejemplo, TestProcess_test.

      Nota:

      El nombre para mostrar debe escribirse en el siguiente formato: packageName _environment.

      Imagen de documentos

    2. En la propiedad Argumentos de trabajo (Colección) , crea los argumentos que quieres utilizar al invocar el trabajo en Orchestrator. Esta propiedad modifica el tipo de argumentos Out y In/Out en función de la entrada recibida del trabajo en Orchestrator, y luego los asigna de nuevo al flujo de trabajo. Para este ejemplo, crea un argumento Tipo String , llamado Test, de Dirección In/Out. En el campo Valor , pulsa CTRL + k en tu teclado y crea una variable de tipo String . Nombra la variable Test.

      Imagen de documentos

    3. En el campo de propiedad Objeto de trabajo (salida) , pulsa CTRL + k en tu teclado y crea una variable de tipo JobData , llamada JobPersistenceData. Esta variable almacena el objeto de datos del trabajo creado cuando se invoca el trabajo en Orchestrator, para utilizarlo para la actividad Esperar trabajo y reanudar .

  2. Agrega cualquier actividad que quieras ejecutar antes de que se suspenda el flujo de trabajo para recuperar datos sobre el objeto JobData .
  3. Arrastra una actividad Esperar trabajo y reanudar a tu flujo de trabajo. Esta actividad suspende el flujo de trabajo hasta que se complete un trabajo específico en Orchestrator. Una vez completado el trabajo, se reanuda el flujo de trabajo.
    1. En el campo de propiedad Objeto de trabajo (entrada) , pasa la variable de tipo JobData , creada para la actividad Iniciar trabajo y obtener referencia . Para este ejemplo, pasa la variable JobPersistenceData . Esto dirige al robot al trabajo exacto que debe completarse hasta que se reanude el flujo de trabajo.
    2. En el campo de propiedad Objeto de trabajo (salida) , pulsa CTRL + k en tu teclado y crea una variable de tipo JobData . Para este ejemplo, nómbralo JobDataObject.
  4. Arrastra una actividad Escribir línea para imprimir el argumento que se ha asignado de nuevo al flujo de trabajo. En el campo de propiedad Texto , pasa la variable utilizada como Valor para el argumento creado en Argumentos de trabajo (Colección). Para este ejemplo, pasa la variable Test .

Suspender y reanudar después de 1 hora

Este fragmento suspende el flujo de trabajo determinado y lo reanuda después de una hora.

  1. Añade las actividades que desees ejecutar antes de que se suspenda el flujo de trabajo.

  2. Arrastra una actividad Reanudar tras retraso a tu flujo de trabajo. Esta actividad suspende el flujo de trabajo dado y lo reanuda en una fecha y hora especificadas. Consulta la página Reanudar tras retraso para obtener más información sobre esta actividad.

    1. En el panel Variables , crea una variable de tipo System.TimeSpan . Para este ejemplo, nombra la variable OneHour. Establece el valor Predeterminado de la variable TimeSpan como New TimeSpan(1,0,0).
    2. En el campo de propiedad Hora de reanudación de la actividad, pasa la expresión DateTime.Now y la variable TimeSpan . Para este ejemplo, pasa la siguiente expresión: DateTime.Now + OneHour.

    Imagen de documentos

  3. Añade las actividades que desees ejecutar después de reanudar el flujo de trabajo.

Suspender y reanudar después de 5 minutos

Este fragmento suspende el flujo de trabajo determinado y lo reanuda después de cinco minutos.

  1. Arrastra las actividades que deseas ejecutar antes de suspender el flujo de trabajo.

  2. Drag a Resume After Delay activity into your workflow. This activity suspends the given workflow and resumes it at a specified date and time.

    1. En el panel Variables , crea una variable de tipo System.TimeSpan . Para este ejemplo, nombra la variable FiveMinute. Establece el valor Predeterminado de la variable TimeSpan como New TimeSpan(0,5,0).
    2. En el campo de propiedad Hora de reanudación de la actividad, pasa la expresión DateTime.Now y la variable TimeSpan . Para este ejemplo, pasa la siguiente expresión: DateTime.Now + FiveMinute.

    Imagen de documentos

  3. Arrastra las actividades que deseas ejecutar después de reanudar el flujo de trabajo.

Suspender y reanudar después de 90 segundos

Este fragmento suspende el flujo de trabajo proporcionado y lo reanuda después de noventa segundos.

  1. Añade las actividades que desees ejecutar antes de que se suspenda el flujo de trabajo.

  2. Drag a Resume After Delay activity into your workflow. This activity suspends the given workflow and resumes it at a specified date and time.

    1. En el panel Variables , crea una variable de tipo System.TimeSpan . Para este ejemplo, nombra la variable NinetySeconds. Establece el valor Predeterminado de la variable TimeSpan como New TimeSpan(0,0,90).
    2. En el campo de propiedad Hora de reanudación de la actividad, pasa la expresión DateTime.Now y la variable TimeSpan . Para este ejemplo, pasa la siguiente expresión: DateTime.Now + NinetySeconds.

    Imagen de documentos

  3. Arrastra las actividades que deseas ejecutar después de reanudar el flujo de trabajo.

Esperar a que finalicen todas las tareas del formulario

Este fragmento crea varias acciones de formulario en un bucle, en función del número de facturas en una tabla de datos, y suspende el flujo de trabajo hasta que se completen todas las acciones.

  1. Arrastra una actividad ConstruirTablaDeDatos a tu flujo de trabajo.

    1. En el campo de propiedad Salida , pulsa CTRL + k en tu teclado y crea una variable de tipo DataTable , para almacenar la tabla de datos que estás creando. Para este ejemplo, nombra la variable DataTable como HighValueInvoices.
    2. Clic docs image. Se abre la ventana Crear tabla de datos .
    3. Cambiar el nombre de Column1 como InvoiceNumber y Column2 como InvoiceAmount.
    4. Añade datos dentro de las filas de la tabla y pulsa Aceptar.

    Imagen de documentos

  2. Arrastra una actividad Asignar a tu flujo de trabajo. Esta actividad asigna un nombre a la tabla de datos, almacenada en una variable String .

    1. En el campo de propiedad A , pasa la variable DataTable . Para este ejemplo, pasa la variable HighValueInvoices .
    2. En el campo de propiedad Valor , pulsa CTRL + k en tu teclado y crea una variable de tipo String . Para este ejemplo, nómbralo DataTableName. Establece el valor Predeterminado de la variable DataTableName como ``"facturas"`.
  3. Arrastra una actividad Para cada a tu flujo de trabajo. En el campo de propiedad Lista de elementos , pasa una expresión con el siguiente formato: DataTableVariable.Rows. Para este ejemplo, pasa HighValueInvoices.Rows. Esto itera a través de cada fila de la tabla de datos.

  4. Arrastra una actividad Crear tarea de formulario dentro del Cuerpo de la actividad Para cada .

    1. En el campo de propiedad Título de la tarea , introduce el valor Número de factura que recupera la actividad Para cada y conviértelo en Cadena. Para este ejemplo, introduce la siguiente expresión: item("InvoiceNumber").ToString, donde InvoiceNumber es el nombre de la columna que contiene el número respectivo para cada factura.
    2. En los Datos del formulario (Colección), crea un argumento que pase cada importe de la factura dentro de la Acción del formulario. Crea un argumento Tipo String y establece la Dirección como In. En el campo Valor , introduce el importe de cada factura y conviértelos en Cadena. Para este ejemplo, introduce la siguiente expresión: item("InvoiceAmount").ToString, donde InvoiceAmount es el nombre de la columna que contiene el importe respectivo de cada factura.
    3. En el campo de propiedad TaskObject(Output) , pulsa CTRL + k en tu teclado y crea una variable de tipo FormTaskData . Para este ejemplo, nombra la variable como TaskPersistData.

    Imagen de documentos

  5. Arrastra una actividad Añadir a la colección dentro del Cuerpo de la actividad Para cada .

    1. En el campo de propiedad Colección , pulsa CTRL + k en tu teclado y crea una variable List<FormTaskData> y nómbrala TaskList. Ve al panel Variables e inicializa la variable en el campo Predeterminado como New List(Of UiPath.Persistence.Activities.FormTask.FormTaskData.
    2. En el campo Propiedad del elemento , pasa la variable FormTaskData , creada para almacenar los datos en las Acciones de formulario creadas. Para este ejemplo, pasa la variable TaskPersistData .
    3. Para la propiedad TipoDeArgumento , elige UiPath.Persistence.Activities.FormTask.FormTaskData.
  6. Arrastra una actividad Paralelo Para Cada a tu flujo de trabajo.

    1. Para la propiedad TipoDeArgumento , elige UiPath.Persistence.Activities.FormTask.FormTaskData.
    2. En el campo de propiedad Valores , pasa la variable List<FormTaskData> . Para este ejemplo, pasa la variable TaskList .
  7. Arrastra una actividad Esperar tarea de formulario y reanudar al cuerpo de la actividad Paralelo para cada .

    1. En el campo de propiedad TaskObject(Input) , introduce el objeto item , referenciado en la actividad Paralelo Para Cada . En este caso, el objeto item representa las acciones de formulario almacenadas en la variable TaskList .
    2. En el campo de propiedad AcciónDeTarea , pulsa CTRL + k en tu teclado y crea una variable String . Para este ejemplo, nómbralo TaskAction.
    3. En el campo de propiedad TaskObject(Output) , pulsa CTRL + k en tu teclado y crea una variable FormTaskData . Para este ejemplo, nómbralo TaskData.

    Imagen de documentos

  8. Arrastra una actividad Escribir línea a tu flujo de trabajo. Esta actividad muestra en el panel de Salida la acción realizada por el usuario para completar la Acción del formulario. En el valor de Texto , introduce la variable TaskAction .

Espere a que se complete cualquier tarea de formulario

Este fragmento crea varias Actions de formulario en secuencia y suspende el flujo de trabajo hasta que se completa cualquiera de las Actions de formulario.

  1. Drag a Create Form Task activity into your sequence workflow.

    1. En el campo de propiedad TaskTitle , pulsa CTRL + k en tu teclado y crea una variable String . Nómbralo TaskTitle1. En el panel Variables , establece el valor Predeterminado como "Task - " + "Approver 1".
    2. En la propiedad FormData(Collection) , crea un argumento de Tipo String y Dirección In. Nombra el argumento Approver y establece el Valor como "Approver1".
    3. En el campo de propiedad TaskObject(Output) , pulsa CTRL + k en tu teclado y crea una variable FormTaskData . Para este ejemplo, nombra la variable TaskPersistData1.
  2. Arrastra una segunda actividad Crear tarea de formulario a tu flujo de trabajo.

    1. En el campo de propiedad TaskTitle , pulsa CTRL + k en tu teclado y crea una variable String . Nómbralo TaskTitle2. En el panel Variables , establece el valor Predeterminado como "Task - " + "Approver 2".
    2. En la propiedad FormData(Collection) , crea un argumento de Tipo String y Dirección In. Nombra el argumento Approver y establece el Valor como "Approver2".
    3. En el campo de propiedad TaskObject(Output) , pulsa CTRL + k en tu teclado y crea una variable FormTaskData . Para este ejemplo, nombra la variable TaskPersistData2.
  3. Drag a third Create Form Task activity into your workflow.

    1. En el campo de propiedad TaskTitle , pulsa CTRL + k en tu teclado y crea una variable String . Nómbralo TaskTitle3. En el panel Variables , establece el valor Predeterminado como "Task - " + "Approver 3".
    2. En la propiedad FormData(Collection) , crea un argumento de Tipo String y Dirección In. Nombra el argumento Approver y establece el Valor como "Approver3".
    3. En el campo de propiedad TaskObject(Output) , pulsa CTRL + k en tu teclado y crea una variable FormTaskData . Para este ejemplo, nombra la variable TaskPersistData3.
  4. Arrastra una actividad Elegir a tu flujo de trabajo.

  5. Arrastra una actividad Elegir rama al cuerpo de la actividad Elegir . Cambia el nombre de la actividad como Pick Branch (Task1).

  6. Arrastra una actividad Esperar tarea de formulario y reanudar al cuerpo Desencadenador de la actividad Pick Branch (Task1) .

    1. En el campo de propiedad TaskObject (Input) , pasa la variable FormTaskData creada para almacenar datos sobre la acción del formulario. Para este ejemplo, pasa la variable TaskPersistData1 .
    2. En el campo de propiedad TaskAction , pulsa CTRL + k y crea una variable String . Nómbralo TaskAction1.
    3. En el campo de propiedad TaskObject(Output) , pulsa CTRL+ k en tu teclado y crea una variable FormTaskData . Nómbralo TaskData1.
  7. Arrastra una actividad Escribir línea al cuerpo de la acción de la actividad Pick Branch (Task1) . Esta actividad está destinada a mostrar en el panel de Salida la acción realizada por el usuario para completar la Acción del formulario. En el valor de Texto , introduce la variable TaskAction1 .

    Imagen de documentos

  8. Arrastra una actividad Elegir rama al cuerpo de la actividad Elegir . Cambia el nombre de la actividad como Pick Branch (Task2).

  9. Arrastra una actividad Esperar tarea de formulario y reanudar al cuerpo Desencadenador de la actividad Pick Branch (Task2) .

    1. En el campo de propiedad TaskObject (Input) , pasa la variable FormTaskData creada para almacenar datos sobre la acción del formulario. Para este ejemplo, pasa la variable TaskPersistData2 .
    2. En el campo de propiedad TaskAction , pulsa CTRL + k y crea una variable String . Nómbralo TaskAction2.
    3. En el campo de propiedad TaskObject(Output) , pulsa CTRL+ k en tu teclado y crea una variable FormTaskData . Nómbralo TaskData2.
  10. Arrastra una actividad Escribir línea al cuerpo de la acción de la actividad Pick Branch (Task2) . Esta actividad muestra en el panel de Salida la acción realizada por el usuario para completar la Acción del formulario. En el valor de Texto , introduce la variable TaskAction2 .

  11. Arrastra una actividad Elegir rama al cuerpo de la actividad Elegir . Cambia el nombre de la actividad como Pick Branch (Task3).

  12. Arrastra una actividad Esperar tarea de formulario y reanudar al cuerpo Desencadenador de la actividad Pick Branch (Task3) .

    1. En el campo de propiedad TaskObject (Input) , pasa la variable FormTaskData creada para almacenar datos sobre la acción del formulario. Para este ejemplo, pasa la variable TaskPersistData3 .
    2. En el campo de propiedad TaskAction , pulsa CTRL + k y crea una variable String . Nómbralo TaskAction3.
    3. En el campo de propiedad TaskObject(Output) , pulsa CTRL+ k en tu teclado y crea una variable FormTaskData . Nómbralo TaskData3.
  13. Arrastra una actividad Escribir línea al cuerpo de la acción de la actividad Pick Branch (Task3) . Esta actividad muestra en el panel de Salida la acción realizada por el usuario para completar la Acción del formulario. En el valor de Texto , introduce la variable TaskAction3 .

Esperar a que finalicen algunas tareas del formulario en bucle

Este fragmento crea múltiples Actionsde formulario, basadas en la entrada de una tabla de datos, y suspende el flujo de trabajo hasta que se completa un determinado conjunto de Actions de formulario.

  1. Arrastra una actividad Crear tabla de datos a tu flujo de trabajo.

    1. En el campo de propiedad TablaDeDatos , pulsa CTRL + k en tu teclado y crea una variable System.DataTable . Para este ejemplo, nómbralo CodeReviews.
    2. Clic docs image. Se abre la ventana Crear tabla de datos .
    3. Cambia el nombre de Column1 como ReviewerName y Column2 como ReviewerType. Establece el Tipo de la columna ReviewerType en String.
    4. Añade datos dentro de las filas de la tabla. Para la columna ReviewerType , este ejemplo utiliza dos tipos de revisores: propietarios del código y revisores.

    Imagen de documentos

  2. Arrastra una actividad Asignar a tu flujo de trabajo. Esto asigna un nombre a la tabla de datos que creaste. En el campo de propiedad A , pasa la variable System.DataTable y añádele la propiedad .TableName . En el campo Valor , pulsa CTRL + k en tu teclado y crea una variable String . Para este ejemplo, nómbralo DataTableName.

  3. Drag a Parallel For Each activity into your workflow. For this example, name it Create Tasks for PR Review.

    1. En el campo de propiedad Valores , pasa la variable System.DataTable y añade la propiedad .AsEnumerable. Para este ejemplo, pasa la siguiente expresión: CodeReviews.AsEnumerable.
  4. Arrastra una actividad Asignar en el Cuerpo de la actividad Paralelo Para Cada .

    1. En el campo de propiedad A , pulsa CTRL + k en tu teclado y crea una variable String , que contenga los datos recuperados de la columna ReviewerType en la tabla de datos CodeReviews . Para este ejemplo, nombra la variable ReviewerType.
    2. En el campo de propiedad Valor , pasa una expresión que recupere cada elemento de fila de la columna ReviewerType y lo almacene en la variable creada dentro del campo Para . Para este ejemplo, pasa la siguiente expresión: ìtem("ReviewerType").toString.

    Imagen de documentos

  5. Drag a Create Form Task activity into the Body of the Parallel For Each activity.

    1. En el campo de propiedad TaskTitle , pasa la siguiente expresión: "Code Review - " + InPullRequestName. La InPullRequestName es una variable String , que tiene el valor predeterminado "#1".
    2. En la propiedad FormData(Collection) , crea cuatro argumentos de Tipo String:
    3. 'Número PR': con la Dirección In y el Valor establecido como InPullRequestName.
    4. Reviewer Name : con la Dirección In y el Valor establecido como item("ReviewerName").toString.
    5. Reviewer Type : con la Dirección In/Out y el valor establecido como la variable ReviewerType .
    6. Reviewer Comment : con la Dirección Out. En el campo Valor , pulsa CTRL + k en tu teclado y crea una variable String . Nómbralo ReviewerComments. Este argumento asigna al flujo de trabajo cualquier comentario que se haga en la acción.
    7. En el campo de propiedad TaskObject(Output) , pulsa CTRL + k en tu teclado y crea una variable FormTaskData . Nómbralo TaskPersistData.

    Imagen de documentos

  6. Arrastra una actividad Añadir a la colección al cuerpo de la actividad Paralelo para cada . Esta actividad almacena todas las acciones de formulario creadas en una lista.

    1. En el campo de propiedad Colección , pulsa CTRL + k en tu teclado y crea una variable List<FormTaskData> . Nómbralo TaskDataList. Ve al panel Variables y establece el valor Predeterminado de la variable como New List(of UiPath.Persistence.Activities.FormTask.FormTaskData).
    2. En el campo Propiedad del elemento , pasa la variable FormTaskData . Para este ejemplo, pasa la variable TaskPersistData .
    3. Para la propiedad TipoDeArgumento , elige UiPath.Persistence.Activities.FormTask.FormTaskData.
  7. En el panel Variables , crea dos variables de tipo Int32 y establece su valor Predeterminado en 0: OwnersApprovals y ReviewersApprovals.

  8. Arrastra otra actividad Paralelo Para Cada . Para este ejemplo, nómbralo Wait for Conditional Task(s) Completion.

    1. En el campo de propiedad Condición , pasa la siguiente expresión: OwnersApprovals>=2 Or (OwnersApprovals = 1 And ReviewersApprovals>=2). Esto condiciona el flujo de trabajo para que se reanude solo cuando se cumple la condición.
    2. Para la propiedad TipoDeArgumento , elige UiPath.Persistence.Activities.FormTask.FormTaskData.
    3. En el campo de propiedad Valor , pasa la lista donde se almacenan las Acciones de formulario. Para este ejemplo, pasa la variable TaskDataList .

    Imagen de documentos

  9. Arrastra una actividad Secuencia al cuerpo de la actividad Esperar a que se completen las tareas condicionales . Cámbiale el nombre Wait for Task and Resume.

  10. Arrastra una actividad Esperar tarea de formulario y reanudar a la actividad Esperar tarea y reanudar secuencia.

    1. En el campo de propiedad TaskObject(Input) , pasa la variable item .
    2. En el campo de propiedad AcciónDeTarea , pulsa CTRL + k en tu teclado y crea una variable String . Para este ejemplo, nómbralo TaskAction.
    3. En el campo de propiedad TaskObject(Output) , pulsa CTRL + k en tu teclado y crea una variable FormTaskData . Para este ejemplo, nómbralo TaskData.
  11. Arrastra una actividad Si a la actividad Esperar tarea y reanudar secuencia. Esta actividad está destinada a contar el número de acciones de formulario que han sido aprobadas por los propietarios del código.

    1. En el campo de propiedad Condición , pasa la siguiente expresión: TaskAction="approve" And ReviewerType="code owner".
    2. Arrastra y suelta una actividad Asignar en el bloque Entonces . En el campo de propiedad A , pasa la variable OwnersApprovals . En el campo de propiedad Valor , pasa la expresión OwnersApprovals + 1 .

    Imagen de documentos

  12. Arrastra otra actividad Si a la actividad Esperar tarea y reanudar secuencia. Esta actividad está destinada a contar el número de acciones de formulario que han sido aprobadas por los revisores.

    1. En el campo de propiedad Condición , pasa la siguiente expresión: TaskAction="approve" And ReviewerType="reviewer".
    2. Arrastra una actividad Asignar en el bloque Entonces . En el campo de propiedad A , pasa la variable ReviewersApprovals . En el campo de propiedad Valor , pasa la expresión ReviewersApprovals + 1 .

    Imagen de documentos

  13. Arrastra tres actividades Escribir línea a la actividad Esperar tarea y reanudar secuencia. Esta actividad muestra los valores dados en el panel Salida .

    1. En la primera actividad, pasa la variable ReviewComments .
    2. En la segunda actividad, pasa la variable OwnersApprovals y agrega la propiedad .toString .
    3. En la tercera actividad, pasa la variable ReviewersApprovals y añade la propiedad .toString .

Espere a que finalicen algunas tareas del formulario

Este fragmento crea tres acciones de formulario y suspende el flujo de trabajo hasta que se completan dos acciones.

  1. Drag a Create Form Task activity into your sequence workflow.

    1. En el campo de propiedad TaskTitle , pulsa CTRL + k en tu teclado y crea una variable String . Nómbralo TaskTitle1. En el panel Variables , establece el valor Predeterminado como "Task - " + "Approver 1".
    2. En la propiedad FormData(Collection) , crea un argumento de Tipo String y Dirección In. Nombra el argumento Approver y establece el Valor como "Approver1".
    3. En el campo de propiedad TaskObject(Output) , pulsa CTRL + k en tu teclado y crea una variable FormTaskData . Para este ejemplo, nombra la variable TaskPersistData1.
  2. Arrastra una actividad Crear formulario a tu flujo de trabajo de secuencia.

    1. En el campo de propiedad TaskTitle , pulsa CTRL + k en tu teclado y crea una variable String . Nómbralo TaskTitle2. En el panel Variables , establece el valor Predeterminado como "Task - " + "Approver 2".
    2. En la propiedad FormData(Collection) , crea un argumento de Tipo String y Dirección In. Nombra el argumento Approver y establece el Valor como "Approver2".
    3. En el campo de propiedad TaskObject(Output) , pulsa CTRL + k en tu teclado y crea una variable FormTaskData . Para este ejemplo, nombra la variable TaskPersistData2.
  3. Arrastra una actividad Crear formulario a tu flujo de trabajo de secuencia.

    1. En el campo de propiedad TaskTitle , pulsa CTRL + k en tu teclado y crea una variable String . Nómbralo TaskTitle3. En el panel Variables , establece el valor Predeterminado como "Task - " + "Approver 3".
    2. En la propiedad FormData(Collection) , crea un argumento de Tipo String y Dirección In. Nombra el argumento Approver y establece el Valor como "Approver3".
    3. En el campo de propiedad TaskObject(Output) , pulsa CTRL + k en tu teclado y crea una variable FormTaskData . Para este ejemplo, nombra la variable TaskPersistData3.
  4. Arrastra una actividad paralela a tu flujo de trabajo.

    1. En el campo de propiedad Condición , pulsa CTRL + k en tu teclado y crea una variable Int32 . Para este ejemplo, nombra la variable CompleteTasksCount y establece el valor Predeterminado en 0.
    2. En el Editor de expresiones dentro de la propiedad Condición , establece la condición como CompleteTasksCount=2. Esto condiciona la actividad paralela para que se complete cuando se completen dos de las tres acciones.

    Imagen de documentos

  5. Arrastra una actividad Secuencia al cuerpo de la actividad Paralelo . Cambia el nombre de la actividad como Sequence Task1.

  6. En la actividad Sequence Task1 , arrastra una actividad Esperar tarea de formulario y reanudar . Cámbiale el nombre a Wait for Form Task and Resume(Task1).

    1. En el campo de propiedad TaskObject (Input) , pasa la variable FormTaskData creada para almacenar datos sobre la acción del formulario. Para este ejemplo, pasa la variable TaskPersistData1 .
    2. En el campo de propiedad TaskAction , pulsa CTRL + k y crea una variable String . Nómbralo TaskAction1.
    3. En el campo de propiedad TaskObject(Output) , pulsa CTRL+ k en tu teclado y crea una variable FormTaskData . Nómbralo TaskData1.

    Imagen de documentos

  7. Arrastra una actividad Escribir línea al cuerpo de la acción de la actividad Sequence Task1 . Esta actividad está destinada a mostrar en el panel de Salida la acción realizada por el usuario para completar la Acción del formulario. En el valor de Texto , introduce la variable TaskAction1 .

  8. Arrastra una actividad Asignar en la actividad Wait for Form Task and Resume(Task1) . Pasa el CompleteTaskCount en el campo Para y la expresión CompleteTaskCount + 1 en el campo Valor . Si la acción se completa y se reanuda el flujo de trabajo, se añade una nueva iteración a la variable CompleteTaskCount .

    Imagen de documentos

  9. Arrastra una actividad Secuencia al cuerpo de la actividad Paralelo . Cambia el nombre de la actividad como Sequence Task2.

  10. En la actividad Sequence Task2 , arrastra y suelta una actividad Esperar tarea de formulario y reanudar . Renómbralo como Wait for Form Task and Resume(Task2)

    1. En el campo de propiedad TaskObject (Input), pasa la variable FormTaskData creada para almacenar datos sobre la acción del formulario. Para este ejemplo, pasa la variable TaskPersistData2.
    2. En el campo de la propiedad TaskAction , pulsa CTRL + ky crea una variable String. Nómbralo TaskAction2
    3. En el campo de propiedad TaskObject(Output) , pulsa CTRL+ k en tu teclado y crea una variable FormTaskData . Nómbralo TaskData2.
  11. Drag a Write Line activity into the body of the Sequence Task2 activity. This activity displays in the Output panel the action taken by the user to complete the Form Action. In the Text value, input the TaskAction2 variable.

  12. Arrastra una actividad Asignar en la actividad Wait for Form Task and Resume(Task2) . Pasa el CompleteTaskCounten el campo Para y la expresión CompleteTaskCount + 1en el campo Valor . Si la acción se completa y se reanuda el flujo de trabajo, se añade una nueva iteración a la variableCompleteTaskCount .

  13. Arrastra una actividad Secuencia al cuerpo de la actividad Paralelo . Cambia el nombre de la actividad como Sequence Task3.

  14. En la actividad Sequence Task3 , arrastra y suelta una actividad Esperar tarea de formulario y reanudar . Cámbiale el nombre a Wait for Form Task and Resume(Task3).

    1. En el campo de propiedad TaskObject (Input) , pasa la variable FormTaskData creada para almacenar datos sobre la acción del formulario. Para este ejemplo, pasa la variable TaskPersistData3 .
    2. En el campo de propiedad TaskAction , pulsa CTRL + k y crea una variable String . Nómbralo TaskAction3.
    3. En el campo de propiedad TaskObject(Output) , pulsa CTRL+ k en tu teclado y crea una variable FormTaskData . Nómbralo TaskData3.
  15. Arrastra una actividad Escribir línea al cuerpo de la acción de la actividad Sequence Task3 . Esta actividad está destinada a mostrar en el panel de Salida la acción realizada por el usuario para completar la Acción del formulario. En el valor de Texto , introduce la variable TaskAction3 .

  16. Arrastra una actividad Asignar en la actividad Wait for Form Task and Resume(Task3) . Pasa el CompleteTaskCounten el campo Para y la expresión CompleteTaskCount + 1en el campo Valor . Si la acción se completa y se reanuda el flujo de trabajo, se añade una nueva iteración a la variableCompleteTaskCount .

¿Te ha resultado útil esta página?

Conectar

¿Necesita ayuda? Soporte

¿Quiere aprender? UiPath Academy

¿Tiene alguna pregunta? Foro de UiPath

Manténgase actualizado