机器人过程自动化(RPA)是当今最热门的企业技术之一。这是怎么一回事呢?本文将简要介绍RPA,并解释它如何集成低代码应用程序平台。
接下来是关于领先的RPA平台UiPath入门的实用教程,以及它如何与捷得(Joget)开源无代码/低代码应用程序平台集成。本教程将分为3部分:
第1部分:开始使用UiPath
第2部分:Joget入门
第3部分:将UiPath与Joget集成
RPA简介
什么是机器人过程自动化(RPA)?
机器人过程自动化(RPA)是业务流程自动化的一种形式,它部署模拟用户与计算机交互方式的“机器人”或软件代理。这些机器人被编程或配置为操纵用户界面(UI)而不是人。现代RPA平台包括人工智能(AI)和机器学习功能,可处理大批量,可重复的任务和交易。例如,RPA机器人可以登录到应用程序,输入数据,执行一些计算,完成一些任务然后退出。
RPA与宏或脚本有何不同?
在这一点上,你可能会认为这听起来很熟悉。这些与旧式宏(例如Microsoft Excel中使用的宏),脚本,屏幕抓取或桌面录制类似吗?从某种意义上说,是的,但您可以将RPA机器人视为为企业使用而扩展的下一代宏。例如:
RPA平台可以在企业范围内管理,监控和审计机器人,而不是仅在单台机器上运行的旧的基于桌面的方法。
RPA机器人可以自动执行并一次与多个应用程序交互,而不是绑定在特定应用程序中。
RPA机器人可以结合AI和机器学习来适应甚至处理异常。
有关差异的更多信息,请访问
https://www.uipath.com/blog/whats-the-difference-between-robots-and-macros
https://www.linkedin.com/pulse/how-robotics-process-automation-rpa-different-graham-ferguson/
为什么使用RPA以及它如何补充低代码应用程序平台
实施RPA平台有许多好处,例如:
允许更快速有效地完成现有流程
为手动和重复性任务节省成本
减少错误并确保更可预测的处理时间,以符合法规和标准
在您公司的数字化转型战略中,RPA将扮演至关重要的角色。但是,重要的是要了解RPA并非适用于所有情况,并且不能完全取代人力资源。RPA最适用于可重复的流程,尤其是在从传统软件和系统迁移过于困难或成本过高的情况下。它不是改变现有的业务流程,而是通过自动化提高它们的效率。
但是,如果您的旧系统无法提供足够的功能或者不够稳定以支持您当前和未来的需求,会发生什么?在许多情况下,对业务运营方式进行现代化是至关重要的,因此必须进行重新规划。重新规划意味着在现代平台上重新开发软件应用程序,因为旧的遗留系统已不再适用。
这就是低代码应用程序平台作为RPA的理想补充。像捷得(Joget)这样的低代码平台提供了一种可视化和快速构建企业Web应用程序和重新设计业务流程的方法。理想情况下,您将拥有两全其美的优势,这些新的低代码应用程序可与RPA配合使用,以与传统和外部系统集成。新应用程序可以引入转型和更优化的业务流程,同时与RPA机器人集成以自动化现有业务流程。
教程第1部分:UiPath入门
UiPath概述
UiPath是领先的RPA供应商之一,被公认为“Forrester Wave™:机器人过程自动化,2018年第二季度”报告的领导者。
UiPath由3个主要组件组成:
UiPath Studio: UI工具来可视化地设计要自动化的流程
UiPath Orchestrator: 管理所有机器人和流程的创建、监视和部署的Web应用程序
UiPath Robot: 运行在UiPath Studio中构建的进程。在实际机器中安装和执行的执行代理。
简而言之,它是这样工作的:
在开发人员PC中使用UiPath Studio可视化地设计流程,
将流程发布/部署到要管理、计划和监视的UiPath编制器。
实际过程本身由安装在各自机器中的UiPath机器人执行。
UiPath概念和术语
下面是UiPath中的一些基本概念和术语,您应该在以后的教程中熟悉它们:
Machine: 表示机器人执行的实际机器
Environment: 环境是一组机器人,用于部署流程
Package: 发布的UiPath Studio项目
Process: 流程表示包和环境之间的关联。每次将一个包部署到一个环境中,它都会自动分布到属于该环境的所有机器上。
Job:作业是在一个或多个机器人上执行一个进程。
还有一些更高级的概念,本教程中不会用到,比如:
Library: 流程库描述了可用于共享的可重用活动系统
Schedule: 允许以预先计划的方式执行作业
Asset: 通常表示可在不同项目中使用的共享变量或凭据。
Queue: 存储多种类型数据的地方,如发票信息或客户详细信息。
步骤1:注册UiPath云平台
让我们在https://www.uipath.com/platform-trial注册一个帐户。有一个社区计划是免费的,我们点击 Choose Community。
使用社交账号或电子邮件注册,注册后你将被带到仪表盘上
https://platform.uipath.com.
service表示公司中的部署。默认服务已经创建,例如DemoDefault。
点击服务名称就可以打开 UiPath Orchestrator web中控应用程序.
骤2: 安装 UiPath Studio 和 UiPath Robot
从资源中心下载UiPathStudio安装程序(uipathstudiosetu .exe),并将其安装到目标计算机上。有关UiPath Studio的更多信息,请参阅UiPath Studio指南。
安装完成之后, 从window菜单中启动并激活 UiPath Studio. 社区版本可以免费激活.
步骤3: 登录 UiPath Robot and 获得计算机名称
在Windows开始菜单中,搜索UiPath Robot并启动它
点击齿轮按钮打开 Orchestrator Settings 窗口, 然后复制当前设备名称(Machine Name).
步骤4: 获取Machine Key
回到UiPath Orchestrator 中控系统, 在Machines menu中创建一个新的 Machine
重要: 确保name和之前在UiPath Orchestrator Settings 显示的Machine Name 匹配
点击数据右侧的三个小点 , 查看Machine详细信息然后复制 Machine Key.
步骤5: 将Robot连接到Machine上
在 UiPath Robot 应用程序中, 点击齿轮按钮,打开 Orchestrator Settings.
填写 Orchestrator URL (https://platform.uipath.com UiPath Cloud 平台) 和之前复制的Machine Key , 接着点击 Connect.
连接成功之后, 在界面底部你应该会看到 “Status: Robot unavailable” 字样
将鼠标悬停在该消息上,您应该会看到“Robot不可用”的原因。这条消息意味着机器连接是有效的,所以现在是时候创建一个机器人了。如果您看到一个不同的原因,那么您的配置中可能有一个错误,所以您需要再次检查您的设置.
步骤6: 创建一个机器人
在 UiPath Orchestrator 系统中的 Robots 菜单下, 在Robots菜单下的UiPath编制器中,单击右上角的加号图标,接着 选择“standard robot that works on a single standard machine”.
将机器人分配给前面创建的机器.
设置 “Name”,在Domain\Username and Password 中填写Windows的登陆用户名和密码 (安装 UiPath Robot 的window).
步骤7: 将Robot添加到 Environment
接着, 我们需要将创建好的 Robot 添加到 Environment中. 在Robot菜单顶部选择Environments t选项卡 然后点击 Manage 选项.
选择之前创建的Robot 并点击 UPDATE.
这之后, Robot应该顺利连接到Machine了. 在 UiPath Robot Orchestrator Settings中查看状态,应该显示 “Connected, licensed”
步骤8: 启动一个 Job
现在机器人已经部署好了,是时候开始测试它了.
在 Jobs菜单下, 点击右上方的Play 按钮.
选择预先存在的 Demo Process(如果没有那就创建一个) 和之前创建的的Robot, 然后点击 Start.
在UiPath机器人中,它将显示“install package…”.一旦安装了包,它将显示“Job started processing”,这意味着进程已经启动。在这个演示过程中,将出现Hello弹出对话框.
Robot成功地执行了一个任务. 你可以在UiPath Orchestrator的 Monitoring 菜单中监控Robots 和 jobs.
步骤 9: 准备与UIPATH集成
2019年6月, UiPath引入了一种新的机制来使用它的云api.检索一些集成所需的信息需要几个步骤:
1. 获取Access 和 ID Tokens
1.1 生成Code Challenge 和Code Verifier
打开web浏览器,访问 visit https://repl.it/languages/nodejs 然后运行下面的代码:
function base64URLEncode(str) {
return str.toString('base64')
.replace(/\+/g, '-')
.replace(/\//g, '_')
.replace(/=/g, '');
}
function sha256(buffer) {
return crypto.createHash('sha256').update(buffer).digest();
}
console.log("Generating challenge and Verifier");
var cryptoResult = crypto.randomBytes(32);
var verifier = base64URLEncode(cryptoResult);
var challenge = base64URLEncode(sha256(verifier));
console.log("Code challenge: " + challenge)
console.log("Code verifier: " + verifier);
将 code challenge 和code verifier 的值记录下来,输出的结果会像这样:
Generating challenge and Verifier
Code challenge: RzYlHiiGzPGgOLaRQJYftZ1mmc3sCbeicZVRftTmC-A
Code verifier: YVMnLczXQgJ9dwzV7MlMWEjGyAia4nXvTZzU4UVrAPE
1.2 获取Authorization Code
将下下面URL中的 code challenge 替换成刚刚生成的,然后访问
https://account.uipath.com/authorize?response_type=code&nonce=b0f368cbc59c6b99ccc8e9b66a30b4a6&state=47441df4d0f0a89da08d43b6dfdc4be2&code_challenge=[code_challenge]&code_challenge_method=S256&scope=openid+profile+offline_access+email &audience=https%3A%2F%2Forchestrator.cloud.uipath.com&client_id=5v7PmPJL6FOGu6RB8I1Y4adLBhIwovQN&redirect_uri=https%3A%2F%2Faccount.uipath.com%2Fmobile
浏览器应该会重定向到
https://account.uipath.com/mobile?code=[authorization_code]&state=47441df4d0f0a89da08d43b6dfdc4be2
将URl中的[authorization_code]记录下来
1.3 获取 Refresh Token
使用API测试工具 (例如 Postman),copy下面的body,替换[authorization_code] 和[code_verifier] 的值,然后提交一个POST请求到https://account.uipath.com/oauth/token
{
"grant_type": "authorization_code",
"code": "[authorization_code]",
"redirect_uri": "https://account.uipath.com/mobile",
"code_verifier": "[code_verifier]",
"client_id": "5v7PmPJL6FOGu6RB8I1Y4adLBhIwovQN"
}
从response中记录下refresh_token :
{
"access_token": "eyJ0eX...",
"refresh_token": "CBZcOD6vrP2FQ9qa8fuqDdfoEwnVPuR2Kp...",
"id_token": "eyJ0eX...",
"scope": "openid profile email offline_access",
"expires_in": 86400,
"token_type": "Bearer"
}
1.4 利用 Refresh Token 获取Access Token 和 ID
使用API工具,copy下面的body,替换[refresh_token] 的值,发送POST请求到
https://account.uipath.com/oauth/token
{
"grant_type": "refresh_token",
"client_id": "5v7PmPJL6FOGu6RB8I1Y4adLBhIwovQN",
"refresh_token": "CBZcOD6vrP2FQ9qa8fuqDdfoEwnVPuR2Kpz-hitbTAIzG"
}
从response 中记录下access_token 和id_token .
{
"access_token": "eyJ0eX...",
"id_token": "eyJ0eX...",
"scope": "openid profile email offline_access",
"expires_in": 86400,
"token_type": "Bearer"
}
2. 获取 UiPath Account, Service 和 Process Identifiers
2.1 获取 Account Logical Name(账户逻辑名)
使用API测试工具, 提交一个 GET 请求到
https://platform.uipath.com/cloudrpa/api/getAccountsForUser 附带一个 request header 为
Authorization: Bearer [id_token]
从 response 中复制 accountLogicalName:
{
"userEmail": "[email protected]",
"accounts": [
{
"accountName": "Demo",
"accountLogicalName": "Demo"
}
]
}
2.2 获取Service Instance Logical Name
使用API测试工具, 提交一个 GET 请求到
https://platform.uipath.com/cloudrpa/api/account/[accountLogicalName]/getAllServiceInstances
附带request header 为
Authorization: Bearer [id_token]
从 response 中 复制serviceInstanceLogicalName f:
[
{
"serviceInstanceName": "DemoDefault",
"serviceInstanceLogicalName": "DemoDefaultzous50676",
"serviceType": "ORCHESTRATOR",
"serviceUrl": "https://platform-community.azurewebsites.net"
}
]
2.3 获取所需流程的Release Key
现在我们需要检索Release Key,这是一个所需进程的惟一标识符. 使用API工具, 提交GET 请求到
https://platform.uipath.com/odata/Releases
附带的request header 为:
Authorization: Bearer [id_token]
从response中复制 Key 的值:
{
"@odata.context": "https://platform.uipath.com/odata/$metadata#Releases",
"@odata.count": 1,
"value": [
{
"Key": "b27c7363-459c-4520-bae5-660d4a1d3813",
"ProcessKey": "Demo_Process",
"ProcessVersion": "1.0.21",
"IsLatestVersion": false,
"IsProcessDeleted": false,
"Description": "Demo Process",
"Name": "Demo Process",
"EnvironmentId": 98069,
"EnvironmentName": "Demo Environment",
"InputArguments": null,
"QueueDefinitionId": null,
"QueueDefinitionName": null,
"Id": 120897,
"Arguments": {
"Input": null,
"Output": null
},
"ProcessSettings": null
}
]
}
2.4 调用 Orchestrator API 来测试一个 Job
到了这里, 确保你的手中有下面的数据:
refresh_token (Refresh Token)
access_token (Access Token)
serviceInstanceLogicalName (Service Instance Logical Name)
Key (Release Key)
让我们试着用API启动一个Job.
使用API工具 , 提交一个 POST 请求到
https://platform.uipath.com/odata/Jobs/UiPath.Server.Configuration.OData.StartJobs
附带两个request header ,分别为
Authorization: Bearer [access_token]X-UIPATH-TenantName:[serviceInstanceLogicalName]
还有个body:
{
"startInfo":
{ "ReleaseKey": "b27c7363-459c-4520-bae5-660d4a1d3813",
"Strategy": "All",
"RobotIds": [ ],
"JobsCount": 0,
"Source": "Manual"
}
}
如果成功,响应将如下所示,作业的状态显示在State属性中:
{
"@odata.context": "https://platform.uipath.com/odata/$metadata#Jobs",
"value": [
{
"Key": "e811bd29-26fb-4cc3-af91-7fd6308ca643",
"StartTime": null,
"EndTime": null,
"State": "Pending",
"Source": "Manual",
"SourceType": "Manual",
"BatchExecutionKey": "382e7a96-a5b9-4343-b258-26a80cf87f80",
"Info": null,
"CreationTime": "2019-06-12T08:02:03.2595408Z",
"StartingScheduleId": null,
"ReleaseName": "Demo Process",
"Type": "Unattended",
"InputArguments": null,
"OutputArguments": null,
"HostMachineName": null,
"HasMediaRecorded": false,
"Id": 10169582
}
]
}
教程第二部分 : 捷得(JOGET) 入门
捷得概览
Joget是一个开源的无代码/低代码应用程序平台,用于更快、更简单的数字转换。Joget将业务流程自动化、工作流管理和快速应用程序开发的优点结合在一个简单、灵活和开放的平台上。它具有可视化和基于web的功能,使非程序员能够随时随地即时构建和维护应用程序.
Joget Platform Architecture
按需注册Joget工作流
如果你已经安装了joget,你可以跳过这一步. 否则, 你可以 在joget平台的托管版本中注册并快速入门Joget Workflow On-Demand.
访问https://cloud.joget.cn/ 并点击 Sign Up Free 注册一个新的账号.
一旦您成功地验证了您的电子邮件,您将被链接到您自己运行的Joget工作流,您将能够在30分钟内可视化地构建一个完整的应用程序,而无需编写代码.
教程第三部分: UIPATH 与JOGET的集成
怎么与joget集成
UiPath 为集成提供了提供了 Orchestrator API .
最常用的函数是启动job Starting a Job, 它应该满足大多数用例.我们将在下面的集成教程中使用这个函数.
设计一个joget流程来启动UIPATH作业
由于UiPath Orchestrator API是一个带有JSON格式数据的REST API,所以我们可以使用Joget JSON工具来调用API.
在开始之前,确保您手边有以下关键的UiPath信息(从前面的UiPath集成教程中获得):
refresh_token (Refresh Token)
serviceInstanceLogicalName (Service Instance Logical Name)
Key (Release Key)
步骤1. 设计一个新的APP
首先, 在 Joget App Center 中点击 Design New App .
为App ID 和 App Name 填写对应的值, 然后点击 Save.
步骤 2. 设计一个新的流程
单击“Processes ”菜单,然后单击“ Design Process”按钮启动流程生成器 Process Builder。
设计一个包含两个工具的简单流程,如下所示.
将鼠标悬停在流程名称上方后,单击edit pencil图标. 输入合适的流程名称并创建3个工作流变量来存储来自UiPath API调用的响应值:
status
id_token
access_token
点击部署 Deploy.
步骤3. 配置第一个Tool 以获取UiPath Access Token
一旦部署了流程,关闭流程构建器。在process view页面中,选择Map Tools to Plugins选项卡.
单击第一个Tool的 Configure Plugin ,选择JSON tool,然后键入以下配置:
点击 Submit 保存.
步骤 4. 配置第二个 Tool 用Access Token 启动Job
点击第二个Tool 的 Configure Plugin,选择 JSON Tool, 然后键入以下配置:
在Store to Workflow变量下,将状态变量映射到响应JSON中的状态属性,即
好了. Joget 已经配置被为调用 UiPath Orchestrator API 来启动 job.
步骤 5.运行流程
现在,我们来测试一下流程. 点击顶部的 Run Process 按钮 , 然后在确认对话框中再次点击 Run Process.
一旦流程启动,这两个工具将按配置执行。要查看流程的结果,请导航到Monitor ->Completed Processes选择流程实例,您将看到两个工具被执行
单击每个活动以查看工作流变量的值,这些变量获取编排器API调用的结果。
如果您正在运行Joget on-premise,并且能够访问系统日志,那么如果启用了调试选项,您将能够看到工具请求和响应。如果使用Joget DX,,可以直接在web浏览器中传输日志 .
回到 UiPath Orchestrator 和 UiPath Robot 应用程序, 你仍然可以监控job的执行.
结论
本文介绍了机器人过程自动化(RPA)及其优点。我们还解释了RPA和低代码应用程序平台是如何相互补充的,通过使用低代码应用程序快速构建新的应用程序来进行流程再造,同时使用RPA与遗留系统和外部系统集成。
然后,我们介绍了如何开始使用UiPath和Joget的教程,然后介绍了如何集成UiPath和Joget。正如本教程所演示的,集成所需的大量工作是为UiPath编制器API准备身份验证机制。一旦所需的集成键可用,Joget中调用UiPath API本身的配置就非常简单了。