【RPA Developer Advanced-Robotic Enterprise Framework Deep Dive】机器人企业框架深入挖掘Walkthrough – UiDemo
课程目标:
1、解释如何构建ReFramework模板;
2、解释ReFramework模板是如何工作的;
3、使用ReFramework来自动化您自己的流程。
一、课程里面涉及的系统
ACME System 1 :https://acme-test.uipath.com/login
可以先去注册一个,需要注意的地方:
- 确保你使用的电子邮件地址与你在学院注册时使用的相同。
- 第一次成功登录时需要执行的第一步是访问User Options部分并单击Reset Test Data按钮。为您的用户帐户生成一组完整的测试数据。它包括供应商,发票,报告,客户,支票,帐户等。
- 所有用户都需要在课程开始前安装UiPath Studio(试用版或社区版)。
- 我注册了下,貌似不行。。。
- 多试几次刷新下页面,然后底下就会出现选择验证码,然后就能注册成功了。进入页面 按提示操作,先初始化数据。 User Options -> Reset Test Data
然后就可以跟着课程的步骤实现。
二、练习项目
业务场景:
有一个叫‘UiDemo’的程序,需要实现自动化流程。需要将Excel中的数据,输入到UiDemo中。这个不难,需要一个Read Range读取Excel中的数据范围,存入DataTable,然后遍历DataTable中的每一行,写入到UiDemo程序中。然而,这里的挑战是由于有很多的数据要写入,需要多个机器人同一时间工作,根据解决方案架构师和业务分析,需要将流程分配给多达5个机器人。
这个练习的项目涉及到的东西还挺多的。我一步一步的实现。官网课程也有文档。写的不够详细。我爸自己实现的过程,遇到的问题都记录下。分享学习。回头我也把我的项目上传到GitHub.
1、准备
先到官网下载课程需要的资料。https://academy.uipath.com/learningpath-viewer/1992/1/150802/16
下载Excel和UiDemo.exe文件。还有操作说明文档PDF。
我用的是 UiPath2020.6版本
然后需要先登入Ochestrator,查看机器人是否配置好。
本地打开Assistant,连接成功
发现云上的Ochestrator不太稳定,经常掉线。导致流程跑起来的时候 中间会报错,中断。
2、创建REF项目
- 项目名称 UiPath_REFrameWork_UiDemo
- 项目描述:Demonstrating the REFramework with UiDemo
创建好了文件的目录是这样的:
解压后将Transactions.xlsx放到\Data\Input中,如果是老版本的studio 就放到Data目录下就行。
3、创建Dispatcher – UploadQueue.Xaml
点击顶部菜单New,选择Sequence。这是做好的样子。
- 添加Read Range 课程里选择的是WorkBook下的ReadRange。Excel下的也能用,用法不太一样。
选择Transactions.xlsx,然后读取Sheet1的内容,Range默认为空,获取全部的数据。这里需要创建一个DataTable类型的数据,来存储Excel中的内容。
- 然后添加一个For Each Row 遍历DataTable。在Body中添加一个 Add Queue Item
需要编辑的属性:ItemInformatica,需要将DataTable中的三列数据插入到Queue中。
QueueName,定义队列名称,需要和Orchestrator上的队列名称一致。
- Orchestrator上新建队列Queue,名称要和上一步中写的一样。其他的选项都默认就行。
这样就可以了。运行一下。然后看Orchestrator,监控菜单下,就可以看到,将Excel中的数据上传到队列中。有日志数据。
4、修改配置文件Config.xlsx
在Data目录中,需要修改Settings页中
- OrchestratorQueueName为上面设置的队列名称
- 然后添加一个UiDemoCredential的值为UiDemoCreDential_REFramework
UiDemoCreDential_REFramework需要在Orchestrator中的Asset中先配置好。注意类型type要选择Credential。这个是管理UiDemo.exe登入的账号和密码。为了安全考虑,选择这种方式。studio有提供可以读取Windows的凭证,存在Windows的凭证,然后去获取也行。
Asset name就是UiDemoCreDential_REFramework,然后指定一个默认值,然后可以选择机器人,可能每台机器人登入的账号和密码不一样,都可以设置。
修改Asset页,新增一个UiDemoPath,用来指定UiDemo.exe的存放位置。
然后这个UiDemoPath,一样需要在Orchestrator的Assets中设置好。类型是Text。
5、创建UiDemo_Login.xaml
在项目目录下新建个文件夹UiDemo subfolder,存放UiDemo_Login.xaml。
建好的流程如图:
- 创建参数和变量
Arguments:in_Credential
两个变量Username和Password:类型为SecureString
- 先放一个Invoke Workflow File 执行"Framework\GetAppCredentials.xaml",这个主要是获取Orchestrator平台上前面设好的用户名和密码。
GetAppCredentials.xaml是框架里面写好的,需要传这几个参数;就是上面定义的参数和变量名称。
- 完成输入账号密码,并登入UiDemo
这一步需要先打开UiDemo.exe界面,在Main流程中,一开始初始化会先启动UiDemo.exe。
所以我们先打开,需要实现输入登入功能。
添加一个Attach Window,需要先录制到窗口,
Username:Type into 抓取Username输入框,Text属性输入定义的变量Username+回车键
Password:Type Secure Text,在Input的Secure Text输入Password变量名称
Login :Click
然后就创建完成!
6、修改InitAllApplications.xaml
我们需要在InitAllApplications.xaml启动UiDemo.exe
添加一个
将selector选择器 选中UiDemo.exe窗口,然后修改FileName值:in_Config("UiDemoPath").ToString
这个值就是初始化的时候 框架里面自带的功能去去掉Config中表格的数据。这边直接这么用就可以了。
在添加一个Sequece,添加Invoke workflow file
传入参数值:in_Config("UiDemoCredential").ToString
保存!
7、退出程序,杀进程
CloseAllApplications 、KillAllProcesses.
8、最重要的Process.xaml
主要的业务流程在Process。xaml中实现。
- 创建这几个变量
- 添加一个Sequence,对变量赋值
CashIn=in_TransactionItem.SpecificContent("CashIn").ToString
OnUsCheck=in_TransactionItem.SpecificContent("OnUsCheck").ToString
NotOnUsCheck=in_TransactionItem.SpecificContent("NotOnUsCheck").ToString
- 添加个FlowDecision,条件:Double.TryParse(CashIn, dbl_CashIn) AND Double.TryParse(OnUsCheck, dbl_OnUsCheck) AND Double.TryParse(NotOnUsCheck,dbl_NotOnUsCheck)将字符串类型转为double类型。判断是否有值。
没有值得,抛出异常,Throw,异常信息:new BusinessRuleException("Input Data Invalid")
有值,继续判断 dbl_CashIn是否大于1000.超过1000则抛出异常:new BusinessRuleException("too large")
小于,就进入UiDemo录入数据。
- 我是用录制的功能,比较方便。Desktop。主要是三个输入框然后一个按钮。
到这里整个REF框架实现完毕。
然后可以运行,看有什么报错。
9、异常报错信息
这个可能是Orchestrator链接断开了。经常不稳定。
这篇就先写到这里,有问题可以留言,有什么不对的地方也欢迎提出来。一起讨论。
项目源码地址:
https://github.com/sanhecao/MyUipath/tree/master/Uipath_REFrameWork_UiDemo