UiPath 队列项目变量

We recommend that you read the About Queues and Transactions page, for an overview on queues and transactions, before further proceeding to the QueueItem variable.

在深入了解此主题的详细信息前,请确保您已清楚队列项目(存储在 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 或类似的名称。“变量”窗格中应该也会显示新创建的变量,如下方所示:**
  1. 接下来,向“设计器”**面板中添加“[遍历循环行**](For Each Row in Data Table)”活动,然后在空白字段中分别填入“行”和数据表变量的名称“DataTable1”。此活动将针对数据表中的每一行执行“正文”**部分中定义的操作。“执行”**部分目前应如以下屏幕截图所示:
  1. 在“对于每一个行”活动的“正文”部分中,添加一个“添加队列项目”活动。****这会针对电子表格中的每一行,添加一个项目到队列中(如下方步骤 8 和 12 中所定义)。
  2. 在“属性”**窗格的“队列名称”**字段中,键入要用于存储项目的队列的名称,假设为 ReportQueue
  3. 在“输入”部分中,单击与“项目信息”字段对应的按钮,以打开“项目信息”窗口。****创建 4 个参数,各自代表报告中的一个列。按照下方所示定义这些参数:
    • Name,“方向”和“类型”保留默认值,“值”则设为 row(0).ToString****这将从计数器为 0 的列中检索工作簿中每一行的值,本例中为客户的姓名。
    • CashIn,“方向”和“类型”保留默认值,“值”则设为 row(1).ToString****这将从计数器为 1 的列中检索工作簿中每一行的值,本例中为“兑现”值。
    • OnUsCheck,“方向”和“类型”保留默认值,“值”则设为 row(2).ToString****这将从计数器为 2 的列中检索工作簿中每一行的值,本例中为“银行内求偿支票”值。
    • NotOnUsCheck,“方向”和“类型”保留默认值,“值”则设为 row(3).ToString****这将从计数器为 3 的列中检索工作簿中每一行的值,本例中为“非银行内求偿支票”值。
  4. “项目信息”窗口应如以下屏幕截图所示:****
  1. 将 Studio 的机器人连接到 Orchestrator。如需关于具体方法的详细信息,请单击此处
  2. 导航到 https://platform.uipath.com,使用您的凭据登录,然后[创建队列](https://docs.uipath.com/orchestrator/lang-zh_CN/docs/managing-queues-in-orchestrator#section-creating-a-queue) ReportQueue 来存储项目。不论您在前面(第 8 步)使用了何种名称,请确保此处使用相同名称。
  3. 返回到 Studio。此刻,您的工作流应当毫无错误且正常运作,因此下一步是要将它提供给 Orchestrator。对此,请单击“设计”>“发布”。****
  4. 若要运行该流程,请单击“设计”>“运行”。****

📘

注意

请注意,队列项目在处理之后将变成事务,并且会据此进行进一步处理。

  1. 再次导航到 https://platform.uipath.com,并[显示相关的事务](https://docs.uipath.com/orchestrator/lang-zh_CN/docs/managing-queues-in-orchestrator#section-displaying-transactions)。

处理队列中的事务

为演示如何进一步处理队列中的事务,我们将创建第二个工作流,它会从相应队列中检索银行内求偿支票值小于 $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 是要对照其检查的条件。

上述表达式会将各个队列项目变量中的银行内求偿支票值转换为字符串变量,然后进一步转换为整数。因此,获取的值将被检查是否与条件相符。
向“设计器”**面板中添加一个“设置事务状态”**活动,并将其连接到之前创建的流程决策(第 13 步)的“False”****分支。

  1. 在“属性”**窗格中,确保“状态”**字段设为“失败”**,且“错误类型”**设为“业务”****。这样,当银行内求偿支票的值大于等于 5000 时,事务将被标记为失败且抛出业务异常。
  2. 在“事务项目”字段中,添加 TransItem 变量。****
  3. 在“原因”字段中,键入“银行内求偿支票金额大于 5000”或类似的内容,以用于显示失败事务的原因。****
  4. 将“设置事务状态”活动连接到“应停止”活动(第 6 步),以创建一个循环并处理队列中的下一事务。****
    向“设计器”面板中添加一个“序列”活动,并将其连接到之前创建的流程决策(第 13 步)的“True”分支。****在此序列中添加一个“Try Catch 异常处理****”活动并作出相应配置,以便将处理项目时可能出现的任何错误正确标记为应用程序错误。
  5. 打开 UIDemo 应用程序,并使用用户名 admin 和密码 password 登录。
  6. 针对 UIDemo 应用程序各个“兑现”、“银行内求偿支票”和“非银行内求偿支票”字段执行以下序列活动:****
  • 在之前的“Try Catch 异常处理”活动中,添加一个“键入”活动。****
  • 单击“在屏幕上指示”,再从 UIDemo 界面中选择与“兑现”对应的空字段。****
  • 在“属性”**窗格的“文本”**字段中,键入 transItem.SpecificContent('CashIn').ToString。表达式中的各个术语已在上文作出说明(第 15 步)。此表达式将各个队列项目变量的值转换为字符串变量。
  • 确保选中了“模拟键入”选项。****
  1. 在“设计”选项卡的“向导”部分中,单击“屏幕抓取”,再指向 UIDemo 应用程序中的事务编号。****
  1. 从“屏幕抓取器向导”中,选择抓取方法并单击“完成”。****这会在您的工作流中插入一个“屏幕抓取”活动。**确保将它放置在之前的“键入信息”活动后面,然后将“文本”字段设为新的变量,例如 TransactionValue**这会检索符合初始条件的各个队列项目的事务编号。
  2. 在“屏幕抓取”活动后面添加“设置事务状态”活动。****
  3. 在“属性”窗格中,确保“状态”字段设为“成功”,且“错误类型”设为“应用程序”。****这样,当值的集合成功引入到应用程序中时,事务的状态将设为“成功”,否则标记为应用程序异常。****
  4. 在“输出”****窗口中定义一个新参数,并将之前创建的变量 TransactionValue(第 25 步)添加为值。
  5. 在“事务项目”字段中,添加 TransItem 变量。****
  6. 在“序列”活动中添加一个“单击”活动,放在“键入信息”活动的后面。****
  7. 单击“在屏幕上指示”,再从 UIDemo 界面中选择“接受”按钮。****确保选中了“模拟键入”选项。****
  8. “Try Catch 异常处理”活动应如以下屏幕截图所示:****
  1. 返回到流程图,再将之前的“序列”**活动(第 21 步)连接到“应停止”**活动(第 6 步),以创建一个循环并处理队列中的下一事务。
  2. 流程图应如以下屏幕截图所示:
  1. 若要运行该流程,请单击“设计”>“运行”。****
  2. 执行结束后,您可以前往 https://platform.uipath.com 并显示处理的事务及对应的处理详情:
  • 成功的事务
  • 失败的事务
(0)

相关推荐

  • UNIX环境高级编程.pdf

    文档介绍:第1章U N I X基础知识1.1 引言所有操作系统都向它们运行的程序提供服务.典型的服务有执行新程序.打开文件.读文件.分配存储区.获得当前时间等等,本书集中阐述了U N I X操作系统各 ...

  • UiPath常见的变量转换及相关函数整理

    CompareTo:字母顺序逐个比较字符大小.如果前者大于后者则返回1,反之返回-1,如果相同返回0如:int i=字符串变量. CompareTo(将要比较的字符串的变量): Contains:判断 ...

  • 项目经理最核心的能力是什么?

    我做了15年项目经理. 作为项目经理,首先我们需要了解项目经理的职责是什么? 是根据项目的目标,完成并交付成果或服务. 项目经理需要做的工作包括: 1.组织(搭建团队,设置组织机构等) 2.计划(制定 ...

  • 新兴项目鲜花自动售卖机,做好1天躺赚200-300!

    年以来,有3个词频繁在各种科技媒体上出现:自动.无人.AI(人工智能).各个行业的大咖.自媒体更是想象力爆发,把这些科技新概念描述得来势汹汹,大有全民工作被机器人替代.全员失业之势. 其实,一切都并不 ...

  • 临床项目招募ALK 阳性非小细胞肺癌患者

    [招募对象]ALK 阳性非小细胞肺癌二线 [试验药物介绍]TQ-B3139 胶囊 [入组中心]就近三甲医院 [报名方式]爱递肿瘤通官网报名 [主要入选标准] 1.签署知情同意书时,年龄[18,75]岁 ...

  • 国家基本公共卫生服务项目实施12年的看法与思考

    2009年7月10日,国务院及国家医改办在北京召开了国家基本公共卫生服务项目启动暨部署电视电话会议,会上启动并部署了9项国家基本公共卫生服务,根据医改实施方案,这些项目将免费为城乡居民提供.启动的9项 ...

  • 配置CLion管理Qt项目国际化支持

    随着Qt 6的发布,cmake也正式宣告接管qmake的工作了. 在之前的一篇博客里我介绍了如何使用cmake管理你的qt项目,不过有一点我没有讲,那就是对国际化(i18n)的处理. 今天我们就来介绍 ...

  • 【集采招标】中国移动启动450万芯公里蝶形光缆集采项目

    5月7日,中国移动发布2021年至2022年蝶形光缆产品集中采购招标公告:本项目为集中招标项目.本期集中采购产品为蝶形光缆产品,预估采购规模约共计约450万芯公里,折合426万皮长公里.采用公开招标方 ...

  • 检验项目 | 血清铁蛋白(SF)升高原因分析

    血清铁蛋白(SF)在铁的代谢方面起着重要的作用,是判断体内铁缺乏及铁过载的有效指标.SF水平是初级和二级医疗机构中最常见的检查,SF水平升高可由多种原因导致,例如,铁过载.炎性反应.肝脏和肾脏疾病.恶 ...

  • 物业项目经理日常工作重点

    一.项目经理日常工作的六大重点 1.重点区域--容易出现状况的区域 2.重点岗位--领导.客户关注的位置 3.重点设备--老化.新置.运行中的设备状况 4.重点时间--上午和下午黄金两小时 5.重点客 ...