SAP 智能机器人流程自动化 (iRPA) 解决方案分享
著名典型《终结者》系列构造的世界观里,人类和以天网为核心的人工智能程序无法共存,双方不是你死就是我活。而在现实世界里,基于人工智能的机器人流程自动化则是智慧企业的好助手。
所谓智慧企业,一个特征就是具备将复杂但低附加值的重复流程通过自动化的方式完成的能力。通过自动化,从而将宝贵的人力资源投入到更高附加值的工作中去,比如提供产品和服务的品质,提升用户体验。
对于 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 的使用有一个最直观的理解。
版权声明: 本文为 InfoQ 作者【Jerry Wang】的原创文章。
原文链接:【http://xie.infoq.cn/article/8c62cba796c5394c2fd972a82】。文章转载请联系作者。
评论