著名典型《终结者》系列构造的世界观里,人类和以天网为核心的人工智能程序无法共存,双方不是你死就是我活。而在现实世界里,基于人工智能的机器人流程自动化则是智慧企业的好助手。
所谓智慧企业,一个特征就是具备将复杂但低附加值的重复流程通过自动化的方式完成的能力。通过自动化,从而将宝贵的人力资源投入到更高附加值的工作中去,比如提供产品和服务的品质,提升用户体验。
对于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和元数据实现机器人自动操作,从根源上避免了产品界面更改之后造成原有流程脚本不工作的可能性。
下面就跟着笔者一起,从一个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.
顾名思义,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标准产品的无缝集成,即企业级软件领域的集成和运用。
本文首先介绍了 SAP Intelligent Robotic Process Automation(iRPA) 的适用场景,接着用一个实际的例子,演示了如何编写 iRPA 程序同本地计算器应用进行交互的步骤,让初学者对 iRPA 的使用有一个最直观的理解。