天天看點

如何使用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智能機器人流程自動化解決方案

使用SAP iRPA Studio建立的本地項目,如何部署到SAP雲平台上?

打開SAP Intelligent Robotic Process Automation Desktop Studio,導入SAP預置的操作Excel的nodejs腳本庫檔案。

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

在庫檔案裡選擇Excel Integration. 從下圖能發現,SAP iRPA除了Excel之外,也支援Office裡其他應用比如Word和Outlook.

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

建立一個名叫jerryExcel的workflow,在工作流的activities面闆裡輸入seq,找到類型為Sequence的Flow控件。該控件允許我們在工作流裡定義一系列順序執行的步驟。

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

把Sequence控件拖拽到工作流編輯區域裡,輕按兩下,就可以定義需要執行的詳細步驟了。

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

Excel Lib裡預置了很多圍繞Excel進行的操作,如Init Excel,Open Excel,Close Excel等等,每個操作對應一段nodejs代碼。

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

比如把Init Excel拖拽到Sequence控件的Activities清單裡之後,一旦儲存,會立即看到自動生成的nodejs代碼。Excel Lib裡每個step,都對應一段nodejs代碼。如此一來,即使SAP Intelligent Robotic Process Automation Desktop Studio的使用者沒有程式設計基礎,也能開發出能操作Excel的自動化工作流。

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

上圖的Init Excel步驟是所有操作Excel的工作流都必須執行的一個初始化步驟。初始化完畢後,把Open Excel這個步驟拖拽到Sequence Activities裡,指定要打開的Excel檔案路徑,在Desktop Studio裡有紅色提示。

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

把本地Excel檔案的絕對路徑維護進去:

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

第三步,設定打開的Excel第1行,第1列的值為’Hello Jerry’:

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

第四步,設定第1行第1列的背景色:

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

将修改之後的Excel另存成另一個檔案。執行這個項目,就會在temp檔案夾裡看到另一個Excel檔案。

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

這個例子非常簡單,讓我們來看看它的工作原理。

切換到Script面闆,在第45行打開Excel的代碼處設定斷點,然後單步調試:

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

斷點一旦觸發,我們能觀察到工作列裡出現一個Excel的應用視窗提示,沒有顯示任何内容:

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

在任務管理器能看到該應用通過參數**/automation -Embedding**的方式啟動:

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

我們想單步調試進ctx.excel.file.open方法内,發現斷點并沒有在open方法内停下來,而是直接執行完這個方法,此時工作列上的應用标題從Excel更換成了open方法打開的檔案名:1.xlsx.

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

從以上任務管理器裡觀察到的/automation和embedding參數,我們已經能判斷出,SAP iRPA操作Excel的實作原理,和Jerry文章 使用ABAP操作Excel的幾種方法 中提到的第一種方法,即通過OLE方式操作Excel是一緻的。

如果非要刨根究底,可以到SAP iRPA SDK安裝目錄下,打開excel.js檔案,找到open方法的實作,發現其調用了_excelApp對象的WorkBooks.Open方法:

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

而_excelApp對象,在initialize方法裡通過GetObject從OLE對象Excel.Application中擷取:

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

還記得Jerry文章 使用ABAP操作Excel的幾種方法 裡提到的ABAP OLE實作源代碼麼?也是采用同樣的方式擷取Excel應用對象,連編碼方式都如出一轍。

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

既然已經聊到JavaScript操作Excel的話題了,就順便提一句,目前另一種流行的JavaScript操作Excel的開源庫,即Node-xlsx,原理是基于Office Open XML協定去解析Excel檔案,ABAP也有對應的基于Office Open XML的實作:CL_XLSX_DOCUMENT.

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

這種方式較之SAP iRPA采用的OLE解決方案,優勢在于避免了對Excel應用的依賴,多用于伺服器端對Excel的處理任務。

至此,采用SAP技術操作Excel的方案大家族裡,又增添了一位新的成員:SAP iRPA. 希望本文對大家開闊眼界有所幫助,感謝閱讀。

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

更多閱讀

Jerry的ABAP, Java和JavaScript亂炖

ABAP開發人員未來應該學些什麼

Jerry 2017年的五一小長假:8種經典排序算法的ABAP實作

Jerry的ABAP原創技術文章合集

300行ABAP代碼實作一個最簡單的區塊鍊原型

使用Java+SAP雲平台+SAP Cloud Connector調用ABAP On-Premise系統裡的函數

在SAP雲平台的CloudFoundry環境下消費ABAP On-Premise OData服務

ABAP vs Java, 蛙泳 vs 自由泳

聊聊C語言和ABAP

動手使用ABAP Channel開發一些小工具,提升日常工作效率

我用ABAP做過的那些無聊的事情

不喜歡SAP GUI?那試試用Eclipse進行ABAP開發吧

使用Visual Studio Code編寫和激活ABAP代碼

你的ABAP程式給佛祖開過光麼?來試試Jerry這個小技巧

在SAP雲平台ABAP程式設計環境上編寫第一段ABAP程式

SAP官方釋出的ABAP程式設計規範

ABAP Code Inspector那些隐藏的功能,您都知道嗎?

還在用ABAP進行SAP産品的二次開發?來了解下這種全新的二次開發理念吧

ABAP Netweaver體内的那些寄生式程式設計語言

從SAP社群上的一篇部落格開始,聊聊SAP産品命名背後的那份情懷

雲端的ABAP Restful服務開發

如何在SAP雲平台ABAP程式設計環境裡把CDS view暴露成OData服務

使用abapGit在ABAP On-Premises系統和SAP雲平台ABAP環境之間進行代碼傳輸

30分鐘用Restful ABAP Programming模型開發一個支援增删改查的Fiori應用

Jerry帶您了解Restful ABAP Programming模型系列之二:Action和Validation的實作

Jerry帶您了解Restful ABAP Programming模型系列之三:雲端ABAP應用調試

SAP雲平台上的ABAP程式設計環境裡如何消費第三方服務

ABAP開發者上雲的時候到了 - 現在大家可以免費使用SAP雲平台ABAP環境的試用版了

學而不思則罔 - SAP雲平台ABAP程式設計環境的由來和适用場景

SAP雲平台裡的三叉戟應用

如何基于Restful ABAP Programming模型開發并部署一個支援增删改查的Fiori應用

SAP 2019 TechEd Key Note解讀:雲時代下SAP從業人員如何做二次開發?

有哪些ABAP關鍵字和文法,到了ABAP雲環境上就沒辦法用了?

ABAP開發環境終于支援以駝峰命名法自動格式化ABAP變量名了

利用ABAP 740的新關鍵字REDUCE完成一個實際工作任務

一段讓人瑟瑟發抖的ABAP代碼

昨日萬聖節ABAP怪獸級代碼謎團,公布答案啦

介紹一種在ABAP核心态進行内表高效拷貝的方法

使用SAP Cloud Application Programming模型開發OData的一個實際例子

當ABAP遇見普羅米修斯

使用ABAP繪制可伸縮矢量圖

ABAP開發環境文法高亮的那些事兒

SAP錯誤消息調試之七種武器:讓所有的錯誤消息都能被定位

使用ABAP操作Excel的幾種方法

SAP GUI裡的收藏夾事務碼管理工具

SAP GUI和Windows系統資料庫

有了Debug權限就能幹壞事?小心了,你的一舉一動盡在系統監控中

ABAP CCDEF, CCIMP, CCMAC, CCAU, CMXXX這些東東是什麼鬼

實作ABAP條件斷點的三種方式

使用SAT跟蹤監控從浏覽器打開的SAP應用的性能和調用棧