- 发行说明
- 入门指南
- 设置和配置
- 自动化项目
- 依赖项
- 工作流类型
- 控制流程
- 文件比较
- 自动化最佳实践
- 源代码控件集成
- 调试
- 日志记录
- 诊断工具
- 工作流分析器
- 变量
- 参数
- 导入的命名空间
- 编码自动化
- 基于触发器的 Attended 自动化
- 录制
- 用户界面元素
- 选取器
- 对象存储库
- 数据抓取
- 图像与文本自动化
- Citrix Technologies Automation
- RDP 自动化
- VMware Horizon 自动化
- Salesforce 自动化
- SAP 自动化
- macOS 用户界面自动化
- ScreenScrapeJavaSupport 工具
- Webdriver 协议
- 扩展程序
- 测试套件 - Studio
- 故障排除
UiPath 专有变量
通用值变量是一种变量,可以存储任何类型的数据,包括文本、数字、日期和数组,并且是 Studio 特有的。
泛型值变量自动转换为其他类型,以便执行某些操作。但是,请务必谨慎地使用这些类型的变量,因为变量转换并非总是适合您的项目。
UiPath Studio 具有泛型值变量的自动转换机制,您可以通过仔细定义它们的表达式来引导它们达到预期结果。考虑到表达式中的第一个元素用作 Studio 执行操作时的准则。例如,当您尝试添加两个泛型值变量时,如果表达式中的第一个变量定义为字符串,则结果是这两个变量的拼接。如果第一个变量定义为整数,则结果是这些整数的和。
名称/语法 |
描述 |
---|---|
比较对象
| |
包含
|
用于检查字符串变量是否包含某个子字符串。例如,如果您想检查一个句子是否包含一个特定的单词,表达式应该是
[SentenceVariable].Contains("term") ,其中 [SentenceVariable] 是包含该句子的泛型值变量,"term" 是要搜索的单词。
注意:将此方法与数据类型为整数、浮点或布尔值的通用值变量一起使用时,数据将自动转换为字符串,并进行相应的处理。
|
等于
| |
获取散列代码
| |
获取类型
| |
获取类型代码
| |
索引对象
|
用于返回字符串变量中包含的子字符串的索引。例如,如果您想找到“Find 'locate' in this sentence”句子中“locate”一词的索引,表达式应该为
[SentenceVariable].IndexOf("locate") ,其中 [SentenceVariable] 是包含该句子的泛型值变量,"locate" 是要搜索的词语。
注意:将此方法与数据类型为整数、浮点或布尔值的通用值变量一起使用时,数据将自动转换为字符串,并进行相应的处理。
|
长度
|
用于返回字符串变量中的字符数。例如,如果您想知道一个单词有多少字母,那么表达式应该是
[WordVariable].Length ,其中 [WordVariable] 是指包含该单词的泛型值变量。
注意:将此方法与数据类型为整数、浮点或布尔值的通用值变量一起使用时,数据将自动转换为字符串,并进行相应的处理。
|
替换
|
用于替换字符串变量中包含的数据。例如,如果您要将本地文件路径
C:\ExampleFolder\Main.xaml 更改为对应的服务器文件路径 C:/ExampleFolder/Main.xaml ,则表达式应该是 [PathVariable].Replace("\","/") ,其中 [PathVariable] 是包含该文件路径的泛型值变量,"\" 是要替换的字符,"/" 是用作替换内容的字符。
注意:将此方法与数据类型为整数、浮点或布尔值的通用值变量一起使用时,数据将自动转换为字符串,并进行相应的处理。
|
拆分
|
用于返回字符串变量中的各个组成部分。例如,如果您想从 MM.DD.YYYY 日期格式中提取年份,表达式应该是
[DateVariable].Split(".".ToCharArray)(2) ,其中 [DateVariable] 是包含日期的泛型值变量,"." 是用作分隔符的字符,.ToCharArray 是使用分隔符界定的元素创建数组的一种方法,(2) 表示要返回的元素的索引,在我们的情况中,是年份。
注意:将此方法与数据类型为整数、浮点或布尔值的通用值变量一起使用时,数据将自动转换为字符串,并进行相应的处理。
|
子字符串
|
用于返回字符串变量中包含的子字符串。例如,如果您想从“There are 100 machines available”句子中提取一个单词,表达式应该为
[SentenceVariable].Substring(10,3) ,其中 [SentenceVariable] 是包含该句子的泛型值变量,10 是要返回的第一个字符的索引,3 是子字符串的长度(从第一个字符开始计算)。在此示例中,产生的子字符串应该是“100”。
注意:将此方法与数据类型为整数、浮点或布尔值的通用值变量一起使用时,数据将自动转换为字符串,并进行相应的处理。
|
换为布尔值
| |
换为字节
| |
换为字符
| |
换为小数
| |
换为倍数
| |
换为整数
|
用于将指定值转换为可空整数。 注意:将此方法与数据类型为布尔值的通用值变量一起使用时,“True”和“false”值将分别转换为 1 和 0。
|
换为 16 位整数
|
注意:将此方法与数据类型为布尔值的通用值变量一起使用时,“True”和“false”值将分别转换为 1 和 0。
|
换为 32 位整数
|
注意:将此方法与数据类型为布尔值的通用值变量一起使用时,“True”和“false”值将分别转换为 1 和 0。
|
换为 64 位整数
|
注意:将此方法与数据类型为布尔值的通用值变量一起使用时,“True”和“false”值将分别转换为 1 和 0。
|
换为小写
|
注意:将此方法与数据类型为整数、浮点或布尔值的通用值变量一起使用时,数据将自动转换为字符串,并进行相应的处理。
|
换为小写不变量
|
注意:将此方法与数据类型为整数、浮点或布尔值的通用值变量一起使用时,数据将自动转换为字符串,并进行相应的处理。
|
换为带符号字节
| |
换为单值
| |
到字符串
| |
换为类型
| |
换为无符号 16 位整数
|
注意:将此方法与数据类型为布尔值的通用值变量一起使用时,“True”和“false”值将分别转换为 1 和 0。
|
换为无符号 32 位整数
|
注意:将此方法与数据类型为布尔值的通用值变量一起使用时,“True”和“false”值将分别转换为 1 和 0。
|
换为无符号 64 位整数
|
注意:将此方法与数据类型为布尔值的通用值变量一起使用时,“True”和“false”值将分别转换为 1 和 0。
|
换为大写
|
注意:将此方法与数据类型为整数、浮点或布尔值的通用值变量一起使用时,数据将自动转换为字符串,并进行相应的处理。
|
换为大写不变量
|
注意:将此方法与数据类型为整数、浮点或布尔值的通用值变量一起使用时,数据将自动转换为字符串,并进行相应的处理。
|
剪裁
|
注意:将此方法与数据类型为整数、浮点或布尔值的通用值变量一起使用时,数据将自动转换为字符串,并进行相应的处理。
|
剪裁结束
|
注意:将此方法与数据类型为整数、浮点或布尔值的通用值变量一起使用时,数据将自动转换为字符串,并进行相应的处理。
|
剪裁开始
|
注意:将此方法与数据类型为整数、浮点或布尔值的通用值变量一起使用时,数据将自动转换为字符串,并进行相应的处理。
|
直接在“格式值”活动正文中使用 Ctrl + K、Ctrl + M 或 Ctrl + Shift + M 时,创建的变量或参数的类型为“通用值”。对于其他活动,创建的类型与活动的必需类型相同。
为了演示泛型值变量的工作方式,我们来创建一个执行不同操作的自动化,这些操作的结果取决于我们定义表达式的方式。我们创建两个不同数据类型的泛型值变量,并在“输出”面板中显示结果。
- 创建一个新的空白项目。
- 创建三个泛型值变量:
Int
、Str
和Result
。 -
在
Int
变量的“默认值”列中,键入 12,对于Str
变量,请键入“34”。第一个变量解释为整数,而第二个变量解释为字符串。 - 向“设计器”面板添加“赋值”活动,并将其连接到“开始”节点。
- 在属性面板的“至”字段中,输入
Result
变量。 - 在“值”字段中,键入
Int
+Str
。 - 添加“写入行”活动,并将其连接到“赋值”活动。
-
双击活动卡,然后在“文本”字段中输入
Result
变量。项目的呈现应如以下屏幕截图所示。
-
按 F5 可执行自动化。注意,在“输出”面板中,将显示这两个数字的和。
-
-
按 F5 可执行自动化。注意,在“输出”面板中,将显示这两个数字的拼接。
这意味着 UiPath Studio 将表达式中定义的第一个元素作为要执行的操作的准则。如果表达式中的第一个元素是整数或作为整数填充的通用值变量,则 UiPath Studio 将执行元素的汇总。
如果表达式中的第一个元素是字符串或作为字符串填充的通用值变量,则 UiPath Studio 将执行元素的拼接。
建议您先阅读“关于队列和事务”页面,简要了解队列和事务,然后再进一步了解队列项目变量。
在深入了解此主题的详细信息前,请确保您已清楚队列项目(存储在 Orchestrator 中队列里的项目)和队列项目变量(Studio 中用于处理队列项目的变量)之间的区别。我们确切地称之为:“队列项目变量”和“队列项目”。
大体而言,正如其名称所示,队列项目变量用于存储从项目的容器(即队列)中提取的项目。这种提取的目的通常是为了在各种各样的场景中进一步使用队列项目。假设您是一家银行机构的代表,手中有一份 50 位客户的存款报告。您想要借助第三方金融应用程序,处理之前存入金额小于 $5000 的银行内求偿支票的每位客户的数据。就这一点而言,您可以创建一个工作流,通过队列项目变量逐一存储各位客户的信息。队列项目变量读取的每一条目存储在队列项目中,并添加至 Orchestrator 中的指定队列。整个流程的结果是生成一个含有客户信息(各自存储在对应的队列项目中)的队列。
为进一步处理符合条件的数据,您必须再创建一个工作流,从之前创建的队列提取对应银行内求偿支票值小于 $5000 的项目。此主题的末尾提供了有关如何创建此类项目的分步骤规程。
名称/语法 |
描述 |
---|---|
等于
| |
获取散列代码
| |
获取类型
| |
到字符串
|
名称/语法 |
描述 |
---|---|
赋值给
| |
截止日期
|
应处理该项目的最晚日期和时间。若为空,则可在任何给定的时间处理该项目。 |
推迟日期
|
可以处理该项目的最早日期和时间。若为空,则可以尽快处理该项目。 |
ID
| |
项目键值
|
该项目的唯一标识符。例如,
1bf829e1-cd6b-4275-a364-19db3cfe09c7 。
|
优先级
|
该队列项目的优先级,如 Studio 的属性面板上优先级字段中所定义。 |
处理异常
|
失败项目的异常处理。 |
进度
|
有关状态为“正在进行”的队列项目的自定义进度信息。 |
队列定义 ID
|
在其下创建了队列项目/事务的队列的唯一标识符。 |
队列名称
|
包含所处理项目的队列的名称。 |
参考
|
为方便识别队列项目而提供的用户指定值。 |
重试次数
|
项目被重试的次数。 |
审核状态
|
从 Orchestrator 检索到的队列项目修订状态。 |
行版本
|
用于版本标记的内部字段。此字段会在每次当前事务的属性更改时更新。 |
具体内容
|
含有与当前事务相关的自定义数据的一系列键值对,如“添加队列项目”活动中所配置。 |
开始事务时间
|
开始事务处理的时间和日期。 |
状态
|
从 Orchestrator 检索到的队列项目状态。 |
上传项目到队列
.xlsx
文件中包含的条目。假设您是一家银行机构的代表,手中有一份 50 位客户的存款报告。您想要借助第三方金融应用程序,处理之前存入金额小于 $5000 的银行内求偿支票的每位客户的数据。报告中含有客户姓名、银行内求偿支票值,以及另外两个值,假设是“兑现”和“非银行内求偿支票”。我们将创建一个工作流,通过队列项目变量逐一存储各位客户的信息。队列项目变量读取的每一条目而后存储在队列项目中,并添加至 Orchestrator 中的指定队列。整个流程的结果是生成一个含有各位客户的具体信息的队列。在转至实际的工作流前,您可能要先查看一下此处的客户报告。我们将处理“七月报告”工作表。
言归正传:
- 创建一个新序列。
- 在序列中添加“Excel 流程作用域”活动。
- 添加“使用 Excel 文件”活动,并在活动的“Excel 文件”字段中定义 Workbook 的位置。
- 添加一个“读取范围”活动,以便从报告中读取所需范围的值,并将它们存储在“数据表”变量中。
- 在“范围”字段的右侧,选择“加号” >“Excel”>“在 Excel 中指定”,然后选择单元格范围(例如,A1:D51)。
-
在“保存位置”字段中,按 Ctrl + K 创建一个新的“数据表”变量,用于存储先前读取的数据范围。将其命名为
dt_DataTable1
或类似名称。“变量”窗格还应显示新创建的变量,如下所示:
-
接下来,向“设计器”面板中添加“遍历数据表中的每一行”活动,然后在空白字段中分别填入“行”和数据表变量的名称
dt_DataTable1
。此活动将针对数据表中的每一行执行定义的操作。序列目前应如以下屏幕截图所示:
- 在“遍历数据表中的每一行”活动中添加“添加队列项目”活动。这将为电子表格中的每一行添加一个项目到队列(在下面的步骤 8 和 12 中定义)。
- 在“队列名称”字段中,输入要存储项目的队列的名称,例如
ReportQueue
。 -
单击“项目信息”下的字段以打开“字典生成器”窗口。创建 4 个参数,每个参数对应于报告中的一列。如下定义:
Name
,“方向”和“类型”保留默认值,“值”则设为row(0).ToString
。这将从计数器为 0 的列中检索工作簿中每一行的值,本例中为客户的姓名。CashIn
,“方向”和“类型”保留默认值,“值”则设为row(1).ToString
。这将从计数器为 1 的列中检索工作簿中每一行的值,本例中为“兑现”值。OnUsCheck
,“方向”和“类型”保留默认值,“值”则设为row(2).ToString
。这将从计数器为 2 的列中检索工作簿中每一行的值,本例中为“银行内求偿支票”值。NotOnUsCheck
,“方向”和“类型”保留默认值,“值”则设为row(3).ToString
。这将从计数器为 3 的列中检索工作簿中每一行的值,本例中为“非银行内求偿支票”值。
-
“字典生成器”窗口应如以下屏幕截图所示:
- 将 Studio 的机器人连接到 Orchestrator。如需关于具体方法的详细信息,请单击此处。
- 导航至 https://cloud.uipath.com,使用您的凭据登录,然后创建队列 ReportQueue 来存储项目。不论您在前面(第 8 步)使用了何种名称,请确保此处使用相同名称。
- 返回到 Studio。此刻,您的工作流应当毫无错误且正常运作,因此下一步是要将它提供给 Orchestrator。对此,请单击“设计”>“发布”。
-
若要运行该流程,请单击“设计”>“运行”。
注意:请注意,队列项目在处理之后将变成事务,并且会据此进行进一步处理。 - 再次导航到 https://cloud.uipath.com,并显示相关的事务。
处理队列中的事务
为演示如何进一步处理队列中的事务,我们将创建第二个工作流,它会从相应队列中检索银行内求偿支票值小于 $5000 的事务。对于每一个符合条件的事务,收集这些事务的值并将它们引入到第三方虚拟应用程序中。其他的值则标记为业务异常。
- 转到“设计”>“新建”>“流程图”,以在上方启动的项目中创建一个新文件。
- 添加一个“使用应用程序/浏览器”活动,以打开第三方虚拟应用程序。将它连接到“开始”节点。
- 在“属性”面板上填写所需的详细信息(“显示名称”、“文件路径”、“选取器”),然后配置活动以使用相应的凭据登录。使用
admin
作为“用户名”字段,使用password
作为“密码”字段。 - 在“文件路径”字段中,填入应用程序的路径。
- 在“选取器”字段中,使用选取器编辑器定义适用于 UIDemo 的选取器。
- 向“设计器”面板中添加“应停止”活动,并将它连接到“打开应用程序”活动。
-
向“设计器”面板中添加“流程决策”活动,并将它连接到“应停止”活动。最后两个活动将检查您是否在作业仍在运行时停止了作业。这样,您就能进一步配置工作流,以在触发了停止后执行各种各样的安全例程。下方提供了此类例程的一个示例:
- 添加一个“获取事务项目”活动到之前添加的流程决策(第 7 步)的“False”分支。此活动将借助循环的每一迭代,逐一检索队列中的事务项目并存储到队列项目变量中。
- 在“属性”窗格的“队列名称”字段中,键入用于存储项目的队列的名称。在本例中,根据“上传项目到队列”部分中的定义,其名称为“ReportQueue”。
- 在“事务项目”字段中,按 Ctrl+K 创建用于存储各个事务项目的队列项目变量。将它命名为“TransItem”或类似名称。
- 向“设计器”面板中添加一个“流程决策”活动,并将其连接到“获取事务项目”活动。
- 在“属性”窗格的“条件”字段中,键入
TransItem isNot Nothing
。此活动用于检查各项目的值,以确定是否已达到队列末尾。 - 将流程决策的“False”分支连接到第 7 步创建的“日志消息”活动。这样可确保在达到队列末尾时停止作业。
- 向“设计器”面板中添加另一个“流程决策”活动,并将其连接到第 11 步创建的流程决策的“True”分支。
-
在“属性”窗格的“条件”字段中,键入
cint(TransItem.SpecificContent("OnUSCheck").ToString) < 5000
,其中:cint
将字符串型变量转换为整型变量。TransItem
是用于存储项目的队列项目变量(第 18 步)。SpecificContent("OnUSCheck")
检索各个项目中银行内求偿支票参数的内容。.ToString
将队列项目变量的内容转换为字符串型变量。-
< 5000
是要对照其检查的条件。上述表达式会将各个队列项目变量中的银行内求偿支票值转换为字符串变量,然后进一步转换为整数。因此,获取的值将被检查是否与条件相符。
- 向“设计器”面板中添加一个“设置事务状态”活动,并将其连接到之前创建的流程决策(第 13 步)的“False”分支。
- 在“属性”窗格中,确保“状态”字段设为“失败”,且“错误类型”设为“业务”。这样,当银行内求偿支票的值大于等于 5000 时,事务将被标记为失败且抛出业务异常。
- 在“事务项目”字段中,添加
TransItem
变量。 - 在“原因”字段中,键入“银行内求偿支票金额大于 5000”或类似的内容,以用于显示失败事务的原因。
- 20. 将“设置事务状态”活动连接到“应停止”活动(第 6 步),以创建一个循环并处理队列中的下一事务。
- 向“设计器”面板中添加一个“序列”活动,并将其连接到之前创建的流程决策(第 13 步)的“True”分支。在此序列中添加一个“Try Catch 异常处理”活动并作出相应配置,以便将处理项目时可能出现的任何错误正确标记为应用程序错误。
- 打开 UIDemo 应用程序,并使用用户名
admin
和密码password
登录。 -
针对 UIDemo 应用程序各个“兑现”、“银行内求偿支票”和“非银行内求偿支票”字段执行以下序列活动:
- 在之前的“Try Catch 异常处理”活动中,添加“使用应用程序/浏览器”活动以打开应用程序。
- 添加“输入”活动。
- 单击“在屏幕上指定目标”,再从 UIDemo 界面中选择与“兑现”对应的空字段。
- 在“输入此项”字段中,输入
transItem.SpecificContent("CashIn").ToString
。表达式中的各个术语已在上文作出说明(第 15 步)。此表达式将各个队列项目变量的值转换为字符串变量。
- 在之前的“输入”活动之后添加“获取文本”活动,然后从选项菜单中选择“在屏幕上指定目标”。
- 指向 UIDemo 应用程序中的事务编号,然后单击“确认”。
- 将“文本”字段设置为新变量,例如
TransNumber
。这将检索每个队列项目中满足初始条件的事务编号。 - 在“获取文本”活动之后添加“设置事务状态”活动。
- 确保将“状态”字段设置为“成功”,并将“错误类型”设置为“应用程序”。这样,如果在应用程序中成功引入了这组值,则事务的状态将设置为“成功”,否则标记为应用程序异常。
- 在“输出”窗口中定义一个新参数,并将之前创建的变量
TransNumber
(第 25 步)添加为值。 - 在“事务项目”字段中,添加
TransItem
变量。 - 在“设置事务状态”活动之后添加“单击”活动。
- 单击“在屏幕上指定目标”,然后从 UIDemo 界面中选择“接受”按钮。
-
“Try Catch 异常处理”活动应如以下屏幕截图所示:
- 返回到流程图,再将之前的“序列”活动(第 21 步)连接到“应停止”活动(第 6 步),以创建一个循环并处理队列中的下一事务。
-
流程图应如以下屏幕截图所示:
- 若要运行该流程,请单击“设计”>“运行”。
- 执行结束后,您可以前往 https://cloud.uipath.com 并显示处理的事务及对应的处理详情:
-
成功的事务
-
失败的事务