问题1:如果我要在Java程序中启动RPA任务,是不是可以用这个接口? 问题2:那RPA里面怎么接收和处理请求里面带来的参数呢?我没找到对应的示例
对于问题1,您提供的是 UiPath 的 REST API,确实可以通过 Java 程序来调用 REST API 来启动 RPA 任务。具体步骤如下:
以下是一个 Java 调用 UiPath Orchestrator REST API 的示例代码:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class OrchestratorAPITest {
public static void main(String[] args) throws IOException {
// 设置 Orchestrator REST API URL 和 Token
String orchestratorUrl = "https://platform.uipath.com/{ACCOUNT}/{SERVICE}/odata";
String authHeader = "Bearer {TOKEN}";
// 请求获取机器人ID
HttpURLConnection conn = (HttpURLConnection) new URL(orchestratorUrl + "/Robots").openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Authorization", authHeader);
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// 从响应结果中获取第一个机器人的 ID
String robotId = response.substring(response.indexOf("RobotDto") + 13, response.indexOf("\"", response.indexOf("RobotDto") + 13));
// 请求启动工作流任务
URL url = new URL(orchestratorUrl + "/Jobs/UiPath.Server.Configuration.OData.StartJobs");
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Authorization", authHeader);
conn.setRequestProperty("Content-Type", "application/json");
String requestBody = "{ \"startInfo\": { \"ReleaseKey\": \"{RELEASE_KEY}\", \"Strategy\": \"Specific\", \"RobotIds\": [ " + robotId + "], \"JobsCount\": 1, \"Source\": \"Manual\", \"InputArguments\": \"{INPUT_ARGUMENTS}\" } }";
requestBody = requestBody.replace("{RELEASE_KEY}", "{YOUR_RELEASE_KEY}").replace("{INPUT_ARGUMENTS}", "{YOUR_INPUT_ARGUMENTS}");
conn.setDoOutput(true);
OutputStream os = conn.getOutputStream();
os.write(requestBody.getBytes());
os.flush();
os.close();
int responseCode = conn.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
System.out.println("Workflow started.");
} else {
System.out.println("Unable to start workflow.");
}
}
}
对于问题2,如果您想将一些参数传递给 RPA 任务,可以在 StartJob API 请求的 InputArguments 字段中添加参数。在 RPA 流程中,您可以使用“Get Transaction Item”等活动来接收和处理这些参数。以下是一个示例流程:
需要注意的是,参数传递的具体方式取决于您的 RPA 流程的具体实现。您需要确保参数的类型、格式、命名等信息一致,以避免出现不必要的错误和问题。
回答1:调任务执行这两个都可以 回答2:参数是传给参数面板的,通过这个组件获取参数面板的值https://help.aliyun.com/document_detail/605889.html?spm=a2c4g.605887.0.0.a2e113d1VyaM3l,此回答整理自钉群“阿里云RPA官方群3”
对于问题1:可以使用阿里云提供的Java SDK来启动RPA任务。具体步骤如下:
在阿里云控制台中获取访问密钥(AccessKeyID和AccessKeySecret)以及区域Id(RegionId); 在Java代码中引入阿里云提供的Java SDK; 初始化RPA客户端对象,并设置AccessKeyID、AccessKeySecret和RegionId; 创建启动RPA任务所需的参数对象,包括任务名称,业务参数等; 调用客户端对象的StartRobotTask方法,传入参数对象,启动RPA任务。 对于问题2:阿里云的RPA任务支持使用业务参数来接收和处理请求中带来的参数。具体步骤如下:
在RPA任务的流程图中添加参数节点,命名参数名称、数据类型和默认值; 在Java代码中创建业务参数对象,设置参数名称和对应的值; 将业务参数对象加入启动RPA任务所需的参数对象中; 在流程图中的其他节点中通过参数名称来获取参数值,使用该值进行逻辑判断或者其他的操作。 下面是Java代码的示例,用于启动RPA任务并带上业务参数:
import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.profile.DefaultProfile; import com.aliyuncs.rpa.model.v20190625.StartRobotTaskRequest; import com.aliyuncs.rpa.model.v20190625.StartRobotTaskResponse; import com.aliyuncs.rpa.model.v20190625.StartRobotTaskRequest.BusinessParams;
public class RPAExample { public static void main(String[] args) { String accessKeyId = "your_access_key_id"; String accessKeySecret = "your_access_secret"; String regionId = "your_region_id"; String taskName = "your_task_name"; String businessKey = "your_business_key"; String businessValue = "your_business_value";
// 初始化RPA客户端
DefaultProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret);
DefaultAcsClient client = new DefaultAcsClient(profile);
// 创建启动RPA任务请求
StartRobotTaskRequest request = new StartRobotTaskRequest();
request.setTaskName(taskName);
// 设置业务参数
BusinessParams bizParams = new BusinessParams();
bizParams.setKey(businessKey);
bizParams.setValue(businessValue);
request.setBusinessParams(bizParams);
try {
// 启动RPA任务
StartRobotTaskResponse response = client.getAcsResponse(request);
System.out.println("RPA任务启动成功,taskId为:" + response.getTaskId());
} catch (Exception e) {
System.out.println("RPA任务启动失败,错误信息为:" + e.getMessage());
}
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。