▲点击「RPAPlus」设为【星标】,查看信息不“迷路”
Uipath官方学院的Solution Architect认证中有一个重要的实践课题,叫做“Calculate Client Security Hash”。该实战比较完整的体现了常规中小型RPA流程的设计和实践方法。本文就为大家详解该流程的设计与实现方法。
Uipath Solution Architect 认证
Uipath官网学院中的Solution Architect 认证需要完成一个开发实战的小项目。
首先我们来看一下“Calculate Client Security Hash”到底需要做什么?
这个项目的PDD描述中的业务逻辑是这样的:
流程目标
我们用大白话给大家解释一下到底要让机器人做什么事情
1: 打开并登陆到ACME测试网站。(首次需要注册一个与Uipath学院邮箱名一样的账号,URL:https://acme-test.uipath.com/login )
2:重置测试账号数据。(首次登陆后,先重置数据)
3:在Work Items中把Type是Wl5,状态是Open的工单找出来。
4:点击目标工单,将用户的ID、NAME、COUNTRY取出来。并以 ID-NAME-COUTRY 格式组成字符串
5:将上一步获得的 ID-NAME-COUTRY ,复制到计算Hash值的网站(http://www.sha1-online.com/),并点击计算获得结果
6:将上一步获得的结果,更新到工单的备注页(Update Workitem, 添加结果到备注,修改状态为 Completed,再点击Update)
7: 以上步骤完成了其中的某一笔工单,机器人需要把所有符合条件的工单都处理了。
流程设计
在清楚需要做什么之后,需要简单设计这个中小规格的Process。
首先确定流程开发基本路线:
A) 仅使用 Sequence 序列方式开发
不推荐。无论后续是否再将子任务写到不同的xaml文件中,针对以上这个有大循环的流程,跨2个应用系统,纯Sequence的开发方式会使流程的可读性和可维护性变差。
B) 使用Workflow + Sequence方式开发
推荐。顶层业务逻辑使用Workflow,子任务使用Sequence 。并且还建议这个项目子任务不拆分到新的 xaml文件,原因是Uipath的内部跨文件用arguments传参的方式并不是太方便,当然更没必要用上OC的功能。
关于传参,平台级的BluePrism AA的RPA工具显然会更加好用。
C) 使用 Enterprice Robot Framework
不太推荐。这个官方机器人企业框架确实适合中大型项目,初始化、异常处理、日志记录、工作流都非常清晰,不同的任务写到不同的子任务文件,通过Main流程在调用一个个的子任务文件。
为什么不推荐,对于这样的小项目 o(╥﹏╥)o 太麻烦了。
流程实现
Main流程文件最终设计
项目设计分析:
#1 让机器人按顺序一条条工单记录往下找,找到一条处理一条,还是批量先把所有工单先读进来,再分析处理?
肯定是批量读所有Page页的工单再批量处理。
问题1:每条工单Action的那个Icon 如何动态获取 ?
根据Page和WIID 编辑动态的Selector是一个方案,不够太麻烦,还要先点这个放大镜才能进入工单详细页。
解决方案:工单详细页都是以 acme-test.uipath.com/work-items/ + WIID组成的URL,所有只要有WIID,就可以自动拼成最终URL。
问题2:重置数据后动态生成了多少页数据怎么确定
问题3:文本处理
不熟悉Uipath的同学,对于文本的处理一定很头疼。
这里使用:
Str_NAV.Split(Environment.NewLine.TocharArray) 用于拆分这个String
以下逻辑用于获得这个MaxPage ,如果不考虑代码在Uipath中实现就是下面这个样子
问题4:批量抓数据用什么方法?
请务必使用 Extract Data 这个功能,简单又强大。
#2 机器人获得一条工单信息,再打开另一个标签页去访问SHA1网站,怎么样做最可靠和高效
关于打开工单详细信息页,建议在ACME页面的基础上,使用Navigate To 功能,这样就不会新开一个网页或者新的TAB页。
关于SHA1页面如何打开和切换比较好?
方案一: 在Chrome浏览器新的Tab页中打开
可以通过发送 快捷键“CTRL+T”新打开标签页,或者以AA模式控制鼠标点击加号。 发送快捷键看起来更加稳定。
通过使用快捷键 “CTRL+SHIRT+TAB”来切换不同的标签页。
也就是说ACME网页和SHA1网页都只需要打开一次,减少网站不停打开和关闭带来的负面影响。不过实际应用中发现这样做有问题,CTRL+SHIRT+TAB这个快捷键有时会打开曾经关闭了的标签页。
方案二: 老老实实新打开SHA1网页,计算完结果关闭。第二个循环再打开一次。
该项目中我们用了方法二,因为更加可靠和稳定,打开和关闭同一个网页也是有时间间隔的不会对服务器造成什么压力。
RPAPlus:如果Uipath有专门的打开标签页,单独控制标签页的Acitity会简单很多,不过目前还并没有这样的标准功能。
#3 关于ID-NAME-COUNTRY字符串拼接
ClientInformation.Split(Environment.NewLine.TocharArray) 拆分信息到多行
trim(Split(trim(Array_ClientInfo(1)),":")(1).ToString) 分别获取ID和NAME等
官网www.rpaplus.com提供了整个文件的包也可以直接下载
#4 关于最后怎么通过这个Hash流程认证
跑完流程后,记得不要再次重置账户数据。
到Calculate Client Security Hash – Upload Assignment这个地方,上传文件。系统会几分钟内评估出结果,确定是否通过。
#5 最后官网下载这个包,填写你自己的邮箱和密码,开箱即用。