rest - 如何从 Groovy 脚本语言启动 UiPath 机器人?
问题描述
如何从 Groovy 脚本语言启动 UiPath 机器人?
我在 UiPath Orchestrator 上有我的流程,我想从 Groovy 向 UiPath Orchestrator 发送一组 REST API 命令以启动该流程。
我已阅读Orchestrator 文档,但无法创建工作脚本。
这样做的主要思想是,在对不同的软件(例如 Jira 或 Jenkins)进行更多研究之后,使用这种 Groovy 语言编写脚本。
解决方案
在这里,您可以找到在 UiPath Orchestrator 上启动 UiPath Process 的 Groovy 脚本代码:
def builder = new groovy.json.JsonBuilder();
def root = builder{
grant_type 'refresh_token'
client_id 'YOUR CLIENT ID'
refresh_token 'YOUR REFRESH TOKEN'
}
assert root instanceof Map
def link = new URL("https://account.uipath.com/oauth/token");
def connection = link.openConnection() as HttpURLConnection;
connection.setRequestProperty("Content-Type","application/json");
connection.setRequestProperty("X-UIPATH-TenantName","YOUR TENANTNAME");
connection.setDoOutput(true);
def httpRequestBodyWriter = new BufferedWriter(new OutputStreamWriter(connection.getOutputStream()))
httpRequestBodyWriter.write(builder)
httpRequestBodyWriter.close()
def auth = "0"
if(connection.responseCode == 200)
{
def resp = connection.inputStream.text
auth = resp.substring(resp.indexOf("access_token")+15,resp.indexOf("id_token")-3)
println resp
}
def builder2 = new groovy.json.JsonBuilder();
//process without parameters
/*def root2 = builder2.startInfo {
ReleaseKey 'YOUR PROCESS ReleaseKey'
Strategy 'All'
}*/
//process with parameters
def root2 = builder2.startInfo {
ReleaseKey 'YOUR PROCESS ReleaseKey'
Strategy 'All'
InputArguments '{"param1":"Test Youtube","param2":"GroovyConsole"}'
}
assert root2 instanceof Map
def link2 = new URL("https://platform.uipath.com/[Account Logical Name]/[Tenant Logical Name]/odata/Jobs/UiPath.Server.Configuration.OData.StartJobs");
def connection2 = link2.openConnection() as HttpURLConnection;
connection2.setRequestProperty("Authorization",'Bearer '+auth);
connection2.setRequestProperty("Content-Type","application/json");
connection2.setRequestProperty("X-UIPATH-TenantName","YOUR TENANTNAME");
connection2.setRequestProperty("User-Agent","telnet");
connection2.setDoOutput(true);
def httpRequestBodyWriter2 = new BufferedWriter(new OutputStreamWriter(connection2.getOutputStream()))
httpRequestBodyWriter2.write(builder2)
httpRequestBodyWriter2.close()
println connection2.responseCode
println connection2.responseMessage
推荐阅读
- excel - 教师的Excel vlookup
- python - KafkaTimeoutError:KafkaTimeoutError:300.0 秒后更新元数据失败
- java - 如何修复 Netbeans 8.0 未检测到 Java ME
- delphi - 内联记录变量声明错误
- python - 对多维数组求和时理解 Python 的“冒号运算符”
- ruby-on-rails - AWS SNS 退回通知未发送
- node.js - @loadable/component 没有在使用 React 的 express 应用程序的服务器端呈现
- mongodb - Mongoose Schema 缺失值并显示错误
- javascript - 更改 div 中的字体大小
- powershell - 带有 IN 条款的 Powershell 中的 CAML