UiPath Orchestrator APIを使ってジョブを実行する

RPAエンジニア 大庭

UiPath OrchestratorにはさまざまなAPIが用意されています。その中でもStarting a Jobリクエストを使うことで、UiPath Orchestratorにパブリッシュされたプロセスのジョブを、登録したUnattendedマシンで実行することができます。

Cloud版Orchestratorのクラシックフォルダーにプロセスがある場合、Starting a Jobリクエストをするまでの流れは以下になります。

1. APIを使用するためのAccess Tokenを取得する

あらかじめOrchestrator上でAPIを使用するためのUser KeyとClient IDを取得しておきます。その上で、ヘッダーにテナント名を、本文のパラメーターにUser KeyとClient IDをそれぞれ含んだAuthenticatingリクエストをPOST送信します。するとそのレスポンスのJSONからAccess Tokenを取得できます。

ヘッダー 説明
X-UIPATH-TenantName テナント名を指定
本文のパラメーター 説明
grant_type "refresh_token"と指定
client_id Client IDを指定
refresh_token User Keyを指定

2. プロセス固有のRelease Keyを取得する

取得したAccess Tokenとテナント名をヘッダーに、プロセス名をURLに含んだRetrieving Processes According to Their NameリクエストをGET送信し、レスポンスのJSONからプロセスが持つ固有のRelease Keyを取得します。もしくはプロセス名を指定せずにリクエストをし、すべてのプロセスのRelease Keyを取得してその中から目的のプロセスのRelease Keyを取り出します。

ヘッダー 説明
Authorization "Bearer"の後に半角スペースを入れてAccess Tokenを指定
X-UIPATH-TenantName テナント名を指定

3. Orchestratorにジョブの実行を要求する

Access Token、Release Key、テナント名、プロセスがあるOrchestrator上のフォルダパスをヘッダーに含んだStarting a JobリクエストをPOST送信します。リクエストを送信すると登録したマシンでジョブが実行されます。

ヘッダー 説明
Authorization "Bearer"の後に半角スペースを入れてAccess Tokenを指定
X-UIPATH-TenantName テナント名を指定
X-UIPATH-FolderPath Orchestrator上のプロセスがあるフォルダを指定
本文のパラメーター 説明
startInfo (例){"ReleaseKey": "取得したRelease Key","Strategy": "All","RobotIds": [],"NoOfRobots": 0}

上の例ではStrategyをAllに指定していますが、これはプロセスがクラシックフォルダーにある場合に指定ができます。

この一連の流れを例としてマシンのOutlookのマクロに記述することで、以下のような処理が可能になります。

  1. マシン宛てに特定のメールが届く。
  2. そのメールをトリガーにしてOrchestratorにリクエストを送信する。
  3. Orchestratorに登録したUnattendedマシンでジョブを実行する。

このとき、メールに記載された情報を引数としてプロセスに渡すこともできます。渡し方はStarting a Job with Custom Values for Input Parametersリクエストのページにあるように、InputArgumentsの値の中でプロセスの引数名をキーにして渡したい情報はその値にします。

このように工夫次第でさまざまな自動化ができると思いますので、ぜひ試してみてください。