天天看點

一個智能機器人流程自動化解決方案

本文是2020年第14篇原創文章,也是汪子熙公衆号總共第197篇原創文章。

今天這篇文章的主題是機器人(Robot).

Jerry看過的第一部機器人主題的電影,就是大神詹姆斯-卡梅隆的神作《終結者II》,裡面的T1000一度成為我的童年陰影。

幾個月前我才欣賞完最新上映的終結者:黑暗命運(Dark Fate),又一部收割終結者粉絲情懷的續作。

當看到白發蒼蒼的琳達·漢密爾頓飾演的莎拉·康納穿越了28年漫長的歲月,以終結者迷最熟悉的風格重新出現在熒屏上時,我竟有些情不能自已。

下圖是Linda Hamilton在1991年《終結者II》裡的劇照:

下面是她2019年最新的《終結者:黑暗命運》裡的造型,雖然已經年過花甲,依然霸氣十足。

當我看見螢幕上州長扮演的T800在這一部裡說出了“I won't be back”的時候,我才真正意識到,州長老了,這應該是他飾演終結者的最後一部作品。國内絕大多數八零後,應該都是從《終結者II》開始接觸這個系列的。八零後們觀看着阿諾德·施瓦辛格出演的一部又一部終結者,也從懵懵懂懂的國小生,到一晃就步入到今天的四十不惑。

伴随着I won't be back這句話,不會再回來的,除了州長以外,還有八零後的青春。

曾經和一位同樣是科幻迷的好友吹牛,他問我,假設世界末日不可避免地來臨,你有三個選擇,去往異形,生化危機和天網終結者的末世,你選擇哪一個?

Jerry不加思索地回答:當然是最後一個。身為一個程式員,被人工智能程式殺死,也算死得其所。

終結者系列構造的世界觀裡,人類和以天網為核心的人工智能程式無法共存,雙方不是你死就是我活。而在現實世界裡,基于人工智能的機器人流程自動化則是智慧企業的好助手。

所謂智慧企業,一個特征就是具備将複雜但低附加值的重複流程通過自動化的方式完成的能力。通過自動化,進而将寶貴的人力資源投入到更高附加值的工作中去,比如提供産品和服務的品質,提升使用者體驗。

對于ABAP老司機們來說,SAP腳本錄屏和SAP eCATT(extended Computer Aided Test Tool) 都是進行功能自動化測試的利器,可惜其隻能工作在SAP GUI環境下面。

随着全球企業數字化轉型的趨勢繼續加深,湧現了一大批智慧機器人流程自動化(Intelligent Robotic Process Automation,簡稱為iRPA)解決方案的供應商,比如這個領域的領頭羊UIpath,Blueprism,AutomotionAnywhere,以及國内的供應商藝賽旗、UiBot、弘玑Cyclone 、雲擴科技等。

就在去年,SAP也釋出了自己的iRPA解決方案:

該解決方案基于SAP雲平台CloudFoundry環境,支援雲端部署,通過編寫,排程,管理和監控機器人工作流,來完成原本需要通過人工進行的重複性操作。SAP iRPA的智能化,展現在其與SAP Leonardo Conversation AI服務的無縫內建。除了iRPA解決方案本身之外,SAP也釋出了預定義好的基于SAP多款産品,比如S/4HANA的智能機器人流程腳本,幫助客戶加速實作企業流程自動化。

與很多RPA解決方案采用基于錄屏的實作原理不同,SAP iRPA基于API和中繼資料實作機器人自動操作,從根源上避免了産品界面更改之後造成原有流程腳本不工作的可能性。

下面就跟着Jerry一起,從一個Hello World項目開始了解SAP iRPA.

我這個例子的場景很簡單,用SAP iRPA驅動本地電腦裡的電腦應用,自動點選4 + 2 = 這幾個按鈕。至于SAP iRPA如何驅動S/4HANA跑一些自動化流程,留待将來研究。

先看這個例子的demo,該視訊示範了如何單步調試用SAP iRPA開發出的機器人自動化腳本。

到SAP官網下載下傳這個場景需要的兩個工具:

SAP Intelligent Robotic Process Automation Desktop Studio和SAP Intelligent Robotic Process Automation Desktop Agent.

https://launchpad.support.sap.com/#/softwarecenter/search/Intelligent%2520Robotic%2520Process%2520Automation

顧名思義,Studio就是機器人開發工具,而Agent就是機器人程式的運作環境。

首先打開Studio,建立一個應用。這個應用就是我期望被SAP iRPA驅動的電腦應用,我稱之為宿主應用。

點選Add Application後,從下拉清單裡選擇UIAutomation,這個清單代表SAP iRPA通過何種底層技術,去識别,連接配接并驅動宿主應用。

本地打開Windows自帶的電腦應用calc.exe, 在SAP iRPA裡重新整理,就能看到這個應用對應的程序了。

在程序清單裡選中Calculator,右邊的預覽視窗立即能看到其界面。點選Save and Capture Page,這樣SAP iPRA就同電腦應用建立起連接配接了。

始終記住我們的目标是用SAP iRPA實作電腦應用上的按鈕點選,是以首先得定位到電腦上的4, + , 2和=這幾個按鈕。

到目前為止,SAP iRPA裡的電腦是一個空的頁面,點選Capture a New Page:

按住Ctrl鍵不放,把滑鼠放到電腦應用上,SAP iRPA會智能的識别出這個電腦應用視窗的句柄:pWindowCalculator, 此時點選Scan And Capture:

注意看,此時左邊的Calculator節點下面,出現了剛剛捕捉的視窗句柄pWindowCalculator, 且螢幕中間區域出現了電腦應用的界面。

我們輕按兩下4這個按鈕:

現在4這個按鈕也出現在螢幕左邊的樹狀結構裡了,這代表4這個按鈕也被我們标注為需要被SAP iRPA操作的UI元素了。

對剩下的+,2,=這幾個按鈕重複上述的操作,完成之後界面如下。

下面我們需要基于這幾個捕捉好的按鈕動手編寫一些邏輯了。

切換到工作流視圖,建立一個新的工作流Workflow:

工作流建立好之後,隻有一個預設的開始節點:

在工作流編輯頁面的右邊,有一個Activities面闆,我們之前捕捉好的整個電腦應用就維護在内。把這個電腦應用的UI拖拽到工作流編輯頁面裡:

此時輕按兩下這個電腦應用的UI,就可以對其内UI元素進行編輯了。

在Activities面闆裡,找到Click這個動作,将其依次拖拽到螢幕正中的4,+,2和=這幾個按鈕上。

拖拽結束後,這幾個按鈕上顯示了對應被點選的序号和Click事件的名稱。

至此,我們完成了機器人的模組化工作。從過程可以看出,即使模組化人員不具備程式設計功底,也能順利完成這個任務。

我們還需要點選Build按鈕,生成運作時代碼。

Build按鈕點選後,出現一個node.exe的運作界面,暗示我們SAP iRPA底層運作基于nodejs.

Build完成後,我們能看到自動生成的機器人腳本代碼。正如侯捷老師所言,“源碼面前,了無秘密”,通過閱讀自動生成的JavaScript源代碼,我們可以把SAP iRPA的工作原理同另一個流行的浏覽器自動化測試架構Selenium做一個類比:二者都是定位到應用界面的某一進制素後,調用元素對應的方法,而差異在于,Selenium通過web應用頁面标簽的ID來定位元素,而本例中的SAP iRPA通過UIAutomation來定位電腦應用的按鈕。

從上圖看出,SAP iRPA自動生成的JavaScript腳本可以單步調試。點選Debug按鈕,彈出了SAP iRPA調試器。

如果之前設定了斷點,現在就可以像調試一般JavaScript代碼一樣,進行單步調試了:

當然,SAP iRPA能做的事情遠遠不止這個Hello World這麼簡單,其最有價值之處,還是在于基于SAP Cloud Platform的雲端部署,以及與SAP标準産品的無縫內建。Jerry後續有機會,會繼續介紹。

謹以《終結者II》結尾的最後一段台詞結束這篇文章:

"The unknown future rolls toward us. I face it, for the first time, with a sense of hope. Because if a machine, a terminator, can learn the value of human life, maybe we can too" - Sarah Connor

不可知的未來在我們面前展開,我頭一次充滿希望地面對它。因為如果一台機器,一個終結者都能夠學到人類生命的價值,也許我們也能辦得到 - 莎拉·康納

本文來自雲栖社群合作夥伴“汪子熙”,了解相關資訊可以關注微信公衆号"汪子熙"。

繼續閱讀