UiPath Orchestrator接口(API)方式启动流程(作业)

UiPath Orchestrator接口(API)方式启动流程(作业)

以API的方式调用机器人开始作业

原文来自: How To Start A Job In PowerShell Using Orchestrator API Endpoints?

中文互联网上似乎没有找到相关资料,有一篇似乎是以前的,现在不适用了,故写下本文。



前言

所有接口调试基于Postman
需要用到的接口:{ {url}}为:https://cloud.uipath.com/用户名/租户名,如:https://cloud.uipath.com/admin/DefaultTenant

  1. https://cloud.uipath.com/identity_/connect/token
  2. { {url}}/orchestrator_/odata/Folders
  3. { {url}}/orchestrator_/odata/Folders/UiPath.Server.Configuration.OData.GetMachinesForFolder(key={ {folderID}})
  4. { {url}}/orchestrator_/odata/Robots/UiPath.Server.Configuration.OData.GetConfiguredRobots
  5. { {url}}/orchestrator_/odata/Releases
  6. { {url}}/orchestrator_/odata/Jobs/UiPath.Server.Configuration.OData.StartJobs

一、概述

使用指定文件夹下的指定机器上的指定的机器人执行指定流程(作业)

  • OC上启用External Applications(外部应用);
  • 通过External Applications获取到access_token
  • 通过access_token查询到文件夹Id、机器(设备)Id、机器人Id

二、详细步骤

1.在OC上新建External Applications

  1. 点击Admin-External Applications-Add Application
    新建App
  2. 输入app名称;
    选择加密应用(也可以选择不加密,这里没有尝试过,可以尝试一下);
    添加应用权限范围-选择Orchestrator API Access,选择Application Scope(s)(User Scope可不选,具体范围我这边也没有深究),点击保存;
    设置访问该App的URL:https://cloud.uipath.com/identity_/connect/authorize

app参数

  1. 点击保存后出现这两个App IDApp Secret
    记录下来,如果没有出现弹窗,可点击Edit编辑查看。

<think>好的,我现在需要帮助用户解决如何通过Java代码调用UiPath机器人的问题。用户希望得到相关的示例或教程。首先,我需要回忆一下UiPath的集成方式UiPath通常提供多种集成方法,比如通过REST APIOrchestrator、或者使用执行文件直接启动流程。 接下来,用户提到的是Java代码调用,所以可能需要使用Java发起HTTP请求或者调用命令行。UiPath Orchestrator的REST API是一个常见的方法,用户需要先在Orchestrator中创建流程,生成API Key,然后通过Java发送POST请求触发流程执行。这可能需要用到Java的HTTP客户端库,比如HttpClient或者OkHttp。 另外,直接调用UiPath机器人执行本地文件也是一种方式。Java可以通过Runtime.getRuntime().exec()来运行命令行指令,启动UiPath机器人执行特定的流程文件。但这种方法可能依赖环境配置,比如机器人的安装路径是否正确。 还要考虑是否需要处理认证和授权,比如使用API Key或者OAuth。同时,用户可能需要处理异步执行的情况,比如轮询OrchestratorAPI来获取作业状态。 然后,我需要检查用户提供的引用内容,看是否有相关信息。但根据提供的引用,主要涉及静态方法、Jina Hub的Executor安装、React安装步骤和Flask教程,似乎没有直接相关的UiPath信息。因此,可能需要依赖外部知识,但确保回答准确。 接下来,我需要组织步骤,确保结构清晰,分点说明不同的方法,并提供代码示例。例如,首先介绍REST API方式,然后介绍命令行方式,最后可能提到消息队列或其他集成方式。同时,需要提醒用户注意事项,如安全性、环境依赖等。 最后,生成相关问题,帮助用户进一步探索,比如如何监控执行状态、处理认证等。</think>要通过Java代码调用UiPath机器人或服务,通常可以通过以下两种主要方式实现: ### 一、通过UiPath Orchestrator REST API调用 1. **创建API访问凭证** - 在UiPath Orchestrator中创建API客户端,获取`Client ID`和`Client Secret` - 为需要执行的流程创建`Process Key` 2. **Java调用示例(使用HttpClient)** ```java // 获取认证令牌 HttpClient client = HttpClient.newHttpClient(); String authBody = "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"; HttpRequest authRequest = HttpRequest.newBuilder() .uri(URI.create("https://platform.uipath.com/identity_/connect/token")) .header("Content-Type", "application/x-www-form-urlencoded") .POST(HttpRequest.BodyPublishers.ofString(authBody)) .build(); HttpResponse<String> authResponse = client.send(authRequest, HttpResponse.BodyHandlers.ofString()); String accessToken = JsonPath.parse(authResponse.body()).read("$.access_token"); // 启动流程 String processBody = "{ \"startInfo\": { \"ReleaseKey\": \"YOUR_PROCESS_KEY\" } }"; HttpRequest startJobRequest = HttpRequest.newBuilder() .uri(URI.create("https://platform.uipath.com/odata/Jobs/UiPath.Server.Configuration.OData.StartJobs")) .header("Authorization", "Bearer " + accessToken) .header("Content-Type", "application/json") .POST(HttpRequest.BodyPublishers.ofString(processBody)) .build(); HttpResponse<String> jobResponse = client.send(startJobRequest, HttpResponse.BodyHandlers.ofString()); System.out.println(jobResponse.body()); ``` ### 二、通过命令行直接调用机器人 1. **配置机器人执行命令** - 安装UiPath机器人时记录安装路径,例如: `C:\Program Files (x86)\UiPath\Studio\UiRobot.exe` 2. **Java执行示例** ```java try { Process process = Runtime.getRuntime().exec( "\"C:\\Program Files (x86)\\UiPath\\Studio\\UiRobot.exe\" " + "-file \"D:\\RPA\\Process\\Main.xaml\" " + "-input \"{\\\"param1\\\":\\\"value1\\\"}\""); BufferedReader reader = new BufferedReader( new InputStreamReader(process.getInputStream())); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } int exitCode = process.waitFor(); System.out.println("Exited with code: " + exitCode); } catch (Exception e) { e.printStackTrace(); } ``` ### 三、其他集成方式 - **消息队列集成**:通过RabbitMQ/MSMQ触发流程[^4] - **数据库触发**:监控数据库表变化启动流程 - **文件监听**:监控特定目录文件变化 **注意事项**: 1. REST API方式需要Orchestrator云服务或本地部署 2. 命令行方式依赖本地机器人安装和授权配置 3. 建议使用HTTPS保证通信安全 4. 处理异步执行时需要轮询作业状态接口
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值