购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.1 大额交易客户筛选机器人

RPA在行业领域应用中,金融行业占比最大,主要是因为金融行业对数据的及时性、精准性要求非常高。RPA技术在近几年疫情的背景下受到特别重视,尤其是其稳定、易于使用的优点引起了金融业的关注。由于金融业有大量的重复数据处理业务,复杂的中后期流程和难以互操作的系统导致大量系统与系统、数据与数据不得不手动调整,而高流量、高重复性是RPA应用程序的首选。

RPA的价值在未来几年还将更加显现,金融机构投入力度也将逐年增加。金融行业整体信息化水平高,业务流程化中重复操作多,人力成本消耗大,RPA技术的应用可以降低业务执行过程中的重复操作,减少手工错误率及非法操作,有助于业务流程自动化水平和效率的提升。RPA的价值表现在解放人力、获取实时数据、提升员工工作体验、运营灵活性、降低风险与成本和实现业务连续性的要求等。

RPA还可以简化流程,降低风险。人为操作业务流程时会存在大量风险,如盗取数据、篡改数据、输入错误数据等,但是RPA作为数字员工可以基于一定规则自动执行大量重复、枯燥的业务,可以保证处理的准确度。得益于人工智能的快速发展,RPA+AI技术可以应对那些烦琐、复杂的非结构化数据,来完成复杂应用场景的流程替代。

通过本章案例,您将学到:

● 浏览器组件的使用。

● 下载文件。

● 筛选数据表的使用。

● 对于数据中的每一行的使用。

● Excel组件的使用。

● 构建数据表的使用。

● 遍历循环的使用。

● 日志消息。

1.1.1 需求分析

A金融机构下若干分支机构每日会发生多笔多渠道、多途径的买卖交易,需要识别出其中的大额交易,对其实施额外的风险管理制度。该业务当前是通过人工的方式将各分支机构的交易数据下载下来,提交总部汇总,再通过人为筛选的方式将大额数据提取出来发送给客户经理,提醒其对这些客户进行追踪分析。整个流程的处理过程由于涉及的分支机构多,汇总难度大,且难保证时效性。现引入RPA技术,通过实施大额交易客户筛选机器人来自动实现以上场景,将人员从低价值活动中解放出来,提高流程效率及效果。具体业务流程需求分析如下。

1.数据存储位置分析

该金融机构各分支机构的数据表由各分支机构在规定时间内上传至指定网站,机器人通过打开浏览器输入指定网址后,依次下载这些数据表至本地。该过程可以通过RPA中的Web自动化、等待下载活动等组件来实现。

2.数据样式分析

交易数据表是Excel格式,有交易机构号、机构名称、客户名称、交易日期、买入金额、卖出金额等字段,需要先汇总所有交易表的数据,再提取客户名称、买入金额和卖出金额这三个字段。该过程可以采用RPA中的Excel自动化来处理表格的打开、读取、筛选及输入。

3.数据筛选规则分析

数据的筛选规则是筛选出“买入金额>=1000万元”或“卖出金额>=1000万元”的交易,将这些交易客户判定为大额交易客户。

1.1.2 流程详细设计

根据需求分析,大额交易客户筛选机器人的功能可设计为4个模块,分别为数据准备、数据汇总与清洗、数据筛选和结果数据显示。详细的功能结构如表1-1所示。

表1-1 大额交易客户筛选机器人的功能模块设计

根据本项目的需求分析以及功能模块设计,该自动化业务的流程设计图如图1-1所示。

各功能模块的详细设计如下。

1.数据准备

本模块的主要功能是将各分支机构的数据下载至本地,在此我们借用RPA之家的云实验室资源来进行交易数据表的下载,网址是https://cloudlab.rpazj.com/#/parent/bankreport。在下载交易数据表之前,我们可先创建一个变量str_Folder来存储交易数据表的下载路径,每次业务流程运行前先将该目录下的数据都清空,以保证环境的干净。

2.数据汇总与清洗

本模块的主要功能是遍历下载目录下的所有交易数据表文件,将交易数据进行汇总后输出到result.xlsx的Sheet1工作表中。在遍历过程中读取每个Excel文件的数据,赋值给变量Dt_values,并对数据表变量Dt_values进行循环,读取表格中的客户名称、买入金额、卖出金额三个字段的内容,构建一条行记录后将其添加到数据表变量Dt_results中,从而实现交易数据的汇总。

3.数据筛选

本模块的主要功能是对汇总后的数据表按“买入金额”或“卖出金额”大于或等于1000万元的规则进行筛选,将满足条件的记录筛选出来后保存在变量dt_FilterResults中,并将结果输出到result.xlsx的Sheet2工作表中。

4.结果数据显示

本模块的主要功能是将大额客户的名称通过日志消息的形式打印出来。

图1-1 流程设计图

1.1.3 系统开发必备

1.开发环境及工具

本项目的开发及运行环境如下。

● 操作系统:Windows 7、Windows 10。

● 开发工具:UiPath 2022.4.1。

● Office版本:Microsoft Office Professional Plus 2019。

● 浏览器:Chrome浏览器。

2.项目文件结构

大额交易客户筛选机器人的项目文件结构如图1-2所示。

(1)Main.xaml:主流程文件,项目创建时自动创建的文件,本案例中暂未使用。

(2)序列.xaml:流程设计文件,本案例的流程开发主要在该文件中进行。

(3)results.xlsx:流程运行完成后输出的结果文件。

该流程的整体设计如图1-3所示,变量面板如图1-4所示。

图1-2 项目文件结构

图1-3 流程整体设计

图1-4 变量面板

3.开发前准备

1)创建下载“交易数据表”的存储文件夹

本案例的“交易数据表”计划存储在“D:\UiPath入门与实战\01.下载文件”目录下,因此需提前创建好该文件夹目录,如图1-5所示。

图1-5 提前创建“交易数据表”的存储文件夹

2)修改浏览器默认下载地址为下载“交易数据表”的存储文件夹

本案例使用谷歌浏览器进行“交易数据表”的下载,故按如下方式提前修改谷歌浏览器的默认下载地址。

打开谷歌浏览器,单击其右上角图标 ,在下拉菜单中单击“设置”选项,如图1-6所示。选择“下载内容”选项,如图1-7所示。

图1-6 选择“设置”选项

图1-7 选择“下载内容”选项

在位置处单击“更改”,修改地址为“D:\UiPath入门与实战\01.下载文件”,如图1-8所示。

图1-8 更改“下载内容”的位置

1.1.4 流程实现

1.创建项目

打开UiPath Studio,单击“新建项目”,选择“流程”模块,弹出“新建空白流程”对话框中,在“名称”输入框中输入“金融行业机器人案例”,在“位置”输入框中输入“D:UiPath入门与实战”,单击“创建”按钮,如图1-9所示。

在“设计”工具栏中单击“新建”,选择“序列”选项,如图1-10所示。在弹出的“新建序列”对话框的“名称”输入框中输入“序列”,“位置”输入框中输入“D:\UiPath入门与实战\金融业机器人”,单击“创建”按钮,如图1-11所示。

图1-9 “新建空白流程”对话框

图1-10 选择“序列”选项

图1-11 “新建序列”对话框

下面在“序列.xaml”中进行流程的实现。

2.“数据准备”模块的实现

“数据准备”模块的功能是在流程运行前对环境和变量进行初始化,并打开浏览器将“交易数据表”下载到本地,完成汇总前的数据准备工作,其流程设计如图1-12所示。

添加一个“分配【Assign】”活动,在其左侧输入框中创建一个string类型的变量“str_Folder”,用于存储“交易数据表”的下载路径,在右侧输入框中输入文件夹地址“"D:\UiPath入门与实战\01.下载文件"”,该“分配”活动的设计及属性面板如图1-13所示。

在“活动”面板中搜索“调用代码”,如图1-14所示,将其添加到“分配”活动下方。

单击“编辑代码”,在“代码编辑器”中输入“Array.ForEach(Directory.GetFiles(str_Folder),Sub(x)File.Delete(x))”,该表达式的作用是清空参数str_Folder所指代的文件夹下的所有文件,如图1-15所示。

图1-12 “数据准备”模块的流程设计

图1-13 “分配”活动的设计及属性面板

图1-14 添加“调用代码”活动

图1-15 “调用代码”活动的代码编辑器

单击“编辑参数”,在“调用的代码参数”对话框的“名称”列输入“str_Folder”,“方向”为“输入”,“类型”为“String”,“值”为变量“str_Folder”,表示将变量str_Folder的值赋值给参数str_Folder,如图1-16所示。

接着,添加一个“打开浏览器【Open browser】”活动,在URL输入框中输入交易数据表的下载网址https://cloudlab.rpazj.com/#/parent/bankreport,如图1-17所示。

图1-16 “调用的代码参数”对话框

图1-17 “打开浏览器”活动

在属性面板中,设置“浏览器类型”为“BrowserType.Chrome”,如图1-18所示。

在“打开浏览器”活动下方添加一个“等待下载【GetLastDownloadedFile】”活动,在“监控的文件夹”中输入变量“str_Folder”。提前使用谷歌浏览器打开下载页面,然后在“等待下载”活动的执行中添加2个“单击【Click】”活动,依次单击“指明在屏幕上”后,选择页面上需下载的数据表,如图1-19和图1-20所示。

图1-18 “打开浏览器”活动的属性面板

图1-19 单击“指明在屏幕上”

完成后的“等待下载”活动如图1-21所示。

图1-20 在页面上单击下载“数据表”

图1-21 “等待下载”活动完成示意图

在“等待下载”活动下方添加一个“分配【Assign】”活动,在左侧“变量”输入框中创建一个类型为String[]的变量Arr_Files,在右侧“设置值”输入框中输入表达式“Directory.GetFiles(str_Folder,"*xls*")”,表示获取变量str_Folder指代的目录下的所有Excel文件,将其赋值给字符串数组变量Arr_Files,如图1-22所示。

图1-22 分配文件夹下文件名示意图

在“活动”面板中搜索“构建数据表”,如图1-23所示,将其添加到“分配”活动的下方。

接着单击“数据表”按钮,如图1-24所示。在“构建数据表”对话框中依次设置列名称“客户名称”“买入金额(万元)”“卖出金额(万元)”,数据类型均为String类型,如图1-25所示,单击“确定”按钮。

图1-23 添加“构建数据表”活动

图1-24 单击“数据表”按钮

在“构建数据表”活动的属性面板的“输出→数据表”输入框中创建变量“Dt_results”,用于存储构建的这张空表,其属性面板如图1-26所示。

图1-25 “构建数据表”对话框

图1-26 “构建数据表”活动的属性面板

至此,我们便完成了第一个模块“数据准备”的开发。单击“设计”工具栏中的“调试文件”运行流程,查看流程的允许情况。该模块自动打开浏览器,输入网站后单击目标文件进行下载,待文件都下载完成后流程结束。

打开下载文件的目录,查看“交易数据表”均成功下载在指定目录下,如图1-27所示。此外,我们在该模块中还初始化了Arr_Files和Dt_results,为后面模块的调用做了准备。

图1-27 下载得到的“交易数据表”

3.“数据汇总与清洗”模块的实现

“数据汇总与清洗”模块的功能是将下载得到的所有文件的数据进行合并,查找有用的字段,并将最后结果保存到result.xlsx的Sheet1工作表中,流程设计如图1-28所示。

添加“遍历循环【For Each】”活动,在“输入”输入框中输入变量“Arr_Files”,表示遍历变量Arr_Files中的所有文件,变量item为表示遍历过程中的单个遍历对象,其属性面板如图1-29所示。

图1-28 “数据汇总与清洗”模块的流程设计

图1-29 “遍历循环”的属性面板

在“遍历循环”活动的“正文”中添加“Excel应用程序范围”活动,“工作簿路径”输入变量“item”,其属性面板如图1-30所示。

在“Excel应用程序范围”活动的“执行”序列内添加“读取范围【Read Range】”活动,在“工作表名称”输入框中输入“Sheet1”,在其属性面板的“输出→数据表”输入框中创建DataTable类型的变量“Dt_values”,勾选“选项→添加标头”复选框,表示读取变量item指代的Excel文件的Sheet1工作表的数据,将其保存在变量Dt_values中。“读取范围”活动的属性面板如图1-31所示。

图1-30 “Excel应用程序范围”活动的属性面板

图1-31 “读取范围”活动的属性面板

“遍历循环”活动中的“Excel应用程序范围”的完整设计如图1-32所示。

接下来,清洗出交易数据表中的客户名称、买入金额和卖出金额。

(1)在“Excel应用程序范围”下方添加一个“对于数据表中的每一行”活动,在其“输入”输入框中输入变量“Dt_values”,变量“CurrentRow”为循环体的行变量。“对于数据表中的每一行”活动的属性面板如图1-33所示。

图1-32 “遍历循环”活动中的“Excel应用程序范围”的完整设计

图1-33 “对于数据表中的每一行”活动的属性面板

(2)在“对于数据表中的每一行”活动的“正文”序列内添加“多重分配【Multiple Assign】”活动。交易数据表中的“客户名称、买入金额(万)、卖出金额(万)”对应的是Excel数据表中的第5列、第13列和第15列数据,如图1-34所示。因此,在左侧“目标”输入框中依次创建3个String类型的变量“客户名称”“买入金额”“卖出金额”,在右侧“值”输入框中输入对应字段的值,如图1-35所示。例如,表达式CurrentRow(12).ToString表示获取当前行变量CurrentRow的第13列数据的值。

图1-34 交易数据表中的字段

(3)获取到该行所需的数据后,在下方添加一个“添加数据行【Add Datarow】”活动,在“数组行”中输入“{客户名称,买入金额,卖出金额}”以构建一个数据集合,在“数据表”中输入变量“Dt_results”,表示将这行记录添加到数据表Dt_results中。“添加数据行”活动的设计如图1-36所示。

图1-35 “多重分配”活动

图1-36 “添加数据行”活动

最终的“对于数据表中的每一行”的完整实现如图1-37所示。

在“遍历循环”的下方添加一个“Excel应用程序范围”活动,在“工作簿路径”输入框中输入“"results.xlsx"”,其属性面板如图1-38所示。

在“执行”序列中添加“写入范围”活动,在“工作表名称”输入框中输入“"Sheet1"”,“起始单元格”输入“"A1"”,在“输入→数据表”输入框中输入“Dt_results”,表示将变量Dt_results的数据写入Sheet1工作表中,如图1-39所示。

至此,该模块开发完成,运行流程后,在“项目”面板单击“刷新”图标,查看results.xlsx是否正确生成,如图1-40所示。

图1-37 “对于数据表中的每一行”活动的完整实现

图1-38 “Excel应用程序范围”活动的属性面板

图1-39 “写入范围”活动

打开results.xlsx,查看Sheet1下的数据是否正确,如图1-41所示。

图1-40 项目面板-查看results.xlsx

图1-41 result.xlsx的Sheet1工作表

4.“数据筛选”模块的实现

本模块的功能是将数据按照一定的规则筛选出大额客户,完整的流程设计如图1-42所示。

添加“Excel应用程序范围”活动,在“工作簿路径”的输入框中输入需要操作的Excel文件“"results.xlsx"”,如图1-43所示。

在“执行”序列中添加“读取范围【Read Range】”活动。接着,在“工作表名称”中输入将读取的工作表“"Sheet1"”,在第二个输入框中输入读取范围“A1”,表示从A1单元格开始读取该工作表的所有数据,如图1-44所示。

图1-42 “数据筛选”模块的流程设计

图1-43 “Excel应用程序范围”活动

然后,在其属性面板的“输出→数据表”中创建一个DataTable类型的变量“Output_results”,用于存储读取到的数据,并勾选“添加标头”复选框,如图1-45所示。

图1-44 “读取范围”活动

图1-45 “读取范围”活动属性面板

在“读取范围”活动的下方,添加“筛选数据【FilterDataTable】”活动。在“数据表”输入框中输入变量“Output_Results”,作为被筛选的对象,在“筛选过的数据表”输入框中创建一个DataTable变量“Filter_results”,用于存储筛选后的数据,如图1-46所示。

单击“配置筛选器”按钮,在“筛选器向导”对话框中,可先确认“输入数据表”和“筛选过的数据表”是否正确。然后,在“筛选行”选项卡下设置数据行的筛选条件,即“"买入金额(万元)">=1000 Or"卖出金额(万元)">=1000”,如图1-47所示。

图1-46 “筛选数据表”活动

图1-47 “筛选行”设置

单击“输出列”切换至“输出列”选项卡,在“列”下依次添加“"客户名称"、"买入金额(万元)"、"卖出金额(万元)"”,表示输出的数据表Filter_results的列项为这三列,如图1-48所示。

“筛选数据表”活动的属性面板如图1-49所示。

在“筛选数据表”活动下方添加“写入范围”活动,在“目标→工作表名称”输入框中输入“"Sheet2"”,在“起始单元格”输入框中输入“"A1"”,在下方的“输入→数据表”输入框中输入变量“Filter_results”,表示将筛选后的数据Filter_results写入Sheet2工作表内,从A1单元格开始写入,该活动如图1-50所示,其属性面板如图1-51所示。

图1-48 “输出列”设置

图1-49 “筛选数据表”活动的属性面板

图1-50 “写入范围”活动

图1-51 “写入范围”活动的属性面板

图1-52 大额交易客户筛选结果示意图

至此,该模块开发完成,运行流程查看流程运行有无异常。流程执行完毕后,打开results.xlsx查看Sheet2中的数据是否都正确,“买入金额(万元)”或“卖出金额(万元)”的客户名称及交易是否都被正确筛选出,如图1-52所示。

5.“结果数据显示”模块的实现

本模块的功能是通过日志消息将大额交易的“客户名称”输出在日志中,该模块的流程设计如图1-53所示。

添加“Excel应用程序范围”活动,在“工作簿路径”输入框中输入“"results.xlsx"”,如图1-54所示。

在“Excel应用程序范围”的“执行”序列中添加“读取列”活动,在“工作表”输入框中输入“"Sheet2"”,在“起始单元格”输入框中输入“"A1"”,表示读取Sheet2工作表的A1列数据,如图1-55所示。

在其属性面板的“输出→结果”输入框中创建变量“Dt_Clientname”,其属性面板如图1-56所示,表示将读取到的A1列存储在变量Dt_Clientname中。

在“读取列”活动下方添加“遍历循环”活动,在“输入”输入框中输入变量“Dt_Clientname”,然后在其正文中添加“日志消息”活动,“日志级别”选择“Info”,在“消息”输入框中输入“item”,将客户名称遍历后依次输出,如图1-57所示。

最后运行流程,在“输出”面板中查看大额交易的客户名称被正确输出,如图1-58所示。

图1-53 “结果数据显示”模块的流程设计

图1-54 “Excel应用程序范围”活动

图1-55 “读取列”活动

图1-56 “读取列”活动的属性面板

图1-57 “遍历循环”活动

图1-58 大额交易的客户名称

1.1.5 案例总结

通过本章的大额交易客户筛选机器人的流程设计,我们学习了清空文件夹的代码编写,练习了通过等待下载活动自动从网页下载表格数据,通过筛选数据表活动将表格数据按照一定条件筛选,最后将筛选后的数据以日志方式显示。本案例由于篇幅受限,教学案例演示只挑选了2家分支机构的数据,在实际RPA应用过程中,适用于大量分支机构的数据汇总及筛选分析,给企业带来了非常大的效益,后续可通过将这些识别到的大额交易客户以邮件方式通知到对应的客户经理,从而实现自动预警。 udk6PMWWcPCwoB7KtVspFK94NNLjAs8UziVUHrdAW/xpRm3/0D/7G6scppKWJQqj

点击中间区域
呼出菜单
上一章
目录
下一章
×