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

Posted sap-jerry

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用SAP Intelligent Robotic Process Automation自动操作Excel相关的知识,希望对你有一定的参考价值。

今天是鼠年正月十二。这是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 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的处理任务。

至此,采用SAP技术操作Excel的方案大家族里,又增添了一位新的成员:SAP iRPA. 希望本文对大家开阔眼界有所帮助,感谢阅读。

技术图片

更多阅读

以上是关于如何使用SAP Intelligent Robotic Process Automation自动操作Excel的主要内容,如果未能解决你的问题,请参考以下文章

background intelligent transfer service启动问题

background intelligent transfer service 关闭这项服务有啥弊端?

产品命名算法

background intelligent transfer service怎么关闭

WIN7服务里的background intelligent transfer service启动不了

background intelligent transfer service 恢复中出现内部错误怎么办