由于在虚拟环境中很难实现自动化, OCR 和图像自动化通常是同时进行的。因此,我们创建了一个自动化程序,从扫描的发票中检索员工的电子邮件和发票号。然后,它将信息输入运行在虚拟机上的费用应用程序中,并比较发票的总价和应用上的总价。
创建一个新的序列
打开扫描的发票。为了保持兼容性,我们建议你使用 Adobe Acrobat Reader 来打开它。
正如 这里 所解释的,使用 OCR 技术抓取员工的电子邮件。
Attach PDF 是一个容器,它保存选择器并让所有其他活动知道在哪里执行操作。其中有一个 Find Image 活动,它选择锚点进行相对抓取,一个 Get OCR Text 活动用于检索员工的电子邮件地址,和两个 Set Clipping Region 活动:一个将第一个剪辑区域转换成第二个裁剪区域,另一个重新设置裁剪区域。在 Variables 面板,创建一个 GenericValue 的变量,将其命名为 email.
将 变量 email 输入到先前创建的 Get OCR Text 活动中 Text 属性
将上述序列命名为 Read Email
注意:
Uipath Studio 提供的 OCR 引擎有它们的优点和缺点,使用它们取决于环境,测试哪种引擎在每种情况下做得最好是决定使用哪种引擎的关键。更改 OCR 引擎可以使您的结果更好。
正如 这里 解释的那样,使用 OCR 技术抓取发票号。
记录器将生成一个容器,Attach PDF,它保存选择器,并让所有其他活动知道在哪里执行操作。在容器内,有一个 Find Image 活动,它选择锚进行相对抓取,一个 Get OCR Text 返回员工的发票号,以及两个 Set Clipping Region 活动,一个用于转换第一个裁剪区域到第二个,另一重置裁剪区域。在 Variables 面板中,创建一个 GenericValue,将其命名为invoiceNo
在前面创建的 Get OCR Text 活动中的 Text 属性中键入invoiceNo 变量。
-
将上述序列命名为 Read Invoice Number
正如 这里 解释的那样,使用 OCR 技术抓取员工的总开支。
记录器生成一个容器, Attach PDF,该容器保存选择器,并让所有其他活动知道在哪里执行操作。在其中,有一个 Find Image,它选择锚进行相对抓取,一个 Get OCR Text 检索员工的总支出,以及两个 Set Clipping Region 活动,一个用于转换第一个裁剪区域到第二个,另一重置裁剪区域。在 Variables面板中,创建一个 GenericValue,将其命名为 totalValue
在前面创建的 Get OCR Text 活动中的 Text 属性中键入 totalValue 变量。
将上述序列命名为 Read Total Expenses.
注意:在虚拟机环境中打开应用程序的最佳做法是 为将在机器桌面上打开的应用程序创建一个快捷方式,并为其分配一个热键。试图通过单击 OCR 文本单击应用程序的图标有时会由于背景颜色的变化或所选图标的变化而失败。
为虚拟机桌面上的 ExpenseIt 应用创建快捷方式。
右键单击快捷方式并从上下文菜单中选择 Properties。将显示 快捷属性 窗口。
在快捷键选项卡中的 Shoctcut Key 字段中通过按下想要设置的快捷键,应用到应用程序中。例如: Alt + Ctrl + T
通过打开 Citrix Recording Wizard 来开始一个录制会话。
录制时向虚拟机窗口发送上面分配给应用程序快捷方式的热键。
在 ExpenseIt 应用中基于标签的位置,使用 Relative Scraping 来点击 Email 字段
在 Expenseit 应用程序的 Email字段中,输入 email 变量。
在 ExpenseIt 应用中基于标签的位置,使用 Relative Scraping 来点击 Employee Number字段
在 Expenseit 应用程序的 Employee Number 字段中,输入 invoiceNo 变量。
在 Recording Wizard 中点击 Save & Exit 按钮。记录器生成一个Attach Window容器,该容器保存选择器,并让所有其他活动知道在哪里执行操作。它包含了一个 Send Hotkey活动,一个 Click Image活动用于点击 Email 文本右边的字段,一个 Type Into 活动键入 email 变量到字段中,一个 Click Image 活动用于点击 Employee Number 文字旁边的字段 和一个 Type Into 活动键入 invoiceNo 变量到字段中。
通过打开 Citrix Recording Wizard 来开始一个录制会话。
录制在 ExpenseIt 程序中点击 Create Expense Report 动作
使用 Relative Scraping 来抓取文本 Total Expenses ($) 对应的数值
在 Recording Wizard 中点击 Save & Exit 按钮。记录器生成一个 Attach Window 容器,该容器保存选择器,并让所有其他活动知道在哪里执行操作。它包含了一个 Click OCR Text 活动用于点击Create Expense Report 按钮;一个 Find Image 设置相对抓取的锚点;一个 Get OCR Text 返回总开支的数值,以及两个 Set Clipping Region 活动,一个用于转换第一个裁剪区域到第二个,另一重置裁剪区域。
在 Variables 面板中,创建一个 GenericValue,将其命名为 totalExpense
在前面创建的 Get OCR Text 活动中的 Text 属性中键入 totalExpense 变量。
拖放一个 IF 活动到最后录制的序列后面
将 IF 活动的条件属性设置为 totalExpense = totalValue。这意味着自动化检查发票的总价值是否等于费用应用程序中的值。
拖放一个 Message Box 活动到 IF 活动的 Then 部分
在 Message Box 的 Content 字段写一个消息来说明数值是否相等,告知发票是正确的。
拖放一个 Message Box 活动到 IF 活动的 Else 部分
在 Message Box 的 Content 字段写一个消息来说明数值是否相等,告知发票是错误的。
- 按 F5 运行自动化。注意,自动化将扫描的发票中的雇员数据输入到费用应用程序,将发票的总值与登记的总费用进行比较,并通知用户这些值是否相等。
由于这种自动化包括连接到虚拟机,上传原始项目是多余的,因为它不能在另一台机器上工作。我们鼓励您按照上述步骤构建自己的项目。示例中使用的扫描发票可以在 这里 下载。
返回目录
UiPath 常见问题及解决办法汇总
更多 UiPath 相关的资讯,请关注公众号:流程自动化机器人教程
由于简书禁止直接在文章中插入公众号二维码,请点击 这里 了解添加该公众号的细节。