本文是2020年第14篇原创文章,也是汪子熙公众号总共第197篇原创文章。
今天这篇文章的主题是机器人(Robot).
Jerry看过的第一部机器人主题的电影,就是大神詹姆斯-卡梅隆的神作《终结者II》,里面的T1000一度成为我的童年阴影。
当看到白发苍苍的琳达·汉密尔顿饰演的莎拉·康纳穿越了28年漫长的岁月,以终结者迷最熟悉的风格重新出现在荧屏上时,我竟有些情不能自已。 下图是Linda Hamilton在1991年《终结者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 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. launchpad.support.sap.com/#/softwarec…
顾名思义,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
不可知的未来在我们面前展开,我头一次充满希望地面对它。因为如果一台机器,一个终结者都能够学到人类生命的价值,也许我们也能办得到 - 莎拉·康纳
要获取更多Jerry的原创文章,请关注公众号"汪子熙":