机器人流程自动化 (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 解决方案的使用步骤。

如何使用 SAP Intelligent Robotic Process Automation 自动操作 Excel相关推荐

  1. 如何使用SAP Intelligent Robotic Process Automation自动操作Excel

    今天是鼠年正月十二.这是Jerry鼠年的第11篇文章,也是汪子熙公众号总共第210篇原创文章. 之前Jerry的文章 使用ABAP操作Excel的几种方法,介绍的是通过ABAP这门编程语言去操作Exc ...

  2. 如何下载SAP Intelligent Robotic Process Automation相关的软件

    官网链接:https://launchpad.support.sap.com/#/softwarecenter/search/Intelligent%2520Robotic%2520Process%2 ...

  3. 如何在SAP云平台上启用SAP Intelligent Robotic Process Automation - IRPA

    要获取更多Jerry的原创文章,请关注公众号"汪子熙":

  4. SAP Intelligent Robotic Process Automation权限控制

    要获取更多Jerry的原创文章,请关注公众号"汪子熙":

  5. 什么是SAP Intelligent Robitic Process Automation - iRPA

    所谓智慧企业,一个特征就是具备将复杂但低附加值的重复流程通过自动化的方式完成的能力.通过自动化,从而将宝贵的人力资源投入到更高附加值的工作中去,比如提供产品和服务的品质,提升用户体验.SAPGUI时代 ...

  6. RPA - Robotic process automation (机器人流程自动化)

    RPA(机器人流程自动化) RPA机器人流程自动化(Robotic process automation):能够代替或者协助人类在计算机.RPA手机等数字化设备中完成重复性工作与任务. 预先设计好使用 ...

  7. RPA(Robotic Process Automation)的概要介绍

    最近因为公司业务的需要,开始关注RPA的内容,奈何国内相关的信息太少,只能硬着头皮啃英文了. 下面记录的内容作为学习笔记,有不对的地方请大家指教. 首先RPA(Robotic Process Auto ...

  8. RPA机器人流程自动化(Robotic process automation)

    RPA机器人流程自动化(Robotic process automation):能够代替或者协助人类在计算机.RPA手机等数字化设备中完成重复性工作与任务.

  9. 【AI写作】 机器人流程自动化 介绍 - Robotic Process Automation (RPA) Introduction

    写一篇文章介绍RPA技术,未来的发展.使用markdown格式,有3级索引,超过3000字. 某位大师说过的: 任何行业.任何部门都有大量的场景,涉及重复.有规则逻辑的工作,都可以用 RPA 开发一个 ...

最新文章

  1. 用Duplex实现消息广播
  2. 为什么国内流行的 MyBatis ,国外 Java 工程师却不愿意使用?
  3. 阿里云服务器 宝塔面板 配置Python项目
  4. OpenGL ES for Windows Mobile
  5. 我的天!史上最烂的项目:苦撑12年,600多万行代码...
  6. glassfish hk2_使用GlassFish 3.1.2.2和Primefaces 3.4的JDBC领域和基于表单的身份验证
  7. html 语义化标签拾遗
  8. 泸州田家炳中学2021高考成绩查询,2021年泸州中考线出来了吗
  9. C# 中的 is 和 as 运算符 简单举例说明
  10. Java 蓝桥杯 矩阵乘法
  11. Python使用pyechart绘制3d散点图
  12. 软件需求与分析课堂讨论
  13. 客户端浏览器Chrome过早断开连接导致Nginx报400错误的解决办法
  14. 2019年6月多校联训b层——搜索算法 Problem A 宽搜 营救
  15. 谷歌推出3D社区“Lively” 挑战第二人生(组图)
  16. stm32以中断方式扫描矩阵键盘
  17. Android图形绘制之——简单的几何图形
  18. Signing for ‘xxx‘ requires a development team.
  19. 【C语言】打印乘法口诀表
  20. Linux(centos7) 安装配置gitlab-runner

热门文章

  1. 流媒体服务器——Licode Janus-gateway Mediasoup Medooze 分析
  2. Altera Scatter-Gather DMA (SG-DMA)的简单使用
  3. Python:新式类和旧式类
  4. char[4]转int或int转char
  5. 学计算机做人需要有什么基础,计算机专业学生装逼入门(文/郭策)
  6. matlab拉氏变换求解转移矩阵eAt
  7. Ionic+cordova+angularJS 项目实现IPhone 下拉框滚动效果
  8. c语言编程一张纸对折,关于一张纸的对折问题
  9. plc模拟量与通信控制应用实践_电气控制基础+PLC编程入门+工程应用实例
  10. 2019 浙江省赛部分题解(The 16th Zhejiang Provincial Collegiate Programming Contest Sponsored by TuSimple)