版本说明:
Uipath V2018.3.2,BluePrism V6.3,Automation Anywhere 11.2
Uipath (UP)
新建
UP的产品思路是从易于开发者安装和使用开始,本质是以自建工程起步的单机版开发工具,尽管目前版本的名字已经从NewProject改名成NewProcess ,但本质上每个人新建的还是一个工程文件。
熟悉Visio Studio 等任何一款软件开发工具的朋友就会对工程的概念很熟悉 , 如果有人在CSDN上分享成果,大家更想要的肯定是完整的开发工程包。
特点:单机本地工程文件,流程项目协同/版本控制,开发者权限/审计,代码安全等需要额外的管理方法和工具才可以实现 ; 但最大优势是,安装部署简便,再加上Uipath的大市场战略,所以国内知道UP,玩UP的人数量上是最多的。
流程设计
UP的设计器画面总给人一种无法看清流程全貌的感觉。
由于产品的历史原因和用户习惯使然,UP设计器还是主要在Main窗体里面套各种Sequence (序列,方框框)为主。
假设有如下需求已经通过Visio画出流程图,在UP中的实现参见下图:
如果不展开结构,似乎我们只看到了 Do While 和 If判断,那么我们就展开结构。
展开后的流程看起来累不累?
熟悉UP的玩家说,“还好啊” 。但问题是,这个需求如此简单,流程设计逻辑就看起来那么烦人了,那复杂的长流程+很多逻辑分支的情况呢 ?
为了解决Sequence的很多缺点,UP推出了 FlowChart Activity。
UP推出FlowChart Activity 就是想以画布设计的方式部分解决流程设计的缺点
但从FlowChart只是UP的一个Activity组件就大概能明白目前UP对FlowChart的定位。我不确定未来UP是否会强化FlowChart组件,让其成为内置默认设计框架,而Sequence 变成一个Activity 。 如果到了那一天, UP或许更加强大了。 (还有一个很重要原因想必是很多UP玩家习惯了 Sequence,而不愿意去适应FlowChart)
元素抓取
一款RPA工具是否强大,跟能抓到什么级别的元素还是蛮正相关的。不得不承认UP的元素抓取工具还是蛮强的。 点击 Indicate Element后 ,UP首先是以智能识别模式根据鼠标移动的位置自行判断元素类型和适配的方式。
如果是抓网页,默认会选择HTML方式去分析。有一些特殊情况可以考虑 UIA方式,实在无法识别就用区域模式去靠图片识别。
测试题是: mail.qq.com 点击- 账号密码登陆按钮
UP可以抓到,Selector结构如下
这个测试其实不难,只是抛砖引玉 ,不妨在考虑下以下场景:
SAP/Oralce EBS /用友ERP 元素抓取能力如何
特殊网页数据Table抓取能力如何,控件怎么处理
特殊的Java开发程序抓取能力如何
甚至Mainframe程序是否可以读到模拟器中信息
某一项流程能不能被完美自动化,往往是由能否顺利抓取到元素,读取元素信息所决定的。
可复用性
流程设计的基础模块功能可复用性的高低,是否可以方便其他人拿来就用,直接决定了项目开发效率和周期。
UP通过Add Folder 可以将一些通用性Library xaml文件导入到系统中(严格的讲只是被系统认到,并没有导入到系统的概念)。识别后也可以通过类似操作Activity的方式去调用这些共用。
但这些单独的文件,在项目协同,传参等方面还是有一些问题的。
BluePrism(BP)
新建
区别于UP,BP的设计思路一开始就是定位企业级甚至金融级的RPA平台。
所以在已经部署有RPA的环境中,你想新建一个自动化Robot ,对不起你得先有账号。每一个开发都是经过认证并且行为可追溯的。
BP通过新建Process ,来定义流程。 Process流程可以有很多Page页,便于梳理流程结构 ;Process可以调用Object实现基础功能模块 ;Process也可以调用Process。
流程设计
BP的设计画布更让有人设计的感觉。
BP的流程设计主要有两个维度:
第一个维度是Object ,
Object用来搞定跟各种第三方系统打交道的模型。Object 中有一个重要模块叫 Applicaiton Modeller ,通过这个适配器BP会协助开发者帮助建立BP与应用系统联系。
第二个维度是Process ,
只有Process才是可以被Publish发布到Control Room,以“正规”的方式去执行流程任务。 而Object仅仅可以在设计器Studio中运行 。
回到之前那个样例,如果在BP中实现设计,参见如下图
不得不佩服BP把设计器Studio做的非常好 。
很多场合如果是用BP流程设计开发,可以直接贴到项目的各种设计文档中。
元素抓取
BP的元素抓取能力非常强,而且支持很多模式,混合使用各种不同模式可以有更佳的效果。
HTML Mode
Win32 Mode
UI Automation Mode
Accessibility Mode
Region Mode
BP可以轻松抓取账号密码登陆这个Tab Bar ,而且能对元素进行深入分析,勾选匹配项。
BP应该是目前唯一一家可以对市场上主流的Mainframe模拟器进行解析,读模拟器中数据,直接写数据到模拟器中。
可复用性
BP VBO(Visiual Business Object 可视化业务对象)可以极大的提高流程开发的效率。 在面对比较复杂的流程的时候,可以分别由不同的开发人员设计不同的VBO对接不同系统 ,如果是在同一个开发平台 ,其他人可以直接在系统中调用别人已经开发好的VBO对象。如果不在同一个项目,也可以通过将VBO导出成XML文件的方式与别人共享。
BP项目在设计阶段,如何合理的设计不同的Object VBO对象,对项目进程会有较大的影响。
Automation Anywhere(AA)
新建
与BP类似,AA也是企业级部署的RPA平台。
没有单机运行的设计器,要部署了完整的整套系统才可以登陆AA平台。AA在对外宣传的时候号称有非常强的高可用性系统架构,由于是设计器专题这些也就不展开了。
AA新建Workbench,就是基于Task的维度。
流程设计
AA流程的核心是TASK,通过设计编写TASK来完成特定业务流程,或者再通过Workflow去调用TASK。当然TASK本身也可以调用TASK。
TASK里面利用很多很多Commands或者MetaBots,来组成具体的任务流。
AA的Task当中的流程设计界面长这个样子:
说实话,这样的流程设计界面太技术了,对普通人太不友好了。简直比网页源代码更复杂,不是吗?如果别人想读懂这个Task的内容,简直比直接读脚本代码更复杂。 #学AA好比新学一门语言
AA的WorkFlow 当中有部分可视化设计的功能,但是,实在是太局限了。 一共只有四个组件,一个Start ,一个End,一个IF,一个执行Task 。 所以Task才是AA的核心。
元素抓取
元素抓取AA似乎也没有另外两家的强。
AA有三种拾取模式,Object对象模式, Coordinates坐标模式, Image 图片模式。
有RPA实践经验的人一般会优先选择对象模式, 坐标模式很容易因为客户端分辨率(窗口是否最大化)等问题而导致失误。 但AA的对象模式较弱,无法识别“账号密码登陆”,也不支持切换诸如HTML/UIA/CS等其它对象适配方式。
并无法识别mail.qq.com的测试,AA只能识别到整个区域,并无法识别“账号密码登陆”按钮。
另外客观的吐槽几点(如有任何不对的地方,欢迎大哥指正):
AA内置的Mouse Command 的四个方法全部是基于坐标去做点击的
(无法适应窗体移动,或者最大化,分辨率一改就不灵)
AA很多复杂操作必须用到一个叫 Object Clone 组件。Object Clone组件很强,集合了很多功能,但是无论名称,还是定位总感觉怪怪的。 就好比之前做了很多组件发现不好用,后来一口气做了一个很强的Object Clone组件,里面有包含了太多的功能,名字也取的随意。
三种选择模式,各类操作动作(鼠标点击啥的,很多)
AA抓元素这个动作不舒服,需要按着鼠标移动到你想要检测的元素然后松开鼠标。其实不光是因为不顺手 ,还因为,比如如果你想切换不同的侦察元素模式,BP&UP 均可以通过按F? 来切换,但AA不行啊,因为一直保持鼠标左键按着。
可复用性
AA关于复用性的设计全部在MetaBot当中体现。
MetaBot 类似于 BP的VBO,但还是有一些区别。其实严格的讲,MetaBot更像带Input Output的 BP的可重用Process , 因为MetaBot的感觉更像一个可复用子流程的感觉,而BP的VBO有很多基础共用组件的属性。
AA的Commands 通俗的讲就是组件,并不支持自定义导入或者导出 ,所有新能力的获取就得等厂家的新版本,或者索性通过外部的脚本。 而UP&BP 都能通过一些方法实现自定义组件并且复用的能力。
这也是为什么 UP 可以做Uipath GO平台,BP可以做 Blue Prism DX平台的原因,而AA却不可以的原因。
总结:
由于时间和精力关系,本文只是挑了4个与设计器关系较高的角度分析了这三款RPA软件的差异。但还有很多其它指标都会影响RPA工具,比如软件系统架构,管理后台,安全性,工作队列,部门流程权限等等。下回或许可以从 RPA后台&安全的切入点再进行深入分析 。
讲了这么多外国的软件,春节前打算做一期国产RPA工具的分析,希望可以获得各位国产厂商老师的支持 。