studio
2020.10
false
UiPath logo, featuring letters U and I in white
不在支持范围内
Studio 用户指南
Last updated 2023年12月20日

UiPath 专有变量

泛型值变量

泛型值变量是一种变量,可以存储任何类型的数据,包括文本、数字、日期和数组,并且是 UiPath Studio 特有的。

泛型值变量自动转换为其他类型,以便执行某些操作。但是,请务必谨慎地使用这些类型的变量,因为变量转换并非总是适合您的项目。

UiPath Studio 具有泛型值变量的自动转换机制,您可以通过仔细定义它们的表达式来引导它们达到预期结果。考虑到表达式中的第一个元素用作 Studio 执行操作时的准则。例如,当您尝试添加两个泛型值变量时,如果表达式中的第一个变量定义为字符串,则结果是这两个变量的拼接。如果第一个变量定义为整数,则结果是这些整数的和。

支持的 .NET 方法

名称/语法

描述

比较对象

  • Function GenericValue.CompareTo(other As GenericValue) As Integer
  • Function GenericValue.CompareTo(obj As Object) As Integer

[单击此处以了解详细信息。][1]

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

包含

  • Function GenericValue.Contains(other As String) As Boolean

[单击此处以了解详细信息。][2]

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

用于检查字符串变量是否包含某个子字符串。例如,如果您想检查一个句子是否包含一个特定的单词,表达式应该是 [SentenceVariable].Contains("term"),其中 [SentenceVariable] 是包含该句子的泛型值变量,"term" 是要搜索的单词。
注意:将此方法与数据类型为整数、浮点或布尔值的通用值变量一起使用时,数据将自动转换为字符串,并进行相应的处理。

等于

  • Function GenericValue.Equals(other As GenericValue) As Boolean
  • Function GenericValue.Equals(obj As Object) As Boolean

[单击此处以了解详细信息。][3]

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

获取散列代码

  • Function GenericValue.GetHashCode() As Integer

[单击此处以了解详细信息。][5]

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

获取类型

  • Function Object.GetType() As Type

[单击此处以了解详细信息。][6]

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

获取类型代码

  • Function GenericValue.GetTypeCode() As TypeCode

[单击此处以了解详细信息。][7]

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

索引对象

  • Function GenericValue.IndexOf(value As String) As Integer
  • Function GenericValue.IndexOf(value As String, compareType As StringComparison) As Integer
  • Function GenericValue.IndexOf(value As String, startIndex As Integer) As Integer
  • Function GenericValue.IndexOf(value As String, startIndex As Integer, compareType As StringComparison) As Integer

[单击此处以了解详细信息。][8]

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

用于返回字符串变量中包含的子字符串的索引。例如,如果您想找到“Find 'locate' in this sentence”句子中“locate”一词的索引,表达式应该为 [SentenceVariable].IndexOf("locate"),其中 [SentenceVariable] 是包含该句子的泛型值变量,"locate" 是要搜索的词语。
注意:将此方法与数据类型为整数、浮点或布尔值的通用值变量一起使用时,数据将自动转换为字符串,并进行相应的处理。

长度

  • Function GenericValue.Lenght() As Integer

[单击此处以了解详细信息。][9]

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

用于返回字符串变量中的字符数。例如,如果您想知道一个单词有多少字母,那么表达式应该是 [WordVariable].Length,其中 [WordVariable] 是指包含该单词的泛型值变量。
注意:将此方法与数据类型为整数、浮点或布尔值的通用值变量一起使用时,数据将自动转换为字符串,并进行相应的处理。

替换

  • Function GenericValue.Replace(oldValue As String, new value As String) As String

[单击此处以了解详细信息。][10]

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

用于替换字符串变量中包含的数据。例如,如果您要将本地文件路径 C:\ExampleFolder\Main.xaml 更改为对应的服务器文件路径 C:/ExampleFolder/Main.xaml,则表达式应该是 [PathVariable].Replace("\","/"),其中 [PathVariable] 是包含该文件路径的泛型值变量,"\" 是要替换的字符,"/" 是用作替换内容的字符。
注意:将此方法与数据类型为整数、浮点或布尔值的通用值变量一起使用时,数据将自动转换为字符串,并进行相应的处理。

拆分

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

[单击此处以了解详细信息。][11]

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

用于返回字符串变量中的各个组成部分。例如,如果您想从 MM.DD.YYYY 日期格式中提取年份,表达式应该是 [DateVariable].Split(".".ToCharArray)(2),其中 [DateVariable] 是包含日期的泛型值变量,"." 是用作分隔符的字符,.ToCharArray 是使用分隔符界定的元素创建数组的一种方法,(2) 表示要返回的元素的索引,在我们的情况中,是年份。
注意:将此方法与数据类型为整数、浮点或布尔值的通用值变量一起使用时,数据将自动转换为字符串,并进行相应的处理。

子字符串

  • Function GenericValue.Substring(startIndex As Integer) As String
  • Function GenericValue.Substring(startIndex As Integer, length As Integer) As String

[单击此处以了解详细信息。][12]

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

用于返回字符串变量中包含的子字符串。例如,如果您想从“There are 100 machines available”句子中提取一个单词,表达式应该为 [SentenceVariable].Substring(10,3),其中 [SentenceVariable] 是包含该句子的泛型值变量,10 是要返回的第一个字符的索引,3 是子字符串的长度(从第一个字符开始计算)。在此示例中,产生的子字符串应该是“100”。
注意:将此方法与数据类型为整数、浮点或布尔值的通用值变量一起使用时,数据将自动转换为字符串,并进行相应的处理。

换为布尔值

  • Function GenericValue.ToBoolean(provider As IFormatProvider) As Boolean

[单击此处以了解详细信息。][13]

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

换为字节

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

[单击此处以了解详细信息。][14]

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

换为字符

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

[单击此处以了解详细信息。][15]

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

换为小数

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

[单击此处以了解详细信息。][17]

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

换为倍数

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

[单击此处以了解详细信息。][18]

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

换为整数

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

用于将指定值转换为可空整数。

注意:将此方法与数据类型为布尔值的通用值变量一起使用时,“True”和“false”值将分别转换为 1 和 0。

换为 16 位整数

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

[单击此处以了解详细信息。][20]

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

注意:将此方法与数据类型为布尔值的通用值变量一起使用时,“True”和“false”值将分别转换为 1 和 0。

换为 32 位整数

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

[单击此处以了解详细信息。][21]

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

注意:将此方法与数据类型为布尔值的通用值变量一起使用时,“True”和“false”值将分别转换为 1 和 0。

换为 64 位整数

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

[单击此处以了解详细信息。][22]

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

注意:将此方法与数据类型为布尔值的通用值变量一起使用时,“True”和“false”值将分别转换为 1 和 0。

换为小写

  • Function GenericValue.ToLower() As String

[单击此处以了解详细信息。][23]

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

注意:将此方法与数据类型为整数、浮点或布尔值的通用值变量一起使用时,数据将自动转换为字符串,并进行相应的处理。

换为小写不变量

  • Function GenericValue.ToLowerInvariant() As String

[单击此处以了解详细信息。][24]

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

注意:将此方法与数据类型为整数、浮点或布尔值的通用值变量一起使用时,数据将自动转换为字符串,并进行相应的处理。

换为带符号字节

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

[单击此处以了解详细信息。][25]

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

换为单值

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

[单击此处以了解详细信息。][26]

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

到字符串

  • Function GenericValue.ToString(formatProvider As IFormatProvider) As String
  • Function GenericValue.ToString(format As String, formatProvider As IFormatProvider) As String
  • 函数 GenericValue.ToString() As String

[单击此处以了解详细信息。][27]

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

换为类型

  • Function GenericValue.ToType(conversionType As Type, provider As IFormatProvider) As Object

[单击此处以了解详细信息。][29]

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

换为无符号 16 位整数

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

[单击此处以了解详细信息。][30]

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

注意:将此方法与数据类型为布尔值的通用值变量一起使用时,“True”和“false”值将分别转换为 1 和 0。

换为无符号 32 位整数

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

[单击此处以了解详细信息。][31]

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

注意:将此方法与数据类型为布尔值的通用值变量一起使用时,“True”和“false”值将分别转换为 1 和 0。

换为无符号 64 位整数

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

[单击此处以了解详细信息。][32]

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

注意:将此方法与数据类型为布尔值的通用值变量一起使用时,“True”和“false”值将分别转换为 1 和 0。

换为大写

  • Function GenericValue.ToUpper() As String

[单击此处以了解详细信息。][33]

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

注意:将此方法与数据类型为整数、浮点或布尔值的通用值变量一起使用时,数据将自动转换为字符串,并进行相应的处理。

换为大写不变量

  • Function GenericValue.ToUpperInvariant() As String

[单击此处以了解详细信息。][34]

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

注意:将此方法与数据类型为整数、浮点或布尔值的通用值变量一起使用时,数据将自动转换为字符串,并进行相应的处理。

剪裁

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

[单击此处以了解详细信息。][35]

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

注意:将此方法与数据类型为整数、浮点或布尔值的通用值变量一起使用时,数据将自动转换为字符串,并进行相应的处理。

剪裁结束

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

[单击此处以了解详细信息。][36]

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

注意:将此方法与数据类型为整数、浮点或布尔值的通用值变量一起使用时,数据将自动转换为字符串,并进行相应的处理。

剪裁开始

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

[单击此处以了解详细信息。][37]

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

注意:将此方法与数据类型为整数、浮点或布尔值的通用值变量一起使用时,数据将自动转换为字符串,并进行相应的处理。

直接在“格式值”活动正文中使用 Ctrl + K、Ctrl + M 或 Ctrl + Shift + M 时,创建的变量或参数的类型为“通用值”。对于其他活动,创建的类型与活动的必需类型相同。

使用泛型值变量的示例

为了演示泛型值变量的工作方式,我们来创建一个执行不同操作的自动化,这些操作的结果取决于我们定义表达式的方式。我们创建两个不同数据类型的泛型值变量,并在“输出”面板中显示结果。

  1. 创建一个新的空白项目。
  2. 创建三个泛型值变量:IntStrResult
  3. Int 变量的“默认值”列中,键入 12,对于 Str 变量,请键入“34”。第一个变量解释为整数,而第二个变量解释为字符串。


  4. 向“设计器”面板添加“赋值”活动,并将其连接到“开始”节点。
  5. 属性面板的“至”字段中,输入 Result 变量。
  6. 在“值”字段中,键入 Int + Str
  7. 添加“写入行”活动,并将其连接到“赋值”活动。
  8. 在“属性”面板的“至”字段中,输入 Result 变量。

    项目的呈现应如以下屏幕截图所示。



  9. 按 F5 可执行自动化。注意,在“输出”面板中,将显示这两个数字的和。



  10. 返回到之前添加的“赋值”活动,并将“值”字段更改为 Str + Int,以反转变量的顺序。项目的呈现应如以下屏幕截图所示。


  11. 按 F5 可执行自动化。注意,在“输出”面板中,将显示这两个数字的拼接。



这意味着 UiPath Studio 将表达式中定义的第一个元素作为要执行的操作的准则。如果表达式中的第一个元素是整数或作为整数填充的通用值变量,则 UiPath Studio 将执行元素的汇总。

如果表达式中的第一个元素是字符串或作为字符串填充的通用值变量,则 UiPath Studio 将执行元素的拼接。

队列项目变量

建议您先阅读“关于队列和事务”页面,简要了解队列和事务,然后再进一步了解队列项目变量。

在深入了解此主题的详细信息前,请确保您已清楚队列项目(存储在 Orchestrator 中队列里的项目)和队列项目变量(Studio 中用于处理队列项目的变量)之间的区别。我们确切地称之为:“队列项目变量”和“队列项目”。

大体而言,正如其名称所示,队列项目变量用于存储从项目的容器(即队列)中提取的项目。这种提取的目的通常是为了在各种各样的场景中进一步使用队列项目。假设您是一家银行机构的代表,手中有一份 50 位客户的存款报告。您想要借助第三方金融应用程序,处理之前存入金额小于 $5000 的银行内求偿支票的每位客户的数据。就这一点而言,您可以创建一个工作流,通过队列项目变量逐一存储各位客户的信息。队列项目变量读取的每一条目存储在队列项目中,并添加至 Orchestrator 中的指定队列。整个流程的结果是生成一个含有客户信息(各自存储在对应的队列项目中)的队列。

为进一步处理符合条件的数据,您必须再创建一个工作流,从之前创建的队列提取对应银行内求偿支票值小于 $5000 的项目。此主题的末尾提供了有关如何创建此类项目的分步骤规程。

支持的 .NET 方法

名称/语法

描述

等于

  • Function Object.Equals(obj As Object) As Boolean

获取散列代码

  • Function Object.GetHashCode() As Integer

获取类型

  • Function Object.GetType() As Type

到字符串

  • Function Object.ToString() As String

支持的属性

名称/语法

描述

赋值给

  • Property QueueItem.AssignedTo As String

截止日期

  • Property QueueItem.DueDate As Date?

应处理该项目的最晚日期和时间。若为空,则可在任何给定的时间处理该项目。

推迟日期

  • Property QueueItem.DueDate As Date?

可以处理该项目的最早日期和时间。若为空,则可以尽快处理该项目。

ID

  • Property QueueItem.Id As Long?

项目键值

  • Property QueueItem.ItemKey As Guid
该项目的唯一标识符。例如,1bf829e1-cd6b-4275-a364-19db3cfe09c7

优先级

  • Property QueueItem.Priority As QueueItemPriority

该队列项目的优先级,如 Studio 的属性面板上优先级字段中所定义。

处理异常

  • Property QueueItem.ProcessingException As ProcessingException

失败项目的异常处理。

进度

  • Property QueueItem.Progress As String

有关状态为“正在进行”的队列项目的自定义进度信息。

队列定义 ID

  • Property QueueItem.QueueDefinitionId As Long

在其下创建了队列项目/事务的队列的唯一标识符。

队列名称

  • Property QueueItem.QueueName As String

包含所处理项目的队列的名称。

参考

  • Property QueueItem.Reference As String

为方便识别队列项目而提供的用户指定值。

重试次数

  • Property QueueItem.RetryNo As Integer

项目被重试的次数。

审核状态

  • Property QueueItem.ReviewStatus As String

从 Orchestrator 检索到的队列项目修订状态。

行版本

  • Property QueueItem.RowVersion As Byte()

用于版本标记的内部字段。此字段会在每次当前事务的属性更改时更新。

具体内容

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

含有与当前事务相关的自定义数据的一系列键值对,如“添加队列项目”活动中所配置。

开始事务时间

  • Property QueueItem.StartTransactionTime As Date?

开始事务处理的时间和日期。

状态

  • Property QueueItem.Status As QueueItemStatus

从 Orchestrator 检索到的队列项目状态。

使用队列项目变量的示例

由于本例的性质关系,我们将此部分一分为二,各自代表处理队列和队列项目时要使用的两个主要工作流之一:

上传项目到队列

为演示如何添加项目到队列中,我们创建一个自动化工作流来处理 .xlsx 文件中包含的条目。假设您是一家银行机构的代表,手中有一份 50 位客户的存款报告。您想要借助第三方金融应用程序,处理之前存入金额小于 $5000 的银行内求偿支票的每位客户的数据。报告中含有客户姓名、银行内求偿支票值,以及另外两个值,假设是“兑现”和“非银行内求偿支票”。我们将创建一个工作流,通过队列项目变量逐一存储各位客户的信息。队列项目变量读取的每一条目而后存储在队列项目中,并添加至 Orchestrator 中的指定队列。整个流程的结果是生成一个含有各位客户的具体信息的队列。在转至实际的工作流前,您可能要先查看一下此处的客户报告。我们将处理“七月报告”工作表。

言归正传:

  1. 创建一个新序列。
  2. 在序列中添加一个“Excel 应用程序范围”活动,并在该活动的“属性”窗格中定义工作簿的位置。
  3. 在“ 执行” 部分添加“ 读取范围 ”活动,以从报告中读取所需范围的值,并将其存储在“ 数据表 ”变量中。 在本示例中,可键入 "A1-D51" ,或直接保留默认值“”,这表示读取整个电子表格。
  4. 在“工作表名称”字段中,键入工作表的名称,即““July Report””。
  5. 在“保存位置”字段中,按 Ctrl + K 创建一个新的“数据表”变量,用于存储先前读取的数据范围。将其命名为 DataTable1 或类似名称。“变量”窗格还应显示新创建的变量,如下所示:


  6. 接下来,向“设计器”面板中添加“遍历循环行”活动,然后在空白字段中分别填入“行”和数据表变量的名称“DataTable1”。此活动将针对数据表中的每一行执行“正文”部分中定义的操作。“执行”部分目前应如以下屏幕截图所示:


  7. 在“遍历每一行”活动的“正文”部分中,添加一个“添加队列项目”活动。这将为电子表格中的每一行添加一个项目到队列(在下面的步骤 8 和 12 中定义)。
  8. 在“属性”窗格的“队列名称”字段中,键入要用于存储项目的队列的名称,假设为 ReportQueue
  9. 在“输入”部分中,单击与“项目信息”字段对应的按钮,以打开“项目信息”窗口。创建 4 个参数,每个参数对应于报告中的一列。如下定义:

    • Name,“方向”和“类型”保留默认值,“值”则设为 row(0).ToString。这将从计数器为 0 的列中检索工作簿中每一行的值,本例中为客户的姓名。
    • CashIn,“方向”和“类型”保留默认值,“值”则设为 row(1).ToString。这将从计数器为 1 的列中检索工作簿中每一行的值,本例中为“兑现”值。
    • OnUsCheck,“方向”和“类型”保留默认值,“值”则设为 row(2).ToString。这将从计数器为 2 的列中检索工作簿中每一行的值,本例中为“银行内求偿支票”值。
    • NotOnUsCheck,“方向”和“类型”保留默认值,“值”则设为 row(3).ToString。这将从计数器为 3 的列中检索工作簿中每一行的值,本例中为“非银行内求偿支票”值。
  10. 项目信息”窗口应如以下屏幕截图所示:



  11. 将 Studio 的机器人连接到 Orchestrator。如需关于具体方法的详细信息,请单击此处
  12. 导航到 https://platform.uipath.com,使用您的凭据登录,然后创建队列 ReportQueue 来存储项目。不论您在前面(第 8 步)使用了何种名称,请确保此处使用相同名称。
  13. 返回到 Studio。此刻,您的工作流应当毫无错误且正常运作,因此下一步是要将它提供给 Orchestrator。对此,请单击“设计”>“发布”
  14. 若要运行该流程,请单击“设计”>“运行”

    注意:请注意,队列项目在处理之后将变成事务,并且会据此进行进一步处理。
  15. 再次导航到 https://platform.uipath.com,并显示相关的事务

处理队列中的事务

为演示如何进一步处理队列中的事务,我们将创建第二个工作流,它会从相应队列中检索银行内求偿支票值小于 $5000 的事务。对于每一个符合条件的事务,收集这些事务的值并将它们引入到第三方虚拟应用程序中。其他的值则标记为业务异常。

  1. 转到“设计”>“新建”>“流程图”,以在上方启动的项目中创建一个新文件。
  2. 添加一个“打开应用程序”活动,以打开第三方虚拟应用程序。将它连接到“开始”节点。
  3. 在“属性”面板上填写所需的详细信息(“显示名称”、“文件名称”、“选取器”),然后配置活动以使用相应的凭据登录。使用 admin 作为“用户名”字段,使用 password 作为“密码”字段。
  4. 在“文件名”字段中,填入应用程序的路径。
  5. 在“选取器”字段中,使用选取器编辑器定义适用于 UIDemo 的选取器。
  6. 向“设计器”面板中添加“应停止”活动,并将它连接到“打开应用程序”活动。
  7. 向“设计器”面板中添加“流程决策”活动,并将它连接到“应停止”活动。最后两个活动将检查您是否在作业仍在运行时停止了作业。这样,您就能进一步配置工作流,以在触发了停止后执行各种各样的安全例程。下方提供了此类例程的一个示例:

    • 添加一个“日志消息”活动,并将它连接到之前添加的流程决策的“True”分支。
    • 在“属性”面板的“消息”字段中,键入“停止所需进程”或在触发了停止时要显示的类似消息。
    • 添加一个“关闭应用程序”活动,并将其连接到之前添加的“日志消息”活动。
    • 在“属性”面板的“显示名称”字段中,在“关闭应用程序”的后面键入 UIDemo.exe UIDemo
  8. 添加一个“获取事务项目”活动到之前添加的流程决策(第 7 步)的“False”分支。此活动将借助循环的每一迭代,逐一检索队列中的事务项目并存储到队列项目变量中。
  9. 在“属性”窗格的“队列名称”字段中,键入用于存储项目的队列的名称。在本例中,根据“上传项目到队列”部分中的定义,其名称为“ReportQueue”。
  10. 在“事务项目”字段中,按 Ctrl+K 创建用于存储各个事务项目的队列项目变量。将它命名为“TransItem”或类似名称。
  11. 向“设计器”面板中添加一个“流程决策”活动,并将其连接到“获取事务项目”活动。
  12. 在“属性”窗格的“条件”字段中,键入 TransItem isNot Nothing。此活动用于检查各项目的值,以确定是否已达到队列末尾。
  13. 将流程决策的“False”分支连接到第 7 步创建的“日志消息”活动。这样可确保在达到队列末尾时停止作业。
  14. 向“设计器”面板中添加另一个“流程决策”活动,并将其连接到第 11 步创建的流程决策的“True”分支。
  15. 在“属性”窗格的“条件”字段中,键入 cint(TransItem.SpecificContent("OnUSCheck").ToString) < 5000,其中:
    • cint 将字符串型变量转换为整型变量。
    • TransItem 是用于存储项目的队列项目变量(第 18 步)。
    • SpecificContent("OnUSCheck") 检索各个项目中银行内求偿支票参数的内容。
    • .ToString 将队列项目变量的内容转换为字符串型变量。
    • < 5000 是要对照其检查的条件。

      上述表达式会将各个队列项目变量中的银行内求偿支票值转换为字符串变量,然后进一步转换为整数。因此,获取的值将被检查是否与条件相符。

  16. 向“设计器”面板中添加一个“设置事务状态”活动,并将其连接到之前创建的流程决策(第 13 步)的“False”分支。
  17. 在“属性”窗格中,确保“状态”字段设为“失败”,且“错误类型”设为“业务”。这样,当银行内求偿支票的值大于等于 5000 时,事务将被标记为失败且抛出业务异常。
  18. 在“事务项目”字段中,添加 TransItem 变量。
  19. 在“原因”字段中,键入“银行内求偿支票金额大于 5000”或类似的内容,以用于显示失败事务的原因。
  20. 20. 将“设置事务状态”活动连接到“应停止”活动(第 6 步),以创建一个循环并处理队列中的下一事务。
  21. 向“设计器”面板中添加一个“序列”活动,并将其连接到之前创建的流程决策(第 13 步)的“True”分支。在此序列中添加一个“Try Catch 异常处理”活动并作出相应配置,以便将处理项目时可能出现的任何错误正确标记为应用程序错误。
  22. 打开 UIDemo 应用程序,并使用用户名 admin 和密码 password 登录。
  23. 针对 UIDemo 应用程序各个“兑现”、“银行内求偿支票”和“非银行内求偿支票”字段执行以下序列活动:

    • 在之前的“Try Catch 异常处理”活动中,添加一个“键入信息”活动。
    • 单击“在屏幕上指示”,再从 UIDemo 界面中选择与“兑现”对应的空字段。
    • 在“属性”窗格的“文本”字段中,键入 transItem.SpecificContent("CashIn").ToString。表达式中的各个术语已在上文作出说明(第 15 步)。此表达式将各个队列项目变量的值转换为字符串变量。
    • 确保选中了“模拟键入”选项。
  24. 在“设计”选项卡的“向导”部分中,单击“屏幕抓取”,再指向 UIDemo 应用程序中的事务编号。



  25. 从“屏幕抓取器向导”中,选择抓取方法并单击“完成”。这会在您的工作流中插入一个“屏幕抓取”活动。确保将它放置在之前的“键入信息”活动后面,然后将“文本”字段设为新的变量,例如 TransactionValue。这将检索每个队列项目中满足初始条件的事务编号。
  26. 在“屏幕抓取”活动后面添加“设置事务状态”活动。
  27. 在“属性”窗格中,确保“状态”字段设为“成功”,且“错误类型”设为“应用程序”。这样,如果在应用程序中成功引入了这组值,则事务的状态将设置为“成功”,否则标记为应用程序异常。
  28. 在“输出”窗口中定义一个新参数,并将之前创建的变量 TransactionValue(第 25 步)添加为值。
  29. 在“事务项目”字段中,添加 TransItem 变量。
  30. 在“序列”活动中添加一个“单击”活动,放在“键入信息”活动的后面。
  31. 单击“在屏幕上指定”,然后从 UIDemo 界面中选择“接受”按钮。确保选中了“模拟键入”选项。
  32. Try Catch 异常处理”活动应如以下屏幕截图所示:



  33. 返回到流程图,再将之前的“序列”活动(第 21 步)连接到“应停止”活动(第 6 步),以创建一个循环并处理队列中的下一事务。
  34. 流程图应如以下屏幕截图所示:



  35. 若要运行该流程,请单击“设计”>“运行”
  36. 执行结束后,您可以前往 https://platform.uipath.com 并显示处理的事务及对应的处理详情:
  • 成功的事务



  • 失败的事务



此页面有帮助吗?

获取您需要的帮助
了解 RPA - 自动化课程
UiPath Community 论坛
Uipath Logo White
信任与安全
© 2005-2024 UiPath。保留所有权利。