🐋作者简介:博主是一位.Net开发者,同时也是RPA和低代码平台的践行者。
🦀专栏简介: UiPath在传统的RPA(Robotic process automation)的基础上,增加了See(AI通过计算机视觉阅读用户的计算机屏幕)和Think(通过机器学习来发现平台能够为用户构建什么自动化流程)从而不断帮助用户自动化构建流程,而不仅仅是用户自主发现,自主构建。并且在构建的过程当中,做到了Low-code甚至是No-code的程度,让每一位员工都可以自主使用。
🐶座右铭:总有一天你所坚持的会反过来拥抱你。
🌈写在前面:电子邮件是最早的一种数字通信方式,时至今日,许多业务流程仍由简单的电子邮件触发,我们总是习惯性地查看收件箱。如果我们可以把很多任务可以实现自动化,那么可以节省我们宝贵的时间。在本博文中,我们将探讨如何通过使用UiPath Studio和电子邮件相关活动来快速可靠地处理电子邮件。你在读一大堆邮件的时候,是不是想过“一定有更有效的方法来做这件事”?使用UiPath,您现在可以轻松检索需要立即关注的电子邮件,处理或转发给适当的人。
👉本文关键字:RPA、UiPath、Low-code、No-code、Email Automation、电子邮件自动化、OutLook、.Net
1️⃣ 背景
♈ 什么是RPA
RPA(Robotic process automation) 代表机器人过程自动化。
它是一种软件程序,可在与计算机应用程序交互时模仿人类行为并实现重复的、基于规则的流程的自动化。
♉ 什么是UiPath
UiPath 是一种机器人流程自动化工具,用于自动化枯燥和重复的任务。它由罗马尼亚企业家 Daniel Dines 和 Marius Trica 于 2005 年创立。它还消除了自动化无聊任务的人工干预,并为所有活动提供了拖放功能,它是最简单的 RPA 工具。
♊ 为什么使用UiPath
UiPath在传统的RPA的基础上,增加了See(AI通过计算机视觉阅读用户的计算机屏幕)和Think(通过机器学习来发现平台能够为用户构建什么自动化流程)从而不断帮助用户自动化构建流程,而不仅仅是用户自主发现,自主构建。并且在构建的过程当中,做到了Low-code甚至是No-code的程度,让每一位员工都可以自主使用。
♋ 为什么要用电子邮件自动化
电子邮件是最早的一种数字通信方式,时至今日,许多业务流程仍由简单的电子邮件触发,我们总是习惯性地查看收件箱。在关键流程方面,电子邮件仍然是大多数公司的首选。
我们以一些服务器为例,它们在一天中生成不同的警报消息。为了加快速度,我们可能希望自动地去分发警报的过程,以便正确的人及时获得正确的警报消息。一种方法是根据主题、日期、正文内容或发件人等不同标准过滤电子邮件,然后将它们分别发给对应的人。UiPath就帮我们实现了这些功能,并涵盖了各种协议,如IMAP、POP3或SMTP。UiPath还提供活动专门用于Outlook和Exchange的。
♌ 案例
为了更好地理解软件包中邮件活动的可用性,让我们从更高的层次来看如何自动分发由多个服务器生成的电子邮件警报。
考虑有三台服务器生成不同类型的警报,这些警报将发送到单个邮箱帐户。此时,1级技术人员必须确认并过滤电子邮件。之后,他们会按照特定程序升级或自行处理警报,该过程的主要步骤如下图所示。
可以看出,这是一项重复性的任务,具有稳定的流程和明确的指导方针。因此它非常适合被自动化取代。我们接下来将探讨如何通过使用UiPath Studio和电子邮件相关activity来快速可靠地处理电子邮件,以节约我们的宝贵的时间。
2️⃣ 概述
♈ 环境
- UiPath Studio Community 2022.4.3
- Windows 10
- .Net
♉ 摘要
电子邮件是最早的一种数字通信方式,时至今日,许多业务流程仍由简单的电子邮件触发,我们总是习惯性地查看收件箱。如果我们可以把很多任务可以实现自动化,那么可以节省我们宝贵的时间。在本博文中,我们将探讨如何通过使用UiPath Studio和电子邮件相关活动来快速可靠地处理电子邮件。你在读一大堆邮件的时候,是不是想过“一定有更有效的方法来做这件事”?使用UiPath,您现在可以轻松检索需要立即关注的电子邮件,处理或转发给适当的人。
♊ 您将学到的内容
- 使用专门的email activities;
- 字符接收消息电子邮件并;
- 自动筛选并下载电子邮件的附件;
- 自动发送电子邮件消息;
- 自动使用消息模板。
3️⃣ 电子邮件自动化(Email Automation)
♈ 五组电子邮件活动
UiPath Studio 中提供的电子邮件交互选项。在搜索框中键入mail将检索 UiPath.Mail.Activities 包附带的所有活动,即五组电子邮件活动。我们来逐一介绍:SMTP 是简单邮件传输协议 (Simple Mail Transfer Protocol) 的缩写,它是一种仅用于发送邮件的基本协议。POP3 代表邮局协议,它是一种用于读取邮件的旧协议,几乎已经过时,但大多数电子邮件服务器仍然支持它。IMAP 或互联网邮件访问协议仅用于接收邮件,但提供了一些有用的功能,您可以将邮件标记为已读或在文件夹之间移动邮件。Exchange 是 Microsoft 的企业电子邮件解决方案,它与 UiPath 完美集成,可以提供发送和接收邮件,在文件夹之间移动电子邮件,以及删除邮件等活动。Outlook 活动略有不同。它们与桌面应用程序的 API 搭配使用,无需设置服务器、用户和其他技术细节 - 这些活动设计成使用现有的 Outlook 帐户。最后,还有两种通用的电子邮件活动,可用于在本地驱动器上保存电子邮件和电子邮件附件。
♉ 检索邮件
⭐ 背景
与电子邮件交互有两种情况:电子邮件作为输入,电子邮件作为流程的输出。
对于输入电子邮件,我们可以接收文本形式的数据,作为电子邮件主题或正文的一部分,或作为附件。例如Excel文件、pdf或其他文件类型。至于作为输出的电子邮件,它通常用于向主管发送关于不同自动化项目的状态更新,或者在发生业务或应用程序异常时发送状态更新。
⭐使用IMAP和Gmail检索电子邮件
在本例中,我们将构建一个简单的流程,从Gmail中获取未读邮件,过滤邮件,并在邮件主题行中包含“发票”一词时存储邮件及其附件。
当我们查看 读取 PDF 文本操作的结果时,我们发现 只有文档的文本部分被转换。文本的前两列存在,但 下半部分是一个图像,系统已将其完全忽略。
⭐使用IMAP和Gmail检索电子邮件
因此我们需要一个活动读取 PDF 中的图像,该操作名为使用 OCR 读取 PDF。顾名思义,它会使用光学字符识别来扫描PDF 文档中的图像,并将所有文本作为变量输出。它与非 OCR 同级操作略有不同,因为它需要 OCR 引擎。
接下来,配置OCR引擎,
一般来说,对于 OCR 技术,值得注意的一点是,它的质量会随着源图像的质量降低而迅速下降。正如您在本例中看到的,最终结果在很大程度上取决于字体大小、字体风格和图像分辨率,这些因素不一定始终在您的控制范围内。因此,只要有可能,就不要使用 OCR 读取 PDF操作。需要注意的是,这两种读取 PDF 的操作是独立的:它们不需要打开其他应用程序,因此可以在后台运行。今天您将看到的大多数其他 PDF 方法都不具备这种特性,因此,如果后台操作对您很重要。
⭐使用Gmail和Outlook集成检索电子邮件
只需指定需要抓取的文本元素,UiPath 就会显示这个预览窗口,并提供一些选项。如果这是您第一次遇到,下面会说明它的工作原理:这是一个预览区域,显示在您刚才的选择中识别的文本元素。这是当前使用的抓取方法,如果单击此处的下拉列表,可以看到其他可用方法。而这个按钮用于在屏幕上指定另一个要抓取的元素。通常 UiPath 会检测出适合您的情况的最佳方法。
当我们通过在右侧的下拉菜单中选择抓取方法名称,并单击刷新来更改它时,预览会相应地更新。我们将使用默认的全文方法,并单击完成。在 UiPath 中,将新创建的序列连接到起始节点,并查看其内部。
如果在上一步中,我们选择了一种不同的抓取方法,比如 OCR,我们就会得到这些操作。
在本例中,这三种方法都有很好的效果,就像我们之前看到的: 只有 OCR 方法可以读取图像和文本。
因此,这 3 种技术可以用来提取更大的文本段。现在,我们回顾一下!我们分析了从 PDF 文件中提取文本的方法,并使用了三种不同的方法进行该操作。
♋ 过滤邮件
⭐ 背景
以一家中型公司为例,它面临着从一个月内生成的所有发票中提取特定数据的艰巨任务。PDF文件中所需的数据是信用额、到期余额和发票号。要手动提取此数据,将需要大量工时,但我们可以自动化此过程。让我们看看PDF自动化后,从PDF文件中提取特定数据是多么容易。
⭐ 使用Outlook过滤邮件
对于普通 PDF 来说,有几个获取数据的选项,第一个是众所周知的获取文本操作。现在,此操作将只从这一特定文件中获取该特定文本元素的值。
⭐ 使用IMAP过滤邮件
获取文本也可以在录制器中访问,就在这里。只需指向您感兴趣的元素,UiPath 就会为您生成获取文本操作及其输出变量,无需其他操作,我们将在消息框中显示它。
录制器获得的结果与Get Text 活动一致,再此不过多赘述。
⭐ 从多个文件中获取
但是,假设您实际上想要从一系列类似的 PDF 发票中提取总值,而不是仅仅从一个文件中提取,应该怎么办?像大多数用户界面交互一样,获取文本操作使用选取器来识别正确的元素并获取其值。因此,正如您可能已经猜到的,我们需要对其进行一些调整,以扩展其作用域。
自动执行此操作的方法是使用修复功能。因为我们关闭了第一个 PDF 文件,所以选取器编辑器以红色显示验证,这意味着选取器无效,但是,我们可以直接单击修复并指向另一个类似的元素,该元素也应该与当前选取器匹配,并且 UiPath 将尝试为您修复选取器,在本例中,它是有效的,但由于情况并非总是如此,我们还可以手动修改它,看看具体结果如何。但是,这里要提醒一下:我们将不会讨论选取器的一般方面,而只是解释这个具体的示例。但我强烈建议您观看“选取器”视频,里面详细介绍了它们如何工作,如何编辑和调试它们。它们是用户界面自动化的核心部分,因而更好地理解它们会在其他情况下也有用。
因此,我们将取消这个操作,不保存更改,然后再次打开选取器。这一次两个 PDF 文件都打开了,并且初始的选取器是有效的。我们将选择在用户界面探测器中打开它,以便获得更好的视图,选中的容器是实际组成选取器的容器,因此,我们将重点讨论这些容器。
最后一个元素存在实际值,所以我们需要删除它,使它也适用于其他值
通过反复试验,我们发现最好对此项使用更独特的行名称属性。然后,我们只需单击保存,通过单击验证来验证选择器,然后单击确定。现在,它对这两个文件都有效。它从这张发票和另一张发票中都提取到了正确的值。
♌ 发送邮件
⭐ 背景
我们可能希望从PDF发票中获取值。但是这个值UI元素具有不稳定的选择器,而标签元素是稳定的。也就是说,我们要获取的文本的位置是不固定的,我们需要找一处固定的元素(锚点),以此来获得我们需要的文本内容。
⭐ 使用SMTP发送邮件
锚点基准活动由两个操作组成,因为它执行的操作与另一个固定元素或锚点有关
典型的锚点是查找元素操作。我们将使用它来精确定位一个固定元素,接近我们的目标元素;通常是它的名称,这里的 Credit。
接下来,我们要执行的操作是获取文本。
虽然这两个操作都有关联的选取器,但您会注意到它们更简单一些。
接下来对于锚点元素,用*
替换文件名部分
锚点基准还有一个可选参数,锚点位置。它用于更清楚地定义在何处查找数据。我们可以让它保持原样,或者把它改成左侧,因为这就是我们的锚点与文本关联的位置。
我们放上MessageBox活动之后运行,可以看到准备获取到了我们需要的值,并且两个文档都有效。
锚点基准活动非常灵活,这意味着您可以在其中使用各种操作。例如,可以将查找元素操作替换为查找图像,如下图。
优点是现在 PDF 文档的结构不再那么重要,重要的是它在可见文档的任何地方都包含特定指定图像。此外,您不必再处理这么多的选择器;而且由于 PDF 文件在所有系统上看起来都一样,因此可以使用查找图像而不存在其常见的缺点。
注意在指定要查找的图像之前,最好将文档的缩放比例设置为实际大小,以确保图像完整并且准确。只需进入“视图”、“缩放”和“实际大小”。
然后回到 UiPath,单击以指定一个图像,在本例中是 Credit,并在其周围选择锚点。这样就行了,如下图。
这个方法有时比其他方法更可靠,因为只要图像和数据存在并且彼此之间的关系相同,它甚至可以处理文档中的重大结构更改。特别是因为“查找图像”操作可以处理合理的比例变化量,还有其他一些原因,PDF 文档非常稳定。
注意另外需要注意的重要一点是,介绍的最后这两种方法要求打开 PDF 文档,并且您尝试与之交互的数据必须可见,否则将失败。所以在构建最终的自动化系统时一定要考虑到这点,如下图。
⭐ 使用OutLook发送邮件
打开Modern Design Experience activity,如下图,
拖拽Use Application活动并点击
此时在要获取文本的PDF上点击,获取如下结果,
我们点击选择器,修改文件名为"*",如下图,
拖拽Get Text,
设置要获取的文本和锚点,
最后序列的效果,
最后,我们运行序列,得到的结果与之前的一致。
4️⃣ 总结
关键点:
- 从PDF文件中的元素提取文本,我们可以使用Anchor Base activity或Get Text Activity。
- Anchor Base activity只支持在锚块中查找元素和查找图像。
- 图像自动化不处理选择器,但其可靠性也要低得多。
- Modern activities 在其目标定位方法中集成了锚。
5️⃣ 参考资料
PDF Activities Pack
Read PDF Text
Read PDF with OCR
Anchor Base
⭐写在结尾:文章中出现的任何错误请大家批评指出,一定及时修改。
希望写在这里的小伙伴能给个三连支持!