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のマクロに記述することで、以下のような処理が可能になります。
- マシン宛てに特定のメールが届く。
- そのメールをトリガーにしてOrchestratorにリクエストを送信する。
- Orchestratorに登録したUnattendedマシンでジョブを実行する。
このとき、メールに記載された情報を引数としてプロセスに渡すこともできます。渡し方はStarting a Job with Custom Values for Input Parametersリクエストのページにあるように、InputArgumentsの値の中でプロセスの引数名をキーにして渡したい情報はその値にします。
このように工夫次第でさまざまな自動化ができると思いますので、ぜひ試してみてください。