studio
2021.10
false
UiPath logo, featuring letters U and I in white
Guía de usuario de Studio
Last updated 23 de sep. de 2024

Variables propias de UiPath

Variables genericValue

La variable denominada GenericValue es un tipo de variable que puede almacenar cualquier tipo de datos, incluyendo texto, números, fechas y matrices, y es particular de UiPath Studio.

Las variables GenericValue se convierten automáticamente en otros tipos, para realizar ciertas acciones. Sin embargo, es importante usar este tipo de variables con cuidado, ya que su conversión puede no ser siempre la correcta para el proyecto.

UiPath Studio dispone de un mecanismo de conversión automática de las variables GenericValue, que puede guiar hacia el resultado deseado definiendo cuidadosamente sus expresiones. Ten en cuenta que el primer elemento de tu expresión se usa como guía para la operación que realiza Studio. Por ejemplo, cuando se intenta sumar dos variables GenericValue, si la primera en la expresión está definida como una Cadena, el resultado es la concatenación de las dos. Si se define como un Entero, el resultado es su suma.

Métodos .NET compatibles

Nombre/Sintaxis

Descripción

CompareTo

  • Función GenericValue.CompareTo(other As GenericValue) As Integer
  • Función GenericValue.CompareTo (obj como objeto) como entero

[Haga clic aquí para obtener más información.] [1]

[1]: https://msdn.microsoft.com/en-us/library/system.string.compareto(v=vs.110).aspx

Contiene

  • Función GenericValue.Contains(other As String) As Boolean

[Haz clic aquí para más detalles.][2]

[2]: https://msdn.microsoft.com/en-us/library/dy85x1sa(v=vs.110).aspx 

Se usa para comprobar si una variable de cadena contiene una determinada subcadena o no. Por ejemplo, si quieres comprobar si una frase contiene una palabra concreta, la expresión debe ser [SentenceVariable].Contains("term"), donde [SentenceVariable] es la variable GenericValue que contiene la frase y "term" es la palabra que se busca.
Nota: cuando se usa este método con una variable GenericValue de tipo Int, Flotante o Booleano, los datos se convierten automáticamente en Cadena y se manejan en consecuencia.

Igual

  • Función GenericValue.Equals(other As GenericValue) As Boolean
  • Función GenericValue.Equals (obj As Object) como booleano

[Haga clic aquí para obtener más información.] [3]

[3]: https://msdn.microsoft.com/en-us/library/system.string.equals(v=vs.110).aspx

GetHashCode

  • Función GenericValue.GetHashCode() As Integer

[Haga clic aquí para obtener más información.] [5]

[5]: https://msdn.microsoft.com/en-us/library/system.string.format(v=vs.110).aspx

GetType

  • Función Object.GetType() As Type

[Haga clic aquí para obtener más información.] [6]

[6]: https://msdn.microsoft.com/en-us/library/system.object.gettype(v=vs.110).aspx

GetTypeCode

  • Función GenericValue.GetTypeCode() As TypeCode

[Haga clic aquí para obtener más información.] [7]

[7]: https://msdn.microsoft.com/en-us/library/system.string.gettypecode(v=vs.110).aspx

IndexOf

  • Función GenericValue.IndexOf(value As String) As Integer
  • Función GenericValue.IndexOf (valor como cadena, comparaciónTipo como cadenaComparativa) como entero
  • Función GenericValue.IndexOf (valor como cadena, startIndex como entero) como entero
  • Función GenericValue.IndexOf (valor como cadena, índiceDeInicio como entero, tipoDe comparación como comparación de cadenas) como entero

[Haz clic aquí para más detalles.][8]

[8]: https://msdn.microsoft.com/en-us/library/system.string.indexof(v=vs.110).aspx

Se usa para devolver el índice de una subcadena contenida dentro de una variable de cadena. Por ejemplo, si quieres encontrar el índice de la palabra "localizar" dentro de la frase "Buscar 'localizar' en esta frase", la expresión debe ser [SentenceVariable].IndexOf("locate"), donde [SentenceVariable] es la variable GenericValue que contiene la frase y "locate" es el término a buscar.
Nota: cuando se usa este método con una variable GenericValue de tipo Int, Flotante o Booleano, los datos se convierten automáticamente en Cadena y se manejan en consecuencia.

Longitud

  • Function GenericValue.Lenght() As Integer

[Haz clic aquí para más detalles.][9]

[9]: https://msdn.microsoft.com/en-us/library/system.string.length(v=vs.110).aspx

Se usa para devolver el número de caracteres de una variable de cadena. Por ejemplo, si quieres saber cuántas letras tiene una palabra, la expresión debe ser [WordVariable].Length, donde [WordVariable] es la variable GenericValue que contiene la palabra.
Nota: cuando se usa este método con una variable GenericValue de tipo Int, Flotante o Booleano, los datos se convierten automáticamente en Cadena y se manejan en consecuencia.

Reemplazar

  • Función GenericValue.Replace(oldValue As String, new value As String) As String

[Haz clic aquí para más detalles.][10]

[10]: https://msdn.microsoft.com/en-us/library/system.string.replace(v=vs.110).aspx

Se usa para reemplazar los datos contenidos dentro de una variable de cadena. Por ejemplo, si quieres cambiar la ruta de un archivo local C:\ExampleFolder\Main.xaml por la correspondiente del servidor C:/ExampleFolder/Main.xaml, la expresión debe ser [PathVariable].Replace("\","/") donde [PathVariable] es la variable GenericValue que contiene la ruta del archivo, "\" es el carácter a sustituir y "/" es el carácter usado como reemplazo.
Nota: cuando se usa este método con una variable GenericValue de tipo Int, Flotante o Booleano, los datos se convierten automáticamente en Cadena y se manejan en consecuencia.

Dividir

  • Función GenericValue.Split(ParamArray separator As Char()) As String()
  • Function GenericValue.Split(ParamArray separator As String()) As String()
  • Función GenericValue.Split(separator As Char(), options As StringSplitOptions) As String()
  • Function GenericValue.Split(separator As String(), options As StringSplitOptions) As String()

[Haz clic aquí para más detalles.][11]

[11]: https://msdn.microsoft.com/en-us/library/system.string.split(v=vs.110).aspx

Se usa para devolver componentes individuales de una variable de cadena. Por ejemplo, si quieres extraer el año de un formato de fecha MM.DD.YYYY, la expresión deberá ser [DateVariable].Split(".".ToCharArray)(2), donde [DateVariable] es la variable GenericValue que contiene la fecha, "." es el carácter usado como separador, .ToCharArray es un método que crea una matriz con los elementos delimitados por el separador y (2) representa el índice del elemento a devolver, en nuestro caso, el año.
Nota: cuando se usa este método con una variable GenericValue de tipo Int, Flotante o Booleano, los datos se convierten automáticamente en Cadena y se manejan en consecuencia.

Subcadena

  • Función GenericValue.Substring(startIndex As Integer) As String
  • Función GenericValue.Substring(startIndex As Integer, length As Integer) As String

[Haz clic aquí para más detalles.][12]

[12]: https://msdn.microsoft.com/en-us/library/system.string.substring(v=vs.110).aspx

Se usa para devolver una subcadena contenida en una variable de cadena. Por ejemplo, si quieres extraer una palabra de la frase "Hay 100 máquinas disponibles", la expresión debería ser [SentenceVariable].Substring(10,3), donde [SentenceVariable] es la variable de GenericValue que contiene la frase, 10 es el índice del primer carácter a devolver y 3 es la longitud de la subcadena a partir del primer carácter. En este ejemplo, la subcadena resultante sería "100".
Nota: cuando se usa este método con una variable GenericValue de tipo Int, Flotante o Booleano, los datos se convierten automáticamente en Cadena y se manejan en consecuencia.

ToBoolean

  • Función GenericValue.ToBoolean(provider As IFormatProvider) As Boolean

[Haga clic aquí para obtener más información.] [13]

[13]: https://msdn.microsoft.com/en-us/library/bb346937(v=vs.110).aspx

ToByte

  • Function GenericValue.ToByte(provider As IFormatProvider) As Byte

[Haga clic aquí para obtener más información.] [14]

[14]: https://msdn.microsoft.com/en-us/library/bb355898(v=vs.110).aspx

ToChar

  • Function GenericValue.ToChar(provider As IFormatProvider) As Char

[Haga clic aquí para obtener más información.] [15]

[15]: https://msdn.microsoft.com/en-us/library/bb335877(v=vs.110).aspx

ToDecimal

  • Function GenericValue.ToDecimal(provider As IFormatProvider) As Decimal
  • Función GenericValue.ToDecimal(format As NumberStyles) As Decimal

[Haga clic aquí para obtener más información.] [17]

[17]: https://msdn.microsoft.com/en-us/library/bb359959(v=vs.110).aspx

ToDouble

  • Function GenericValue.ToDouble(provider As IFormatProvider) As Double
  • Función GenericValue.ToDouble(format As NumberStyles) As Double

[Haga clic aquí para obtener más información.] [18]

[18]: https://msdn.microsoft.com/en-us/library/bb154906(v=vs.110).aspx

ToInt

  • Función GenericValue.ToInt(culture As IFormatProvider) As Integer?
  • Function GenericValue.ToInt() As Integer?

Se usa para convertir un valor especificado en un entero anulable.

Nota: cuando se usa este método con una variable de GenericValue de tipo Booleano, los valores "Verdadero" y "Falso" se convierten en 1 y 0, respectivamente.

ToInt16

  • Function GenericValue.ToInt16(provider As IFormatProvider) As Short

[Haz clic aquí para más detalles.][20]

[20]: https://msdn.microsoft.com/en-us/library/b293091(v=vs.110).aspx

Nota: cuando se usa este método con una variable de GenericValue de tipo Booleano, los valores "Verdadero" y "Falso" se convierten en 1 y 0, respectivamente.

ToInt32

  • Function GenericValue.ToInt32(provider As IFormatProvider) As Integer

[Haz clic aquí para más detalles.][21]

[21]: https://msdn.microsoft.com/en-us/library/b3004452(v=vs.110).aspx

Nota: cuando se usa este método con una variable de GenericValue de tipo Booleano, los valores "Verdadero" y "Falso" se convierten en 1 y 0, respectivamente.

ToInt64

  • Function GenericValue.ToInt64(provider As IFormatProvider) As Long

[Haz clic aquí para más detalles.][22]

[22]: https://msdn.microsoft.com/en-us/library/b35999566(v=vs.110).aspx

Nota: cuando se usa este método con una variable de GenericValue de tipo Booleano, los valores "Verdadero" y "Falso" se convierten en 1 y 0, respectivamente.

ToLower

  • Function GenericValue.ToLower() As String

[Haz clic aquí para más detalles][23]

[23]: https://msdn.microsoft.com/en-us/library/system.string.tolower(v=vs.110).aspx

Nota: cuando se usa este método con una variable GenericValue de tipo Int, Flotante o Booleano, los datos se convierten automáticamente en Cadena y se manejan en consecuencia.

ToLowerInvariant

  • Function GenericValue.ToLowerInvariant() As String

[Haz clic aquí para más detalles][24]

[24]: https://msdn.microsoft.com/en-us/library/system.string.tolowerinvariante(v=vs.110).aspx

Nota: cuando se usa este método con una variable GenericValue de tipo Int, Flotante o Booleano, los datos se convierten automáticamente en Cadena y se manejan en consecuencia.

ToSByte

  • Function GenericValue.ToSByte(provider As IFormatProvider) As SByte

[Haga clic aquí para obtener más información.] [25]

[25]: https://msdn.microsoft.com/en-us/library/bb342232(v=vs.110).aspx

ToSingle

  • Function GenericValue.ToSingle(provider As IFormatProvider) As Single

[Haga clic aquí para obtener más información.] [26]

[26]: https://msdn.microsoft.com/en-us/library/bb360375(v=vs.110).aspx

ToString

  • Function GenericValue.ToString(formatProvider As IFormatProvider) As String
  • Función GenericValue.ToString (formato como cadena, formatoProveedor como IFormatProvider) como cadena
  • Función GenericValue.ToString () como cadena

[Haga clic aquí para obtener más información.] [27]

[27]: https://msdn.microsoft.com/en-us/library/system.string.tostring(v=vs.110).aspx

ToType

  • Función GenericValue.ToType(conversionType As Type, provider As IFormatProvider) As Object

[Haga clic aquí para obtener más información.] [29]

[29]: https://msdn.microsoft.com/en-us/library/bb358540(v=vs.110).aspx

ToUInt16

  • Function GenericValue.ToUInt16(provider As IFormatProvider) As UShort

[Haz clic aquí para más detalles][30]

[30]: https://msdn.microsoft.com/en-us/library/b333772665(v=vs.110).aspx

Nota: cuando se usa este método con una variable de GenericValue de tipo Booleano, los valores "Verdadero" y "Falso" se convierten en 1 y 0, respectivamente.

ToUInt32

  • Function GenericValue.ToUInt32(provider As IFormatProvider) As UInteger

[Haz clic aquí para más detalles][31]

https://msdn.microsoft.com/en-us/library/b3577762(v=vs.110).aspx

Nota: cuando se usa este método con una variable de GenericValue de tipo Booleano, los valores "Verdadero" y "Falso" se convierten en 1 y 0, respectivamente.

ToUInt64

  • Function GenericValue.ToUInt64(provider As IFormatProvider) As Ulong

[Haz clic aquí para más detalles][32]

https://msdn.microsoft.com/en-us/library/b155099(v=vs.110).aspx

Nota: cuando se usa este método con una variable de GenericValue de tipo Booleano, los valores "Verdadero" y "Falso" se convierten en 1 y 0, respectivamente.

ToUpper

  • Function GenericValue.ToUpper() As String

[Haz clic aquí para más detalles][33]

[33]: https://msdn.microsoft.com/en-us/library/system.string.toupper(v=vs.110).aspx

Nota: cuando se usa este método con una variable GenericValue de tipo Int, Flotante o Booleano, los datos se convierten automáticamente en Cadena y se manejan en consecuencia.

ToUpperInvariant

  • Function GenericValue.ToUpperInvariant() As String

[Haz clic aquí para más detalles][34]

[34]: https://msdn.microsoft.com/en-us/library/system.string.toupperinvariante(v=vs.110).aspx

Nota: cuando se usa este método con una variable GenericValue de tipo Int, Flotante o Booleano, los datos se convierten automáticamente en Cadena y se manejan en consecuencia.

Recortar

  • Función GenericValue.Trim(ParamArray trimChars As Char()) As String
  • Function GenericValue.Trim() As String

[Haz clic aquí para más detalles][35]

[35]: https://msdn.microsoft.com/en-us/library/system.string.trim(v=vs.110).aspx

Nota: cuando se usa este método con una variable GenericValue de tipo Int, Flotante o Booleano, los datos se convierten automáticamente en Cadena y se manejan en consecuencia.

TrimEnd

  • Function GenericValue.TrimEnd(ParamArray trimChars As Char()) As String

[Haz clic aquí para más detalles][36]

[36]: https://msdn.microsoft.com/en-us/library/system.string.trimend(v=vs.110).aspx

Nota: cuando se usa este método con una variable GenericValue de tipo Int, Flotante o Booleano, los datos se convierten automáticamente en Cadena y se manejan en consecuencia.

TrimStart

  • Function GenericValue.TrimStart(ParamArray trimChars As Char()) As String

[Haz clic aquí para más detalles][37]

[37]: https://msdn.microsoft.com/en-us/library/system.string.trimstart(v=vs.110).aspx

Nota: cuando se usa este método con una variable GenericValue de tipo Int, Flotante o Booleano, los datos se convierten automáticamente en Cadena y se manejan en consecuencia.

Cuando se usa Ctrl + K, Ctrl + M o Ctrl + Shift + M directamente en el cuerpo de la actividad Valor de Formato, la variable o argumento creado es de tipo GenericValue. Para otras actividades, el tipo creado es el mismo que el tipo requerido de la actividad.

Ejemplo de uso de una variable GenericValue

Para demostrar cómo funciona una variable GenericValue, vamos a crear una automatización que realiza diferentes operaciones cuyos resultados dependen de la forma en que definimos sus expresiones. Creamos dos variables GenericValue de diferentes tipos de datos y mostramos los resultados en el panel de Salida.

  1. Crea un nuevo proyecto en blanco.
  2. Crea tres variables de GenericValue: Int, Str y Result.
  3. En la columna Predeterminado para la variable Int, escribe 12, y para la variable,Str escribe "34". La primera variable se interpreta como un número entero, mientras que la segunda se interpreta como una cadena.


  4. Agrega una actividad de Asignación al panel del Diseñador y conéctala al nodo de Inicio.
  5. En el panel de Propiedades, en el campo Para, ingresa la variable Result.
  6. En el campo Valor, escribe Int + Str.
  7. Agrega una actividad de Escribir Línea y conéctala con la de Asignar.
  8. En el panel Propiedades, en el campo Texto, ingresa la variable Result.

    El proyecto deberá verse como en la siguiente captura de pantalla.



  9. Presiona F5 para ejecutar la automatización. Ten en cuenta que, en el panel de Salida, se muestra la suma de los dos números.



  10. Vuelve a la actividad de Asignar agregada anteriormente y cambia el campo Valor a Str + Int, para invertir el orden de las variables. El proyecto deberá verse como en la siguiente captura de pantalla.


  11. Presiona F5 para ejecutar la automatización. Ten en cuenta que, en el panel de Salida, se muestra la concatenación de los dos números.



Esto significa que UiPath Studio toma el primer elemento definido en su expresión como guía para la operación a realizar. Si el primer elemento de la expresión es un entero o una variable GenericValue rellenada como entero, UiPath Studio realizará la suma de los elementos.

Si el primer elemento de la expresión es una cadena o una variable GenericValue rellenada como cadena, UiPath Studio realizará la concatenación de los elementos.

Variables QueueItem

Recomendamos que consultes la página Sobre colas y transacciones, para que tengas una idea general sobre las colas y las transacciones antes de continuar con la variable ArtículoEnCola.

Antes de entrar en detalles sobre el tema, asegúrate de entender la distinción entre elementos de cola (elementos almacenados en una cola en Orchestrator) y variables QueueItem (variables usadas en Studio para procesar elementos de cola). Nos referimos a ellos exactamente así: "variables QueueItem" y "elementos de la cola".

En términos generales, como su nombre indica, la variable QueueItem almacena un elemento que ha sido extraído de un contenedor de elementos, una cola. Esta extracción se realiza generalmente con el fin de usar posteriormente los elementos de la cola en varios escenarios. Digamos que representas a una institución bancaria y tienes un informe de depósitos de 50 clientes. Quieres procesar los datos de cada cliente que haya depositado previamente una Comprobación On-Us menor a 5000 $, usando una aplicación financiera de terceros. En este sentido, se puede hacer un flujo de trabajo en el que la variable QueueItem almacene, por turno, la información de cada cliente. Cada entrada leída por la variable QueueItem se almacena en un elemento de cola y se agrega a la cola designada en Orchestrator. El resultado de todo este proceso es una cola que contiene la información de los clientes, cada uno en el elemento de cola correspondiente.

Para seguir procesando los datos que cumplen la condición, debes crear otro flujo de trabajo que extraiga de la cola creada anteriormente, los elementos con un valor de Comprobación On-Us correspondiente menor que 5000 $. Al final de este tema se ofrece un procedimiento paso a paso sobre cómo crear un proyecto de este tipo.

Métodos .NET compatibles

Nombre/Sintaxis

Descripción

Igual

  • Función Object.Equals(obj As Object) As Boolean

GetHashCode

  • Función Object.GetHashCode() As Integer

GetType

  • Función Object.GetType() As Type

ToString

  • Función Object.ToString() As String

Propiedades compatibles

Nombre/Sintaxis

Descripción

AssignedTo

  • Propiedad QueueItem.AssignedTo As String

DueDate

  • Propiedad QueueItem.DueDate As Date?

La fecha y la hora máximas en las que debe procesarse el elemento. Si está vacío, el elemento puede ser procesado en cualquier momento.

DeferDate

  • Propiedad QueueItem.DueDate As Date?

La fecha y hora más tempranas en las que el elemento está disponible para su procesamiento. Si está vacío, el elemento puede ser procesado tan pronto como sea posible.

ID

  • Propiedad QueueItem.Id As Long?

ItemKey

  • Propiedad QueueItem.ItemKey As Guid
El identificador único del elemento. Por ejemplo, 1bf829e1-cd6b-4275-a364-19db3cfe09c7.

Prioridad

  • Propiedad QueueItem.Priority As QueueItemPriority

La prioridad del elemento de la cola definida en Studio en el campo Prioridad del panel Propiedades.

ProcessingException

  • Propiedad QueueItem.ProcessingException As ProcessingException

La excepción de procesamiento de un elemento fallido.

Progreso

  • Propiedad QueueItem.Progress As String

Información de progreso personalizada sobre un elemento de la cola cuyo estado es InProgress.

QueueDefinitionId

  • Propiedad QueueItem.QueueDefinitionId As Long

El identificador único de la cola bajo la cual se creó un elemento de cola o una transacción.

NombreDeCola

  • Propiedad QueueItem.QueueName As String

El nombre de la cola que contiene los elementos procesados.

Referencia

  • Property QueueItem.Reference As String

Un valor especificado por el usuario para facilitar la identificación de los elementos de la cola.

RetryNo

  • Propiedad QueueItem.RetryNo As Integer

El número de veces que se ha vuelto a intentar el elemento.

ReviewStatus

  • Propiedad QueueItem.ReviewStatus As String

El estado de revisión del elemento de la cola tal y como se recupera de Orchestrator.

RowVersion

  • Propiedad QueueItem.RowVersion As Byte()

Un campo interno usado para estampar la versión. Se actualiza cada vez que se modifica una propiedad de la transacción actual.

SpecificContent

  • Propiedad QueueItem.SpecificContent As Dictionary(Of String, Object)

Una colección de pares de valores clave que contienen datos personalizados asociados a la transacción actual, tal y como se ha configurado en la actividad Agregar elemento de la cola.

StartTransactionTime

  • Propiedad QueueItem.StartTransactionTime As Date?

La hora y la fecha de inicio del procesamiento de la transacción.

Estado

  • Propiedad QueueItem.Status As QueueItemStatus

El estado del elemento de la cola tal y como se recupera de Orchestrator.

Ejemplo de uso de una variable QueueItem

Debido a la naturaleza de este ejemplo, hemos dividido esta sección en dos partes, cada una de las cuales representa uno de los dos flujos de trabajo principales que se usan cuando se trabaja con colas y elementos de cola:

Cargar elementos en una cola

Para demostrar cómo agregar elementos a una cola, vamos a crear una automatización que procese las entradas contenidas en un archivo .xlsx. Digamos que representas a una institución bancaria y tienes un informe de depósitos de 50 clientes. Deseas procesar los datos de cada cliente que haya depositado previamente una comprobación menor que 5000 $, usando una aplicación financiera de terceros. El informe contiene el nombre del cliente, el valor de On-Us Check y otros dos valores adicionales, digamos Cash In y Not On-Us Check. Creamos un flujo de trabajo en el que la variable QueueItem almacena, por turno, la información de cada cliente. Cada entrada leída por la variable QueueItem se almacena en un elemento de cola y se agrega a la cola designada en Orchestrator. El resultado de todo este proceso es una cola que contiene la información específica de cada cliente. Antes de pasar al flujo de trabajo propiamente dicho, es posible que desees consultar el informe de los clientes aquí. Vamos a trabajar con la hoja "Informes de julio".

Sin más demora:

  1. Crea una nueva secuencia.
  2. Agrega una actividad de Ámbito de aplicación de Excel dentro de la secuencia y define la ubicación del libro en el panel Propiedades de la actividad.
  3. Dentro de la sección Hacer , añade una actividad Leer rango para leer el rango deseado de valores del informe y almacenarlos en una variable de DataTable . En nuestro caso, escribe "A1-D51" o deja el valor predeterminado, "", que significa que se lee toda la hoja de cálculo.
  4. En el campo Nombre de la hoja, escribe el nombre de la hoja, a saber “July Report”.
  5. En el campo Tabla de datos, presiona Ctrl + K para crear una nueva variable DataTable que almacene el rango de datos leído anteriormente. Nómbralo DataTable1 o algo similar. El panel de Variables también debería mostrar la variable recién creada de la siguiente manera:


  6. A continuación, agrega una actividad Para cada Fila en el panel del Diseñador y rellena los campos en blanco con "fila" y el nombre de la variable DataTable, DataTable1, respectivamente. Esta actividad realiza la acción definida en la sección Cuerpo para cada fila de la tabla de datos. La sección Hacer deberá tener un aspecto similar al de la siguiente captura de pantalla hasta el momento:


  7. En la sección Cuerpo de la actividad Para Cada Fila, agrega una actividad Agregar elemento de cola. Esto agrega un elemento a una cola (definida más adelante en los pasos 8 y 12), para cada fila de la hoja de cálculo.
  8. En el panel de Propiedades, en el campo QueueName, escribe el nombre de la cola en la que quieres que se almacenen tus elementos, pongamos ReportQueue.
  9. En la sección Entrada, haz clic en el botón correspondiente al campo ItemInformation para abrir la ventana ItemInformation. Crea 4 argumentos, cada uno correspondiente a una columna del informe. Defínelos como sigue:

    • Name, manteniendo los valores predeterminados para Dirección y Tipo, y con Valor establecido en row(0).ToString. Esto recupera el valor de la columna con el contador 0 para cada fila del libro de trabajo, en nuestro caso el nombre del cliente.
    • CashIn, manteniendo los valores predeterminados para Dirección y Tipo, y con Valor establecido en row(1).ToString. Esto recupera el valor de la columna con el contador 1 para cada fila en el libro de trabajo, en nuestro caso el valor de Cash In.
    • OnUsCheck, manteniendo los valores predeterminados para Dirección y Tipo, y con Valor establecido en row(2).ToString. Esto recupera el valor de la columna con el contador 2 para cada fila del libro de trabajo, en nuestro caso el valor de la comprobación On-Us.
    • NotOnUsCheck, manteniendo los valores predeterminados para Dirección y Tipo, y con Valor establecido en row(3).ToString. Esto recupera el valor de la columna con el contador 3 para cada fila en el libro de trabajo, en nuestro caso el valor de No Comprobación On-Us.
  10. La ventana de ItemInformation debería ser similar a la siguiente captura de pantalla:



  11. Conecta el Robot de Studio a Orchestrator. Para obtener más detalles sobre cómo hacerlo, haz clic aquí.
  12. Navega hasta https://platform.uipath.com, inicia sesión con tus credenciales y luego crea una cola, ReportQueue, para almacenar los elementos. Asegúrate de que, sea cual sea el nombre que hayas usado antes (paso 8), uses el mismo aquí.
  13. Vuelve a Studio. En este punto el flujo de trabajo debería estar libre de errores y ser funcional, por lo que el siguiente paso es ponerlo a disposición de Orchestrator. En este sentido, haz clic en Diseño > Publicar.
  14. Para ejecutar el proceso, haz clic en Diseño > Ejecutar.

    Nota: Ten en cuenta que, una vez procesados, los artículos en cola se convierten en transacciones y se manejan como tales desde de ese momento.
  15. Ve a https://platform.uipath.com de nuevo y muestra las transacciones.

Procesar las transacciones de una cola

Para demostrar cómo procesar aún más las transacciones de una cola, vamos a crear un segundo flujo de trabajo que recupere de la cola apropiada, las transacciones con un valor de Comprobación On-Us menor a 5000 $. Para cada transacción que cumple la condición, se recogen los valores y se introducen en una aplicación ficticia de terceros. Las otras están etiquetadas como excepciones comerciales.

  1. Ve a Diseño > Nuevo > Diagrama de flujo para crear un nuevo archivo en el proyecto iniciado anteriormente.
  2. Agrega una actividad de Abrir Aplicación para abrir la aplicación ficticia de terceros. Conéctala al nodo de Inicio.
  3. Rellena los detalles requeridos (Nombre para mostrar, Nombre de archivo, Selector) en el panel de Propiedades, y configura la actividad para que se registre con las credenciales correspondientes. Usa admin para el campo Nombre de usuario, y password para el campo Contraseña.
  4. En el campo Nombre de archivo, ingresa la ruta de la aplicación.
  5. En el campo Selector, usando el Selector Editor, define un selector para UIDemo.
  6. Agrega una actividad Deberá Detener al panel del Diseñador y conéctala a la actividad Abrir Aplicación.
  7. Agrega una actividad de Decisión de Flujo al panel Diseñador y conéctala a la actividad Deberá Detener. Estas dos últimas actividades comprobarán si se ha detenido el trabajo mientras estaba en marcha. Esto permitirá configurar aún más el flujo de trabajo para realizar varias rutinas de seguridad después de la activación de la parada. Consulta a continuación un ejemplo de este tipo de rutina:

    • Agrega una actividad de Mensaje de Registro y conéctala a la rama Verdadero de la decisión de flujo anteriormente agregada.
    • En el panel de Propiedades, en el campo Mensaje, escribe "Se requiere detener el proceso" o algo similar para que se muestre si se activa la parada.
    • Agrega una actividad de Cierre de aplicación y conéctala a la actividad de Registrar mensaje previamente agregada.
    • En el panel de Propiedades, en el campo Nombre para mostrar, después de Cerrar la aplicación, escribe UIDemo.exe UIDemo.
  8. Agrega una actividad de Obtener elemento de transacción a la rama Falso de la decisión de flujo agregada previamente (paso 7). Esta actividad recupera los elementos de la transacción de la cola y los almacena, por turno, con cada iteración del bucle, en una variable QueueItem.
  9. En el panel de Propiedades, en el campo QueueName, escribe el nombre de la cola que almacena los elementos. En nuestro caso, tal y como se define en la sección Cargar elementos en una cola, el nombre es "ReportQueue".
  10. En el campo TransactionItem, presiona Ctrl+K para crear la variable QueueItem que almacena cada elemento de la transacción. Nómbralo "TransItem" o algo similar.
  11. Agrega una actividad de Decisión de Flujo al panel del Diseñador y conéctala a la actividad Obtener Elemento de Transacción.
  12. En el panel de Propiedades, en el campo Condición, escribe TransItem isNot Nothing. Esta actividad comprobará el valor de cada elemento para determinar si se ha alcanzado el final de la cola.
  13. Conecta la rama Falso de la decisión de flujo a la actividad Mensaje de registro creada en el paso 7. Esto garantizará que el trabajo se detenga cuando se llegue al final de la cola.
  14. Agrega otra actividad de Decisión de Flujo al panel del Diseñador y conéctala a la rama Verdadero de la decisión de flujo creada en el paso 11.
  15. En el panel de Propiedades, en el campo Condición, escribe cint(TransItem.SpecificContent("OnUSCheck").ToString) < 5000, donde:
    • cint convierte una variable de tipo cadena en una de tipo entero.
    • TransItem es la variable QueueItem (paso 18) usada para almacenar los elementos.
    • SpecificContent("OnUSCheck") recupera el contenido del argumento de la comprobación de US en cada elemento.
    • .ToString convierte el contenido de la variable QueueItem en una variable de tipo cadena.
    • < 5000 es la condición que se comprobará.

      La expresión anterior convertirá el valor de OnUSCheck en cada variable QueueItem en una variable de cadena, que a su vez se convertirá en un número entero. Se comprobará que el valor así obtenido se ajusta a la condición.

  16. Agrega una actividad de Establecer el Estado de la Transacción al panel del Diseñador, y conéctala a la rama Falso de la decisión de flujo anterior (paso 13).
  17. En el panel de Propiedades, asegúrate de que el campo Estado está configurado como Fallido, y el ErrorType en Negocio. De esta manera, si el valor de Comprobación On US es mayor o igual que 5000, la transacción se marca como fallida con una excepción comercial.
  18. En el campo de TransactionItem agrega la variable TransItem.
  19. En el campo Razón, escribe "El importe de OnUSCheck es superior a 5000" o algo similar, que se visualizará para una transacción fallida.
  20. Conecta la actividad Establecer el Estado de la Transacción a la actividad Deberá Detener (paso 6), para crear un bucle y procesar la siguiente transacción en la cola.
  21. Agrega una actividad de Secuencia al panel del Diseñador, y conéctala a la rama Verdadero de la decisión de flujo anterior (paso 13). Dentro de la secuencia, agrega una actividad Intentar Capturar y configúrala de tal manera que cualquier error potencial sea correctamente etiquetado como error de aplicación al procesar los elementos.
  22. Abre la aplicación UIDemo, e inicia sesión con el nombre de usuario admin y la contraseña password.
  23. Realiza la siguiente serie de actividades para cada uno de los campos Cash In, On Us Check y Not On Us Check en la aplicación UIDemo:

    • En la actividad anterior Intentar Capturar, agrega una actividad Escribir en.
    • Haz clic en Indicar en pantalla y selecciona en la interfaz de UIDemo, el campo en blanco correspondiente a Cash In.
    • En el panel de Propiedades, en el campo Texto, escribe transItem.SpecificContent("CashIn").ToString. Cada término de la expresión se explica más arriba (paso 15). Esta expresión convertirá el valor de cada variable ElementoEnCola en una variable de string.
    • Asegúrate de que la opción Simular tipo está seleccionada.
  24. En la pestaña de Diseño, en la sección de Asistentes, haz clic en Extracción de pantalla y señala el número de transacción en la aplicación UIDemo.



  25. En el Asistente de extracción de pantalla, elije un método de extracción y haz clic en Finalizar. Esto insertará una actividad de Extracción de pantalla en el flujo de trabajo. Asegúrate de colocarlo después de las actividades anteriores de Escribir en, y establece el campo Texto en una nueva variable, digamos TransactionValue. Esto recupera el número de transacción para cada elemento de la cola que cumple la condición inicial.
  26. Agrega una actividad de Establecer estado de transacción después de la actividad de Extracción de pantalla.
  27. En el panel de Propiedades, asegúrate de que el campo Estado está establecido como Correcto, y el ErrorType está establecido como Aplicación. De esta manera, si el conjunto de valores se introduce con éxito en la aplicación, el estado de la transacción se establece como Correcto, o bien se etiqueta como una excepción de la aplicación.
  28. En la ventana de Salida, define un nuevo argumento y agrega la variable creada anteriormente, TransactionValue (paso 25) como valor.
  29. En el campo Elemento de transacción, añade la variable TransItem.
  30. Agrega una actividad de Clic a la actividad de Secuencia después de las actividades Escribir en.
  31. Haz clic en Indicar en pantalla y selecciona el botón Aceptar de la interfaz UIDemo. Asegúrate de que la opción Simular tipo está seleccionada.
  32. La actividad de Intentar Capturar debería ser similar a la siguiente captura de pantalla:



  33. Vuelve al diagrama de flujo y conecta la actividad anterior de Secuencia (paso 21) a la actividad Deberá detener (paso 6) para crear un bucle y procesar la siguiente transacción en la cola.
  34. El diagrama de flujo debe ser similar a la siguiente captura de pantalla:



  35. Para ejecutar el proceso, haz clic en Diseño > Ejecutar.
  36. Una vez finalizada la ejecución, puedes ir a https://platform.uipath.com y mostrar las transacciones procesadas con los detalles de procesamiento correspondientes:
  • Transacción exitosa



  • Transacción fallida



¿Te ha resultado útil esta página?

Obtén la ayuda que necesitas
RPA para el aprendizaje - Cursos de automatización
Foro de la comunidad UiPath
Uipath Logo White
Confianza y seguridad
© 2005-2024 UiPath. Todos los derechos reservados.