机器人流程自动化 (Robotic Process Automation,简称 RPA) 是一种容许用户将企业反复的、基于规定的业务流程进行自动化的解决方案。
与须要将流程步骤硬编码
到零碎中的传统自动化解决方案不同,RPA 利用了当今机器学习和人工智能的最新成绩,通过观察实在用户实现流程的形式,来理解如何执行工作的自动化。
要想理解 RPA 解决方案的工作原理,能够把它设想成录制一个宏。一旦录制实现,RPA 机器人能够自主执行工作,岂但可能用于简单工作,而且能够解决工作中的异常情况,一直积攒常识以响应继续变动的输出条件,利用被自动化的利用的 UI 更改。
一个更易于了解的 RPA 工作原理示例,能够思考电子邮件和文本音讯应用程序中的预测文本性能。 当咱们键入电子邮件、文本等时,该应用程序会记住咱们应用的某些语法和单词,而后在未来键入时主动依据这些提出倡议。
RPA 所有做出的这些致力,都为最终用户从繁琐,反复,乏味的体力活中解脱进去,让其能够进行技术附加值更高的其余事件,这也是智慧企业所提倡的 更聪慧地工作,而不是更致力地工作
的一个指导方针。
除了常见的应用编程语言操作 Excel 文件之外,SAP新公布的SAP Intelligent Robotic Process Automation(简称SAP iRPA),提供了弱小的企业级自动化流程解决方案,善加利用,能够在不须要编程的状况下,像应用编程语言一样灵便地操作Excel.
咱们来看个具体而又简略的例子,用SAP Intelligent Robotic Process Automation操作一个Excel文件,往里面的单元格写入一个字符串,设置背景色而后敞开。
关上SAP Intelligent Robotic Process Automation Desktop Studio,导入SAP预置的操作Excel的nodejs脚本库文件。
在库文件里抉择Excel Integration. 从下图能发现,SAP iRPA除了Excel之外,也反对Office里其余利用比方Word和Outlook.
新建一个名叫jerryExcel的workflow,在工作流的activities面板里输出seq,找到类型为Sequence的Flow控件。该控件容许咱们在工作流里定义一系列程序执行的步骤。
把Sequence控件拖拽到工作流编辑区域里,双击,就能够定义须要执行的具体步骤了。
Excel Lib里预置了很多围绕Excel进行的操作,如Init Excel,Open Excel,Close Excel等等,每个操作对应一段nodejs代码。
比方把Init Excel拖拽到Sequence控件的Activities列表里之后,一旦保留,会立刻看到主动生成的nodejs代码。Excel Lib里每个step,都对应一段nodejs代码。如此一来,即便SAP Intelligent Robotic Process Automation Desktop Studio的使用者没有编程根底,也能开发出能操作Excel的自动化工作流。
上图的Init Excel步骤是所有操作Excel的工作流都必须执行的一个初始化步骤。初始化结束后,把Open Excel这个步骤拖拽到Sequence Activities里,指定要关上的Excel文件门路,在Desktop Studio里有红色提醒。
把本地Excel文件的绝对路径保护进去:
第三步,设置关上的Excel第1行,第1列的值为'Hello Jerry':
第四步,设置第1行第1列的背景色:
将批改之后的Excel另存成另一个文件。执行这个我的项目,就会在temp文件夹里看到另一个Excel文件。
这个例子非常简单,让咱们来看看它的工作原理。
切换到Script面板,在第45行关上Excel的代码处设置断点,而后单步调试:
断点一旦触发,咱们能察看到任务栏里呈现一个Excel的利用窗口提醒,没有显示任何内容:
在工作管理器能看到该利用通过参数/automation -Embedding的形式启动:
咱们想单步调试进ctx.excel.file.open办法内,发现断点并没有在open办法内停下来,而是间接执行完这个办法,此时任务栏上的利用题目从Excel更换成了open办法关上的文件名:1.xlsx.
从以上工作管理器里察看到的/automation和embedding参数,咱们曾经能判断出,SAP iRPA操作Excel的实现原理,和Jerry文章 应用ABAP操作Excel的几种办法 中提到的第一种办法,即通过OLE形式操作Excel是统一的。
如果非要刨根究底,能够到SAP iRPA SDK装置目录下,关上excel.js文件,找到open办法的实现,发现其调用了_excelApp对象的WorkBooks.Open办法:
而_excelApp对象,在initialize办法里通过GetObject从OLE对象Excel.Application中获取:
还记得Jerry文章 应用ABAP操作Excel的几种办法 里提到的ABAP OLE实现源代码么?也是采纳同样的形式获取Excel利用对象,连编码方式都一模一样。
既然曾经聊到JavaScript操作Excel的话题了,就顺便提一句,目前另一种风行的JavaScript操作Excel的开源库,即Node-xlsx,原理是基于Office Open XML协定去解析Excel文件,ABAP也有对应的基于Office Open XML的实现:CL_XLSX_DOCUMENT.
这种形式较之SAP iRPA采纳的OLE解决方案,劣势在于防止了对Excel利用的依赖,多用于服务器端对Excel的解决工作。
总结
本文首先给出了企业级 Robotic Process Automation 解决方案(简称 RPA)的诞生起因和实用场合,接着以 Excel 文件的自动化操作为例,具体介绍了 SAP iRPA 解决方案的应用步骤。