开发者社区> 问答> 正文

如果我要在Java程序中启动RPA任务,是不是可以用这个接口?

问题1:如果我要在Java程序中启动RPA任务,是不是可以用这个接口?2e7d30aac706382bda7b33f86945a72d.png 问题2:那RPA里面怎么接收和处理请求里面带来的参数呢?我没找到对应的示例

展开
收起
真的很搞笑 2023-05-25 11:54:37 189 0
来自:阿里云RPA
3 条回答
写回答
取消 提交回答
  • 对于问题1,您提供的是 UiPath 的 REST API,确实可以通过 Java 程序来调用 REST API 来启动 RPA 任务。具体步骤如下:

    1. 在 UiPath Orchestrator 中获取授权 Token。
    2. 使用 GET 请求访问 /odata/Robots API,获取机器人的 ID。
    3. 使用 POST 请求访问 /odata/Jobs API,启动一个新的工作流任务。

    以下是一个 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”等活动来接收和处理这些参数。以下是一个示例流程:

    1. 在 Orchestrator 上创建一个带有“Get Transaction Item”活动的流程。
    2. 在 Java 程序中,将参数打包成一个 JSON 字符串,并在 StartJob API 请求的 InputArguments 字段中添加该 JSON 字符串。
    3. 在流程中,使用“Deserialize JSON”活动解析传递过来的 JSON 字符串,并将结果存储在变量中。
    4. 在流程中,使用“Set Transaction Status”活动将处理结果返回给 Java 程序。

    需要注意的是,参数传递的具体方式取决于您的 RPA 流程的具体实现。您需要确保参数的类型、格式、命名等信息一致,以避免出现不必要的错误和问题。

    2023-05-27 08:49:44
    赞同 展开评论 打赏
  • 回答1:调任务执行这两个都可以375d490aec1e0ac15c8f4970898a7537.png 回答2:参数是传给参数面板的,通过这个组件获取参数面板的值https://help.aliyun.com/document_detail/605889.html?spm=a2c4g.605887.0.0.a2e113d1VyaM3l,此回答整理自钉群“阿里云RPA官方群3”

    2023-05-25 14:21:13
    赞同 展开评论 打赏
  • 值得去的地方都没有捷径

    对于问题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());
        }
    }
    

    }

    2023-05-25 12:06:28
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
阿里云RPA历经8年的内部验证,覆盖了阿里巴巴大部分BU,实现了电商客服、新零售等新兴行业的渗透,并且已经完成在保险、金融、医疗保健等领域的场景深耕,联合合作伙伴具备深度定制化能力和稳定交付能力,积累了丰富的行业可行性解决方案。目前阿里云RPA能集成并运行在更高的软件层级,这就决定了它不会侵入、影响已有的软件系统。在帮助企业提升效能的过程中,保持企业已有的IT系统功能平稳、运行可靠。
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载