【问题标题】:How to start an UiPath Process from Salesforce interface如何从 Salesforce 界面启动 UiPath 流程
【发布时间】:2020-07-22 07:12:03
【问题描述】:

如何从 Salesforce 界面在 UiPath 机器人上启动 UiPath 进程? 我知道 Salesforce 可以将 REST API 命令发送到其他软件。

【问题讨论】:

    标签: rest salesforce apex uipath sfdc


    【解决方案1】:

    我试着做同样的事情,就像你在 YouTube 上的电影一样。 拜托,你能看看下面我/你的顶级代码,也许可以帮助我。谢谢!!

      {
                //@future(callout=true)
                public static void startProcess(String param1,String param2)
                {
                    Http http = new Http();
                    HttpRequest rm = new HttpRequest();
                    rm.setEndpoint('https://account.uipath.com/oauth/token');
                    rm.setMethod('POST');
                    rm.setHeader('Content-Type', 'application/json');
                    rm.setHeader('X-UIPATH-TenantName', 'ioDefault');
                    //rm.setTimeout(60000);
    
                    JSONGenerator gen = JSON.createGenerator(true);  
                    gen.writeStartObject();
                    gen.writeStringField('grant_type','refresh_token');
                    gen.writeStringField('client_id','8DEv1AMNXczW3y4U15LL3jYf62jK93n5');
                    gen.writeStringField('refresh_token','2I7ZERqOZHFmzVzyPUE_sdf-l-dGa4086xN8fyrW-xF8-');
                    gen.writeEndObject();
                    rm.setBody(gen.getAsString());
    
                    HttpResponse rs = http.send(rm);
    
                    System.debug(rs.getBody());
    
                    Map<String,Object> res = (Map<String,Object>)JSON.deserializeUntyped(rs.getBody());
                    System.debug(String.valueOf(res.get('access_token')));
    
                    HttpRequest rm2 = new HttpRequest();
                    rm2.setMethod('POST');
                  rm2.setEndpoint('https://platform.uipath.com/zuhtkqf/ioDefault/odata/Jobs/UiPath.Server.Configuration.OData.StartJobs');
                    rm2.setHeader('Content-Type', 'application/json');
                    rm2.setHeader('X-UIPATH-TenantName', 'ioDefault');
                    rm2.setHeader('Authorization', 'Bearer '+String.valueOf(res.get('access_token')));
                    //rm2.setTimeout(60000);
    
                    JSONGenerator gen2 = JSON.createGenerator(true);  
                   /// start a simple process without parameters
                    gen2.writeStartObject();
                    gen2.writeFieldName('startInfo');
                    gen2.writeStartObject();
                    gen2.writeStringField('ReleaseKey','6aa09f52-ef47-47aa-ab2e-8e487e7841e5');
                    gen2.writeStringField('Strategy','All');
                    gen2.writeEndObject();
                    gen2.writeEndObject();
    
                   /// start a simple process with parameters        
                   /* gen2.writeStartObject();
                    gen2.writeFieldName('startInfo');
                    gen2.writeStartObject();
                    gen2.writeStringField('ReleaseKey','YOUR release KEY for process see the YouTube movie below');
                    gen2.writeStringField('Strategy','All');
                    gen2.writeStringField('InputArguments','{\"param1\":\"'+param1+'\",\"param2\":\"'+param2+'\"}');
                    gen2.writeEndObject();
                    gen2.writeEndObject();
    */
                    rm2.setBody(gen2.getAsString());
    
                    HttpResponse rs2 = http.send(rm2);
    
                    System.debug(rs2.getBody());
                }
            }
    

    【讨论】:

    • 你好,Kamil,首先你为什么评论 SetTimeOut,因为在我的情况下,我有没有这些东西的问题。接下来与评论未来相同的东西(callout = true)我不记得只是复制粘贴。这个过程很复杂,所以我强烈推荐从邮递员第一次开始的一切,并确保 UiPath REST API 部分正常工作。最后的东西尝试放置更多 System.Debug 行,运行后您可以打开 Salesforce Development explorer 并检查以仅查看调试,您可以很好地看到您的步骤。
    • 请撤销您的刷新令牌,因为现在任何有互联网连接的人都可能知道它......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    相关资源
    最近更新 更多