Как запустить робот UiPath из ServiceNow через REST API - PullRequest
1 голос
/ 01 апреля 2020

Как запустить робот UiPath, подключенный к UiPath Orchestrator? Я хочу отправить команды REST API в Orchestrator из интерфейса ServiceNow.

Ответы [ 2 ]

0 голосов
/ 01 апреля 2020

Сначала получите ваш личный URL-адрес схемы

https://platform.uipath.com/[account_logical_name]/[service_instance_logical_name] ...

В целом вам необходимо запросить это, чтобы получить логическое имя: https://platform.uipath.com/cloudrpa/api/getAccountsForUser

Вот шаги Для этого:

  1. Запустите в браузере код JavaScript, который предоставит вам проверку кода и проверку кода.

  2. Измените account.uipath.com URL с кодом вызова и отправка запроса в самом браузере. Который попросит вас пройти аутентификацию с учетными данными. Вам нужно передать этот URL в браузер, и URL браузера вернет код авторизации.

  3. Затем вам нужно отправить запрос на https://account.uipath.com/oauth/token с телом.

  4. Там вы получите токен на предъявителя.

  5. Вам нужно получить логическое имя, поэтому снова запрос на https://platform.uipath.com/cloudrpa/api/getAccountsForUser вы получите имя.

  6. При всех этих попытках отправьте запрос еще раз.

Если вам нужна дополнительная помощь, просмотрите несколько ссылок поскольку они показывают еще лучше, как это сделать, например, почтальон:

0 голосов
/ 01 апреля 2020

Ответ на эти 2 фильма можно найти на Youtube:

Настройка и проверка команд из POSTMAN: https://www.youtube.com/watch?v=84Wlzn1CK_Y

Отправка команд из ServiceNow: https://www.youtube.com/watch?v=GYqaWoT7Xxk

Это код скрипта из ServiceNow:

var testDEMO = Class.create();
testDEMO.prototype = {
    initialize: function() {
    },
test: function(param1,param2)
    {       
    var rm = new sn_ws.RESTMessageV2();
    rm.setHttpMethod('post');
    rm.setEndpoint('https://account.uipath.com/oauth/token');
    rm.setRequestHeader('Content-Type', 'application/json');
    rm.setRequestHeader('X-UIPATH-TenantName', 'YOUR TENANTNAME');

 var params = {
    'grant_type': 'refresh_token',
    'client_id': 'YOUR CLIENT ID',
    'refresh_token': 'YOUR REFRESH TOKEN'
  };

var json = new JSON();
var text = json.encode(params);
rm.setRequestBody(text);
var response = rm.execute();

var body = response.getBody();

var auth = body.substring(body.indexOf('access_token')+15, body.indexOf('id_token')-3);

        gs.info("Body:  "+response.getBody());
        gs.info("Auth:  "+auth);

var rm2 = new sn_ws.RESTMessageV2();
    rm2.setHttpMethod('post');  
    rm2.setEndpoint('https://platform.uipath.com/[Account Logical Name]/[Tenant Logical Name]/odata/Jobs/UiPath.Server.Configuration.OData.StartJobs'); 
    rm2.setRequestHeader('Content-Type', 'application/json');
    rm2.setRequestHeader('X-UIPATH-TenantName', 'YOUR TENANTNAME');
    rm2.setRequestHeader('Authorization', 'Bearer '+auth);
    rm2.setRequestHeader('User-Agent','telnet');    

//how to start a simple process without parameters  
/*var params3 = {};
params3.ReleaseKey ='YOUR PROCESS ReleaseKey';
params3.Strategy = 'All';

var params2 = {};
params2.startInfo = params3;*/

//How to start a process with parameters

var params3 = {};
params3.ReleaseKey ='YOUR PROCESS ReleaseKey';
params3.Strategy = 'All';
params3.InputArguments ='{"param1":"'+param1+'","param2":"'+param2+'"}';

var params2 = {};
params2.startInfo = params3;

var json2 = new JSON();
var text2 = json2.encode(params2);
rm2.setRequestBody(text2);
var response2 = rm2.execute();

gs.info("Body:  "+response2.getBody());
return response2.getBody();     
    },
    type: 'testDEMO'
};
...