21 July 2022

最近参观了某集团的财务共享中心,人气最旺的是 RPA(Robotic Process Automation)机房。一台台无人值守的机器人被安全的锁在玻璃柜子里,日夜不停的处理着一个个流程请求。

为了搞明白什么是 RPA,本文根据收集到的一些资料,梳理 RPA 的概念,工作原理和发展趋势。

首先,我们要弄明白,什么是 RPA。

范·德·阿斯特(van der Aalst)等人 (Van der Aalst, Bichler, and Heinzl 2018) 定义 RPA 是一组能够通过用户图形界面操作电脑系统内其他应用软件的工具。奥维尔(Allweyer) (Allwyer 2016) 认为 RPA 是一种软件程序能够支持人们处理某些任务,甚至完全取代人工操作。

RPA 的全称是 Robotic Process Automation。Robotic 跟 Robot(机器人)有一些些区别。Robotic 是 Robot 的形容词形式,意思是像机器人,类似机器人,呆板机械的。Process 指的是做事情的步骤和流程。Automation 则是自动化之意。所以,RPA 不是机器人。它是类似机器人那样机械呆板工作的软件工具。这个软件和其他软件系统通信,提取数据,处理数据,然后把数据传给其他应用软件。它可以部分或完全实现自动化的业务流程处理。

因为 RPA 是一个软件,所以一般称之为 bot,而不是 robot。

那么从类别来分,RPA 又分为两种:

  1. Desktop RPA,桌面RPA,又叫 RDA(Robotic Desktop Automation)
  2. RPA 平台

桌面 RPA 其实就是完全“录制”业务操作人员的鼠标、键盘操作过程,自动重复的执行这些操作。

而第二种 RPA 平台,则是运行在后端服务器上,直接访问各个信息系统的数据接口,自动运行设定的任务。也就是说,它不通过用户界面去和其他应用程序交互,而是直接通过数据通信或者数据库访问其他应用程序的数据,处理完成后,又直接访问另外程序的接口或数据库,写入结果。

为了阐述两种 RPA 的区别,我们以成本分析汇总为例,描述他们不同的工作模式。

桌面 RPA 的工作过程是打开 ERP,模拟鼠标点击,找到相关的表单,提取表单数据,导出到 Excel,再通过 Excel 公式,汇总数据,再导出另一份 Excel,导入到报表系统中。

而 RPA 平台,则是根据写好的脚本在后台执行任务。脚本指令可以是 ReadCosts,Calculate,WriteSummary 等。

显然, RPA 平台执行效率更高、更稳定、不易出错。而且,还可能更省电。因为桌面 RPA 需要配置多台 PC,可能还要点亮多个显示器。而 RPA 平台在后台服务器执行,根本不需要显示器显示界面。

对于一个设计良好的 RPA 系统,应该具备以下基本能力:

  1. 模块化。模块化指的是它的功能是分成一个个互相相对独立的组件,通过组件的组合,设计更大的功能。就好像乐高玩具,散开来是一个个不同形状的积木块,组合起来就可以搭出千奇百怪的形象。模块化的好处是每个模块可以相对独立的设计、开发、测试、验证。从而确保整体的质量。
  2. 字符串处理功能。所有 RPA 都会设计字符串处理。必须有字符的搜索、过滤、拼接、识别等功能。
  3. 变量处理功能。RPA 会计算一些临时数据,临时存储,在后续步骤中使用。有时候,这些数据还要进行加密保存。所以也会需要加密解谜算法库。
  4. 条件分支判断。根据应用程序中抓取的数据,进行逻辑分支判断执行。有时候还需要进行循环连续处理。
  5. 错误异常处理。在流程处理过程中,总是会遇到异常情况,RPA 要能及时发现异常,发出报警,要求工作人员进行干预。
  6. 开发测试配套。RPA 的开发过程中,需要工程师不断调整优化执行策略,一个完善易用的开发测试配套工具是必须的。

我记得几年前,在某集团研究院工作的时候,帮助下属子公司做过一些类似 RPA 平台的工作。当时他们的财务人员每个月月底都很忙,要计算生产成本,但是计算过程中,有些车间的物料、废品率等信息又没及时提交。导致计算出来的成本不精确。然后,财务人员又要一个一个去联系车间,填报数据,再重复出报表。本身出报表的过程就很繁琐,这样一来二去,财务人员就经常需要月底加班。

那么,我做的事情是什么呢?我帮他们实现了一个自动生产报表的Web服务。只要提供数据格式和计算规则,Web服务就直接能够计算出报表。还能根据规则,指出哪些数据是有问题的,需要复核。这样,就把财务数据处理的手工工作从5 个小时,缩减到5分钟。如果和 ERP 数据对接更好的话,还能进一步提升效率。

其实,我这个实现的Web服务,就是一个简陋版的 RPA 平台么。除了实现这个系统,我还简化程序编写逻辑,指导财务人员写代码,这样,他们可以根据自己的需要,直接开发各种财务处理 APP。这可能就是低代码系统的初级版本了。

至于 RPA 的未来发展趋势。我觉得桌面 RPA 是一个过度态。当上下游应用之间的数据接口足够标准开放的时候,就不需要桌面 RPA 这种初级的 bot 了。通过 RPA 平台就能快速、准确、高效的完成流程处理、数据对接。

但是,企业应用环境存在异构性,总是会有那么一些软件,互相之间无法配合。桌面 RPA 依然会有一定的市场空间。

所以,在未来企业流程信息化中,主要还是会应用 RPA 平台,在后端服务器自动处理流程。再加上低代码开发,业务人员可以快速开发一个新 bot,加载到平台中运行。在辅助上 NLP 自然语言理解,ML 机器学习,OCR 光学字符识别,让 RPA 平台自动去发掘潜在的自动处理过程。这样,应该算是 RPA 的最终形态了吧。

参考文献

Allwyer, T. 2016. “Robotics Process Automation - New Perspectives for Process Automation.”
Van der Aalst, WMP, M Bichler, and A Heinzl. 2018. “Robotic Process Automation.” Bus Inf Sys Eng.