本文转自:https://www.jianshu.com/p/53d0d33a1a35

版本说明:

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工具的分析,希望可以获得各位国产厂商老师的支持 。

作者:RPA虚拟员工转型之路
链接:https://www.jianshu.com/p/53d0d33a1a35
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

[转]Uipath、BluePrism、AA产品对比之设计器篇的更多相关文章

  1. .NET 开源工作流: Slickflow流程引擎高级开发(十) -- BpmnJS流程设计器集成

    前言: 在Slickflow产品开发过程中,前端流程设计器经历了几个不同的版本(jsPlumb, mxGraph等),目的是为了在设计流程时的用户体验更加良好,得到客户的好评和认可.BpmnJS流程设 ...

  2. 2020主流国产BI产品对比

    国产BI软件由于具备较强的本土特性,可以很好地适应国内用户的使用习惯,越来越多被国内用户使用.目前国内BI产品很多,可谓百家争鸣,如何从众多的BI产品中选择适合自己的呢?这里我们对比一下目前国内主流的 ...

  3. 消息服务MNS和消息队列ONS产品对比

    消息服务MNS和消息队列ONS产品对比 MNS已经进过严格测试,已达到商业化的稳定性要求,其主要特点和适用场景 1.数据高可靠(10个9),对于数据可靠性敏感(要求消息数据不丢)的应用场景建议选择. ...

  4. APM调用链产品对比

    APM调用链产品对比 随着企业经营规模的扩大,以及对内快速诊断效率和对外SLA(服务品质协议,service-level agreement)的追求,对于业务系统的掌控度的要求越来越高,主要体现在: ...

  5. 基于Extjs的web表单设计器 第七节——取数公式设计之取数公式的使用

    基于Extjs的web表单设计器 基于Extjs的web表单设计器 第一节 基于Extjs的web表单设计器 第二节——表单控件设计 基于Extjs的web表单设计器 第三节——控件拖放 基于Extj ...

  6. 在网页中编辑报表的报表设计器Stimulsoft Reports Designer.Web报表控件

    Stimulsoft Reports Designer.Web报表控件是一款网页报表设计器.您想在网页中编辑您的报表吗?现在是可能的! Stimulsoft Reports Designer.Web ...

  7. SlickMaster.NET 开源表单设计器快速使用指南

    前言:在企业数据处理过程中,经常需要通过定制表单来输入业务数据.由于涉及的数据比较离散,并不同于ERP系统的紧密关联数据.假如由开发人员每个增加页面,工作量会比较大,后期后期的维护很升级也耗费时间和精 ...

  8. 流程设计器jQuery + svg/vml(Demo7 - 设计器与引擎及表单一起应用例子)

    去年就完成了流程设计器及流程引擎的开发,本想着把流程设计器好好整理一下,形成一个一步一步的开发案例,结果才整理了一点点,发现写文章比写代码还累,加上有事情要忙,结果就.. 明天要去外包驻场了,现把流程 ...

  9. 基于Extjs的web表单设计器 第三节——控件拖放

    看过之前设计器截图的朋友应该有印象,可能会发觉我们的设计器UI设计布局其实类似Visual studio 的设计界面,采用的是左.中.右三个区域布局.左侧为控件区域.中间为表单的画布设区域.右侧为属性 ...

随机推荐

  1. 【毕业原版】-《巴斯大学毕业证书》Bath一模一样原件

    ☞巴斯大学毕业证书[微/Q:865121257◆WeChat:CC6669834]UC毕业证书/联系人Alice[查看点击百度快照查看][留信网学历认证&博士&硕士&海归&am ...

  2. poj 3687

    Description Windy has N balls of distinct weights from 1 unit to N units. Now he tries to label them ...

  3. Gradle入门到实战(一) — 全面了解Gradle

    声明:本文来自汪磊的博客,转载请注明出处 可关注个人公众号,那里更新更及时,阅读体验更好:  友情提示由于文章是从个人公众号拷贝过来整理的,发现图片没有正常显示,没关注公众号的同学可通过如下链接查看: ...

  4. Python爬虫入门教程 53-100 Python3爬虫获取三亚天气做旅游参照

    爬取背景 这套课程虽然叫爬虫入门类课程,但是里面涉及到的点是非常多,十分检验你的基础掌握的牢固程度,代码中的很多地方都是可以细细品味的. 为什么要写这么一个小东东呢,因为我生活在大河北,那雾霾醇厚的很 ...

  5. Springboot 系列(六)Spring Boot web 开发之拦截器和三大组件

    1. 拦截器 Springboot 中的 Interceptor 拦截器也就是 mvc 中的拦截器,只是省去了 xml 配置部分.并没有本质的不同,都是通过实现 HandlerInterceptor ...

  6. Unity的UI究竟为什么可以合批

    1.UI/Default代码研究首先,我想到的是,既然是对图集纹理进行采样,而且又不能统一更改材质的纹理UV值,我们通常写的shader都是直接根据模型UV值对主纹理进行采样,那会不会是shader中 ...

  7. js初级入门

    javascript的数据类型 (symbol)一.原始数据类型 或 基本数据类型 6种 1,undefined (1,申明未赋值,2,函数没有返回值)2,null (空,不存在)3,number ( ...

  8. ubuntu安装mysql没有让我设置密码

    终端输入: sudo cat /etc/mysql/debian.cnf显示内容:# Automatically generated for Debian scripts. DO NOT TOUCH! ...

  9. elasticsearch常用命令备注

    1.检查集群健康状态 curl 'localhost:9200/_cat/health?v' 2.检查节点健康状态 curl 'localhost:9200/_cat/nodes?v' 3.新增一条索 ...

  10. JAVA Web实时消息后台服务器推送技术---GoEasy

    ---恢复内容开始--- 越来越多的项目需要用到实时消息的推送与接收,我这里推荐大家使用GoEasy, 它是一款第三方推送服务平台,使用它的API可以轻松搞定实时推送! 浏览器兼容性:GoEasy推送 ...