Orchestratorのブラウザ操作と同じ挙動をOrchestrator APIで実現する方法

:grey_question: Question

OrchestratorのWebブラウザ操作と同じ挙動をOrchestrator APIで実現したいです。
Orchestrator APIの確認や各種パラメーターの調査方法を教えてください。

:bulb: Answer

対応するOrchestrator APIの確認手順

一般的なOrchestrator APIについては公式ガイドをご参照ください。

WebブラウザでOrchestratorを操作した時のネットワークログを確認することで、具体的なOrchestrator APIを確認できます。

  1. WebブラウザでOrchestratorにアクセスし、開発者ツールを開きます。(F12キー押下で開けます)
  2. 開発者ツール内のネットワークタブを選択すると、開いているWebページのネットワークログが表示されます。
  3. Orchestrator APIで実行したい内容を、Orchestrator画面のGUIを操作して実行します。
  4. ネットワークタブ内に、いくつかのログが出力されます。任意のネットワークログをクリックするとその詳細(Headers, Payload, Responseなど)が表示されます。ヘッダーのリクエストURLおよびリクエストメソッドなどを手がかりに、対応するOrchestrator APIを探します。

Swaggerでの検証手順

Orchestrator APIの挙動を確認したり、パラメーターやJSONペイロードを変更した際の挙動検証にあたってSwaggerというツールを利用できます。

  1. Webブラウザから、Orchestrator APIを実行するユーザーとしてOrchestratorにログインします。
    ※ログインユーザーに権限がないAPIは、Swaggerから実行できません。
  2. 同じWebブラウザの新しいタブで、https://OrchestratorのURL/swagger にアクセスします。
    クラウド版Orchestratorをご利用の場合には、https://cloud.uipath.com/組織名/テナント名/orchestrator_/swagger のURLにアクセスします。
  3. Swaggerページ内の右上にある、鍵アイコンの「Authorize」ボタンをクリックします。ポップアップが表示されますので、既定値のままポップアップ内の下部にある「Authorize」を再度クリックしてからポップアップを閉じます。
  4. 実行したいAPIを探します。たとえば「Releases」セクション内の「Get /odata/Releases」を開きます。このAPIは、各フォルダーに登録されたプロセス情報を取得します。
  5. 「Get /odata/Releases」内右上の「Try it out」をクリックします。
  6. パラメーター「X-UiPath-OrganizationUnitId」には、フォルダーIDを指定することができます。フォルダーIDは、Orchestrator内でそのフォルダーにアクセスした時のURL内の「fid」の値です。例えばURLが https://orchestrator.uipath.test/?tid=2&fid=3&index=0&size=10&state=xxx の時、フォルダーIDは「3」です。
  7. 「Get /odata/Releases」内の「Execute」をクリックすると、Orchestrator APIが実行されます。API実行結果がすぐ下の「Responses」に表示されます。

PUTやPOSTメソッドの場合には、Webブラウザ開発者ツールのネットワークログ > ペイロードタブにJSONペイロードが表示されます。ペイロードタブで「view source」をクリックすると、JSON形式の文字列として表示されます。
Swaggerのbody パラメーターにJSON形式のペイロードをコピー&ペーストして指定します。
JSON文字列は整形されていなくても問題ありませんが、整形すると見やすくなります。
Visual Studio Codeなどのテキストエディターや、オンライン上のJSON整形ツールで整形できます。



Orchestrator APIの実装方法

Orchestrator APIを実行するには色々な方法がありますが、以下はその一例です。

ワークフローを利用する

  1. 『Orchestrator への HTTP 要求』アクティビティ
    Orchestrator APIに特化したアクティビティです。ワークフローを実行するRobotと同じ権限でAPIを実行します。

  2. 『HTTP 要求』アクティビティ
    Orchestratorに限らず、任意のHTTPリクエストを実行できます。
    このアクティビティを利用するには、UiPath Studio上部の「パッケージを管理」よりUiPath.WebAPI.Activitiesパッケージを追加する必要があります。
    また誰の権限でAPIを実行するか、Orchestratorへの認証プロセスを組み込む必要もあります。

ワークフローを利用しない

PowerShellなど、HTTPリクエストを送信できる任意のサードパーティー製品を使うこともできます。
ご参考まで、PowerShellを利用するサンプルを含むナレッジベースをご紹介いたします。

1 Like