今天是鼠年正月十二。这是Jerry鼠年的第11篇文章,也是汪子熙公众号总共第210篇原创文章。
之前Jerry的文章 使用ABAP操作Excel的几种方法,介绍的是通过ABAP这门编程语言去操作Excel的方法。
除了编程语言之外,SAP新发布的SAP Intelligent Robotic Process Automation(简称SAP iRPA),提供了强大的企业级自动化流程解决方案,善加利用,可以在不需要编程的情况下,像使用编程语言一样灵活地操作Excel.
我们来看个具体而又简单的例子,用SAP Intelligent Robotic Process Automation操作一个Excel文件,往里面的单元格写入一个字符串,设置背景色然后关闭。
在动手做这个例子之前,你也许需要先阅读这两篇文章,以了解SAP iRPA的上下文。
* [SAP智能机器人流程自动化解决方案](SAP智能机器人流程自动化解决方案)
* [使用SAP iRPA Studio创建的本地项目,如何部署到SAP云平台上?](使用SAP iRPA Studio创建的本地项目,如何部署到SAP云平台上?)
打开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的几种方法**](使用ABAP操作Excel的几种方法) 中提到的第一种方法,即通过OLE方式操作Excel是一致的。
如果非要刨根究底,可以到SAP iRPA SDK安装目录下,打开excel.js文件,找到open方法的实现,发现其调用了_excelApp对象的WorkBooks.Open方法:
而_excelApp对象,在initialize方法里通过GetObject从OLE对象Excel.Application中获取:
还记得Jerry文章 [使用ABAP操作Excel的几种方法](使用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的处理任务。
至此,采用SAP技术操作Excel的方案大家族里,又增添了一位新的成员:SAP iRPA. 希望本文对大家开阔眼界有所帮助,感谢阅读。
更多阅读
* [Jerry的ABAP, Java和JavaScript乱炖](Jerry的ABAP, Java和JavaScript乱炖)
* [ABAP开发人员未来应该学些什么](ABAP开发人员未来应该学些什么)
* [Jerry 2017年的五一小长假:](Jerry 2017年的五一小长假:8种经典排序算法的ABAP实现)[8种经典排序算法的ABAP实现](Jerry 2017年的五一小长假:8种经典排序算法的ABAP实现)
* [Jerry的ABAP原创技术文章合集](Jerry的ABAP原创技术文章合集)
* [300行ABAP代码实现一个最简单的区块链原型](300行ABAP代码实现一个最简单的区块链原型)
* [使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise系统里的函数](使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise系统里的函数)
* [在SAP云平台的CloudFoundry环境下消费ABAP On-Premise OData服务](在SAP云平台的CloudFoundry环境下消费ABAP On-Premise OData服务)
* [ABAP vs Java, 蛙泳 vs 自由泳](ABAP vs Java, 蛙泳 vs 自由泳)
* [聊聊C语言和ABAP](聊聊C语言和ABAP)
* [动手使用ABAP Channel开发一些小工具,提升日常工作效率](动手使用ABAP Channel开发一些小工具,提升日常工作效率)
* [我用ABAP做过的那些无聊的事情](我用ABAP做过的那些无聊的事情)
* [不喜欢SAP GUI?](不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧)[那试试用Eclipse进行ABAP开发吧](不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧)
* [使用Visual Studio Code编写和激活ABAP代码](使用Visual Studio Code编写和激活ABAP代码 (上))
* [你的ABAP程序给佛祖开过光么?](你的ABAP程序给佛祖开过光么?来试试Jerry这个小技巧)[来试试Jerry这个小技巧](你的ABAP程序给佛祖开过光么?来试试Jerry这个小技巧)
* [在SAP云平台ABAP编程环境上编写第一段ABAP程序](在SAP云平台ABAP编程环境上编写第一段ABAP程序)
* [SAP官方发布的ABAP编程规范](SAP官方发布的ABAP编程规范)
* [ABAP Code Inspector那些隐藏的功能,您都知道吗?](ABAP Code Inspector那些隐藏的功能,您都知道吗?)
* [还在用ABAP进行SAP产品的二次开发?来了解下这种全新的二次开发理念吧](还在用ABAP进行SAP产品的二次开发?来了解下这种全新的二次开发理念吧)
* [ABAP Netweaver体内的那些寄生式编程语言](ABAP Netweaver体内的那些寄生式编程语言)
* [从SAP社区上的一篇博客开始,聊聊SAP产品命名背后的那份情怀](从SAP社区上的一篇博客开始,聊聊SAP产品命名背后的那份情怀)
* [云端的ABAP Restful服务开发](云端的ABAP Restful服务开发)
* [如何在SAP云平台ABAP编程环境里把CDS view暴露成OData服务](如何在SAP云平台ABAP编程环境里把CDS view暴露成OData服务)
* [使用abapGit在ABAP On-Premises系统和SAP云平台ABAP环境之间进行代码传输](使用abapGit在ABAP On-Premises系统和SAP云平台ABAP环境之间进行代码传输)
* [30分钟用Restful ABAP Programming模型开发一个支持增删改查的Fiori应用](30分钟用Restful ABAP Programming模型开发一个支持增删改查的Fiori应用)
* [Jerry带您了解Restful ABAP Programming模型系列之二:Action和Validation的实现](Jerry带您了解Restful ABAP Programming模型系列之二:Action和Validation的实现)
* [Jerry带您了解Restful ABAP Programming模型系列之三:](Jerry带您了解Restful ABAP Programming模型系列之三:云端ABAP应用调试)[云端ABAP应用调试](Jerry带您了解Restful ABAP Programming模型系列之三:云端ABAP应用调试)
* [SAP云平台上的ABAP编程环境里如何消费第三方服务](SAP云平台上的ABAP编程环境里如何消费第三方服务)
* [ABAP开发者上云的时候到了 - 现在大家可以免费使用SAP云平台ABAP环境的试用版了](ABAP开发者上云的时候到了 - 现在大家可以免费使用SAP云平台ABAP环境的试用版了)
* [学而不思则罔 - SAP云平台ABAP编程环境的由来和适用场景](学而不思则罔 - SAP云平台ABAP编程环境的由来和适用场景)
* [SAP云平台里的三叉戟应用](SAP云平台里的三叉戟应用)
* [如何基于Restful ABAP Programming模型开发并部署一个支持增删改查的Fiori应用](如何基于Restful ABAP Programming模型开发并部署一个支持增删改查的Fiori应用)
* [SAP 2019 TechEd Key Note解读:云时代下SAP从业人员如何做二次开发?](SAP 2019 TechEd Key Note解读:云时代下SAP从业人员如何做二次开发?)
* [有哪些ABAP关键字和语法,到了ABAP云环境上就没办法用了?](有哪些ABAP关键字和语法,到了ABAP云环境上就没办法用了?)
* [ABAP开发环境终于支持以驼峰命名法自动格式化ABAP变量名了](ABAP开发环境终于支持以驼峰命名法自动格式化ABAP变量名了)
* [利用ABAP 740的新关键字REDUCE完成一个实际工作任务](利用ABAP 740的新关键字REDUCE完成一个实际工作任务)
* [一段让人瑟瑟发抖的ABAP代码](一段让人瑟瑟发抖的ABAP代码)
* [昨日万圣节ABAP怪兽级代码谜团,公布答案啦](昨日万圣节ABAP怪兽级代码谜团,公布答案啦)
* [介绍一种在ABAP内核态进行内表高效拷贝的方法](介绍一种在ABAP内核态进行内表高效拷贝的方法,和对应的Java和JavaScript版本的伪实现)
* [使用SAP Cloud Application Programming模型开发OData的一个实际例子](使用SAP Cloud Application Programming模型开发OData的一个实际例子)
* [当ABAP遇见普罗米修斯](当ABAP遇见普罗米修斯)
* [使用ABAP绘制可伸缩矢量图](使用ABAP绘制可伸缩矢量图(SVG))
* [ABAP开发环境语法高亮的那些事儿](ABAP开发环境语法高亮的那些事儿)
* [SAP错误消息调试之七种武器:](SAP错误消息调试之七种武器:让所有的错误消息都能被定位)[让所有的错误消息都能被定位](SAP错误消息调试之七种武器:让所有的错误消息都能被定位)
* [使用ABAP操作Excel的几种方法](使用ABAP操作Excel的几种方法)
* [SAP GUI里的收藏夹事务码管理工具](SAP GUI里的收藏夹事务码管理工具)
* [SAP GUI和Windows注册表](SAP GUI和Windows注册表)
* [有了Debug权限就能干坏事?小心了,你的一举一动尽在系统监控中](有了Debug权限就能干坏事?小心了,你的一举一动尽在系统监控中)
* [ABAP CCDEF, CCIMP, CCMAC, CCAU, CMXXX这些东东是什么鬼](ABAP CCDEF, CCIMP, CCMAC, CCAU, CMXXX这些东东是什么鬼)
* [实现ABAP条件断点的三种方式](实现ABAP条件断点的三种方式)
* [使用SAT跟踪监控从浏览器打开的SAP应用的性能和调用栈](使用SAT跟踪监控从浏览器打开的SAP应用的性能和调用栈)
相关推荐
开源的RPA(Robotic Process Automation,机器人流程自动化)库
机器人流程自动化(Robotic Process Automation,简称RPA)是一种通过软件机器人或虚拟助手来模拟人类在计算机上执行任务的技术。RPA的核心优势在于其能够自动化大量重复性、基于规则的任务,从而提高工作效率、减少...
该解决方案的核心是iRPA(Intelligent Robotic Process Automation),它与SAP Leonardo Conversation AI服务集成,实现智能化操作。 SAP iRPA不同于传统的自动化测试工具,如SAP脚本录屏和eCATT,它们局限于SAP ...
在《Automate this The business leader’s guide to robotic and intelligent automation》这一章节中,作者首先对自主机器人进行了定义。自主机器人是指能够在特定环境中独立完成任务的设备,这些设备通常被编程来...
智能机器人系统涉及设计、规划和控制的技术与理论,是系统科学与工程领域的重要分支。该系统所涵盖的内容广泛,旨在通过科学手段研究智能机器人的功能与结构,确保其能够执行复杂的任务,同时适应多变的环境。...
掌握这些知识点对于从事RPA(Robotic Process Automation)的开发者而言是至关重要的,因为他们需要依赖这类工具来设计和实现能够自动处理Excel工作表的流程。由于文档内容较多且包含专有信息,因此在实际应用这些...
UiPath是一款广泛应用于企业自动化领域的RPA(Robotic Process Automation)软件,它允许用户通过编程或者可视化的工作流程设计,实现对各种应用程序的自动化处理,包括SAP这种复杂的业务系统。 描述中提到的“通过...
在IT行业中,RPA(Robotic Process Automation)已经成为提升办公效率和自动化重复任务的重要工具。RPA技术允许通过编程方式模拟人类在应用软件中的交互,从而实现自动化处理各种业务流程。在“RPA办公自动化 第七讲...
在IT行业中,自动化工具的使用越来越广泛,UiPath作为一款领先的Robotic Process Automation(RPA)平台,尤其受到企业和专业人士的青睐。本压缩包“excel-automation-practices-demo.zip”显然是一个关于使用UiPath...
RPA(Robotic Process Automation)则是利用软件机器人来模拟人类在应用软件中的交互,实现业务流程自动化。本压缩包中的内容显然提供了一些VBA在RPA场景下的应用实例,帮助学习者理解如何用VBA与Excel和Word进行...
UIPath是一款强大的Robotic Process Automation(RPA)工具,它允许用户自动化重复性、规则化的业务流程,包括数据抓取和处理。在这个“uipath数据抓取和excel的Demo”示例中,我们将深入探讨如何利用UIPath来高效地...
在IT行业中,特别是自动化领域,UiPath是一款广受欢迎的Robotic Process Automation (RPA)工具,它能够模拟人类在应用程序中的交互,实现业务流程的自动化。"ArrayFindIndexWithLambdaExpressions00001"这个标题暗示...
Automagica 是一个开源智能机器人流程自动化(SRPA,Smart Robotic Process Automation)平台,借助 Automagica,自动化跨平台流程。Automagica套件由以下组件组成:Automagica Bot:负责执行自动化任务的运行时/...
以上内容主要涉及Automation Anywhere的Bot Insight组件,它是一个用于RPA(Robotic Process Automation)的智能分析工具。Bot Insight提供了对机器人操作的深入洞察,包括Operational Insights(操作洞察)和...
SapGUIScript DLL是SAP GUI自动化工具中的一个重要组件,特别在Automation Anywhere(AA)这个企业级的RPA(Robotic Process Automation)平台上扮演着关键角色。SAP GUI是SAP系统的图形用户界面,它允许用户与SAP...
【RPA之家】提供的【RPA之家转载视频教程3】主要涵盖了Excel自动化处理中的关键操作,包括"Insertu删除行"和"Insertu删除列",这些都是RPA(Robotic Process Automation)流程设计中常见的Excel处理技能。...
【RPA之家转载视频教程1】Automation Anywhere解释--Edureka-RPA Live-2.rar 这个压缩包文件提供了一套完整的RPA(Robotic Process Automation)学习资源,特别聚焦于Automation Anywhere这一全球领先的RPA平台。...
在本资源中,我们关注的是一个关于RPA(Robotic Process Automation)的视频教程,具体章节为“16.Extract JSON”。这个视频是AA(Automation Anywhere)平台的A2019版本的教学内容,主要讲解如何从REST Web服务响应...
在这个名为“【RPA之家转载AA视频教程】17.Extract JSON .rar”的压缩包文件中,包含了一个视频教程,该教程聚焦于使用Automation Anywhere(AA)平台进行RPA(Robotic Process Automation)操作,特别是如何从REST ...
机器人流程自动化(Robotic process automation,简称RPA)是以软件机器人及人工智能(AI)为基础的业务过程自动化科技。机器人流程自动化(RPA)系统是一种应用程序,它通过模仿最终用户在电脑的手动操作方式,...