【文章导读】:RPA是一种软件技术,也就是说RPA概念中所谓的“机器人”并不是指有物理形态、物理实体的机器人,不是工厂中的机器手臂、自动设备、家里的扫地机器人以及银行大堂的迎宾机器人。说到底,它就是计算机中的程序代码,所以被称作软件机器人( Software Robot),也可以把运行在RPA中的机器人称作BotRPA技术的核心能力是模拟和替代人工劳动。

 

 

什么是RPA?

 

 

RPA在多大程度上可以取代人的工作

RPA (Robotic process automation,简称RPA)机器人流程自动化是以软件机器人及人工智能(AI)为基础的业务过程自动化科技

 

要问RPA是什么,就要先回答3个问题。

 

 

问题1:RPA是什么样的机器人技术?

 

 

我们从五个方面来回答这个问题。

 

 

(1)RPA是一种软件技术,也就是说RPA概念中所谓的“机器人”并不是指有物理形态、物理实体的机器人,不是工厂中的机器手臂、自动设备、家里的扫地机器人以及银行大堂的迎宾机器人。说到底,它就是计算机中的程序代码,所以被称作软件机器人( Software Robot),也可以把运行在RPA中的机器人称作BotRPA技术的核心能力是模拟和替代人工劳动。工厂中那些物理形态的机器人替代的是工人的体力劳动,扫地机器人替代的是家庭主妇的清洁劳动,而RPA这种存活在计算机里的软件替代的是办公室里员工的部分脑力劳动,以及诸如敲击键盘、点击鼠标、切换页面等系统操作动作。随着全社会进入信息时代,几乎所有企业中

 

 

的员工以及人们的日常生活都需要依赖计机,一些大型企业更是同时拥有多套应用系统,员工在工作中经常需要登录不同的系统进行业务处理,而系统处理过程中必然存在大量的数据录入、数据核对以及数据报告等工作,RPA通过模拟人工操作的方式很好地解决了这类问题。

 

 

(2)RPA可无缝地实现跨系统连接。员工通常在工作中需要使用多个业务系统、桌面软件,以及不定时访问内外部网站来获取信息,所以在实际业务办理过程中,他们需要在不同系统间切换,将数据传来传去,不停地复制粘贴,从而花费了大量时间。RPA目前能够调用几乎所有桌面系统中的应用程序,如常用的办公软件 Excel, PPT、Word、邮件和即时通信工具等,以及其他带有客户端的用户界面和各类浏览器支持的Web页面,这样就可以模拟员工的以上行为,无缝地集成上述业务操作,变相起到了不同应用系统之间集成的作用。而这样的集成方式并不需要修改后端程序的任何行代码或数据库字段,也不需要打开后端程序的接口或服务,因为RPA只是在模拟人的行为,访问操作的是那些应用系统的页面。这种集成方式也被称作“At-the- -glass Integration,即“表层集成”。正因为RPA不需要工作人员了解复杂的后端程序逻辑、数据库结构、软件接口和服务调用方式,而是主要利用图形化可拖拽的工具进行编辑,采用脚本语言编写程序并且不需要编译和部署,甚至可以用录制的方式自动生成,才使技术人员更容易上手,甚至于一些业务人员在经过培训后也可以直接使用。

 

 

(3)RPA是多种技术的组合应用。RPA其实是一类自动化技术的统称,通常包括键盘和鼠标的模拟操作技术、屏幕信息获取和定位的抓屏技术、流程控制处理的工作流引擎技术,以及自动化任务调动控制和管理技术等。这些技术各自可能已经有了很长的发展历史,但是能够将这些技术综合起来一起使用,而且能够稳定安全地使用,让用户用起来更容易,即真正商用,只有短短几年的时间而已。

 

 

(4)利用计算机来实现自动化计算、数据存储和业务操作,这似乎是计算机天生的属性。RPA和传统的自动化技术有什么不同吗?传统的利用计算机实现自动化的模式大致可以分为四种。

 

第一种模式是传统C/S或B/S的应用系统,需要人类通过操作应用系统的用户界面来驱动系统,实现所谓的数据计算和存储的自动化。虽然我们把办公系统叫作办公自动化( Office Automation),但距离今天对自动化的要求还差很远。

 

第二种模式是利用工作流( Workflow)引擎支持业务流程管理( Business Process Management,BPM)的自动化,即利用系统自动串接业务流程中不同岗位角色所做的任务,但在落实到每个具体的业务执行过程中,还是需要人工来操作用户界面,这样工作流引擎才能将工作任务自动流转到下一个节点。这种模式与RPA的区别是,工作流引擎实现的是不同角色之间业务流程的自动化,而RPA实现的是某个特定角色操作步骤的自动化。但是,RPA结合工作流引擎可以解决全流程的自动化,所以在部分高级的RPA软件中已经融入了工作流引擎技术。

 

第三种模式是利用服务器端的程序或脚本来实现日间或夜间批处理,也包括数据库中存储过程的执行,这种批处理执行方式是通过程序逻辑直接访问数据库,无须通过用户界面处理信息。这种模式与RPA的区别是,批处理能够大批量、高效地执行数据库处理但批处理程序必须由专业的技术人员完成,而且一旦完成,由于批处理的逻辑复杂且处理的数据量庞大,难以再次修改。批处理过程和业务逻辑对于业务人员完全是不可见的,业务人员只能通过第二天所产生的报表检查业务结果是否正确。而RPA的脚本编制简单容易上手,甚至业务人员也可以读懂,达到了所见即所得的效果。RPA模拟了用户的手工操作过程,业务人员看起来也更加熟悉和亲切;RPA仍是单笔业务处理方式,更符合用户日常业务的处理行为,当出现业务问题或程序异常时也可以及时进行修正。

 

第四种模式有点像RPA的雏形阶段,即利用系统或软件自带的脚本语言,编制一些简单的可以自动执行的脚本来帮助用户实现系统处理自动化,如 Excel中的VBA、UNIx中的 Shell等。这种模式与RPA的区别是,普通的脚本必须依赖于某一个特定的软件,比如A只能在 Microsoft Office中使用,而不能自动化地操作 Oracle EBS的用户界面。RPA在技术原理上调用的是操作系统底层技术,它能够识别和处理 Windows系统中几乎全部的应用程序、客户端、浏览器,甚至是远程虚拟桌面,所以比起传统的执行脚本方式,RPA可以起到强大的用户操作集成作用。

 

 

(5)我们还要解释一下RPA与自动化测试( Test AutomationTA)的区别,很多测试人员也许使用过如QTP和 Selenium这样的自动化测试工具。二者在很多方面看起来十分相似,如都是为了避免重复的人工操作,避免人工处理过程中引入的错误和风险,基于结构化数据和固定的业务规则等一个基本的前提是,RPA可以代替TA工具,但在测试设计上需要做些特别的改进,也就是说RPA基本兼容了TA的功能。TA与RPA比起来有一定的局限性,如TA的目的是测试,输入的是测试案例,加载于测试环境;而RPA既可以用于测试,也可以用于生产输入既可以是测试案例,也可以是实际生产的案例,并且RPA可以加载于开发、测试和运行环境中。由于RPA可使用真正的生产数据,所以需要RPA能够兼容各种异常,跟踪和记录所有的用户操作行为,对机器人的执行过程进行严格监控,这些能力都是TA软件所不具备的。通常TA具有两个目的,一个是回归测试,另一个是压力测试。为了达成这两个目的,自动化测试只需要关注于某个测试案例或测试场景的成败,而不需要关注整个业务流程的处理过程和业务逻辑从而可以把这些内容都交给后端程序。RPA既可以实现单任务的自动化,也可以实现多任务的长流程自动化。另外,RPA可以把真正的业务处理逻辑写在脚本或代码中,而TA的业务处理逻辑只能依赖于后台应用程序,因为TA的目的只是为了检验应用程序的正确性。总之,RPA是实现自动化的技术合集,通过模拟人类使用计算机的行为,实现了跨应用系统的操作集成。

 

 

问题2:RPA可以实现哪些流程的自动化?

 

 

RPA是运行在计算机中的机器人程序,能实现的自动化流程必然是那些涉及电脑处理的,而现实物理世界中人们的行为就无法利用RPA来模拟和替代,如领导在纸质文件上的手写签名、取回已打印的文件、将寄送的包裹交到快递人员的手中等。不过RPA可以通过实现自动化的电子签名和校验来替代手写签名。如果企业还未实现无纸化办公,至少RPA可以做到将要打印的文件自动发送给打印机,并自动判断打印成功与否。虽然RPA不能亲自递交包裹,但是可以在快递公司的系统中自动下单,并自动化地检查快递物流的实时状态。所以,如果在一个业务流程中部分步骤是人工的电脑操作,一部分是人在现实世界中的行为,那么可以肯定地说,RPA只能自动化地替代人工的电脑操作,而对于人类的物理行为无能为力,不过这时那些拥有物理手臂和可以自动行走的机器人就可以派上用场了既然RPA是利用程序模拟人的操作行为,那么这些流程中的操作行为就必须要有明确的业务规则、明确的行为逻辑,才能转换成可执行的软件程序。目前RPA主要应用于商业领域,为企业用户服务。商业领域其实不像人们的日常生活,日常生活中大部分行为是受情感所支配的,如人们在“双十一”填满购物车,在各个网站上随意地浏览新闻。而在商业世界中,90%的业务行为都是有逻辑规则可循的,尤其一线业务人员的操作过程,更是需要严格遵守公司的操作规程。

 

 

RPA应用领域主要包括财务会计、人力资源、采购、供应链管理等,如费用报销、单据审核、人员入职、开具证明、订单核对等流程。另外,并非所有能够实现自动化的流程,都要真正地实现自动化,如上面几个定义中所提到的,RPA的目的是要处理那些重复执行且工作量大的流程环节。其实,这里讨论的是自动化的必要性而不是RPA能否实现自动化的问题。

 

 

首先,需要考虑投入产出比的问题。因为使用RPA最原始的动力是替代人工劳动,降低人力成本。这部分工作通过人工操作是需要成本的,但是RPA的软件、实施和维护也需要成本,需要对比一下哪种方式成本更低。其次,还要考虑业务灵活性的问题。RPA一旦将业务流程和处理规则固化下来,也就意味着业务人员在业务办理中的自主控制力会降低,随之会带来业务灵活性和业务人员及时应变能力的问题。当然,我们还需要从效率、风险、安全、IT建设周期等其他维度来判断一个流程是否需要自动化,详细内容参见第4章。通常得出的结论是,那些重复执行且劳动量大的工作一定是人力相对密集的流程,越多的人执行这样的流程,规则越不会轻易调整,将这些流程进行自动化所带来的业务收益通常也会更大。这也就是为什么RPA首先应用于外包服务和企业内部共享中心的原因。总之,RPA适用于那些具有明确业务规则、重复执行且业务量较大的、相对稳定的业务流程。

 

 

问题3:RPA可实现什么程度的流程自动化?

 

 

如上所述,RPA模拟用户在计算机上的操作行为,那么流程中只要涉及用户界面的操作过程就都有可能被自动化。首先说明,我们所谈的流程自动化,并不是指流程100%的步骤都实现了自动化,也就是说流程中的部分环节仍然难以被自动化技术所实现或者技术实现成本过高,仍需要通过手工方式完成。但是随着技术的进步、推广和普及,以及企业管理成熟度水平的提升,流程自动化的比例自然会逐步提高。一些流程自动化比例不是很高的企业也决定开始尝试使用RPA技术,因为只有通过实际的应用才能充分了解实施过程中的风险和问题,培养自身的能力,构建相匹配的团队,为将来更大规模的RPA应用做准备。可以预想到,开始由于流程自动化比例较低,更多是由RPA来配合人类完成工作,而发展到未来,随着流程自动化比例的升高,可能就会颠倒过来,更多是由人类来配合RPA完成工作。由于流程不是100%的自动化,人类和RPA之间就会产生协作,也就必然产生一种全新的与RPA机器人的协作方式,事实上产生了人、RPA机器人、应用软件三者之间的协作其中,我们最熟悉的就是人使用应用软件的方式,人通过用户界面来操作应用软件( Input),应用软件处理后( Processing),再将结果反馈给人( Output),也就是常说的IPO,这也是所有软件工程领域,包括需求人员、需求分析人员、设计人员、开发人员和测试人员等共同遵循的话语体系。由于RPA是模仿人类的操作,Bot使用应用软件的方式和人类似,不同的是由于Bot也是一种软件,它可以选择不去操作UI,而是通过 Service或AP来直接调用应用软件。那么人如何触发这些软件机器人呢?主要有以下三种方式。

 

第一种是手工触发,即通过手工方式随时随地地启动一个Bot让它开始运行,既可以启动本地电脑上的Bot,也可以启动远程的Bot。

 

第二种是通过人们事先编排好的机器人工作日程表,让Bot按照这个日程表来工作,可以是在某日某时Bot开始运行,也可以设置为上一个Bot运行完成后,下一个Bot再开始运行。

 

第三种是Bot按照事先设定好的规则来触发机器人的执行,如收到一封邮件,订单量超过全年30%等,这些都可以作为触发机器人启动的外部事件。当RPA系统监听到这些外部事件后,会自动调用机器人执行自动化任务。然后,在机器人完成任务后,将结果反馈给人类,或者并不需要完全执行,而是执行了一部分,再将其余的工作转交给人继续完成。

 

不单是人可以调用Bot,应用软件也可以反过来采用 Service或接口的方式来调用t举一个RPA已经可以实现的有趣例子,企业中的员工可以通过手机App启动办公室里的某台电脑中的Bot,由Bot操作电脑中的某个应用软件来完成任务,完成任务之后,再由Bot通过微信将完成结果发送给该员工。

 

 

总之,RPA不只是单纯的技术创新,而是创造了一种新的技术应用模式,是一种新的人机交互方式和协作方式。