【UiPath】「Orchestrator への HTTP 要求」からジョブやプロセスの全データを取得し、CSVで出力する

## 概要
「Orchestrator への HTTP 要求」アクティビティを使ってOCにAPIを投げ、ジョブやプロセスの情報を取得し、レスポンスのJSONをデータテーブルに変換してCSVで出力する。

ワークフロー全体がこちら。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/578020/be6caa7d-d05d-aa09-a571-d065c6b613f8.png)

今回はジョブの情報を取得するため、「Orchestrator への HTTP 要求」
のメソッドに`GET`、エンドポイントの相対パスは`"odata/Jobs"`に設定する。出力は文字列型で変えるので、任意のString型変数を設定。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/578020/e8f3fb32-e4c8-b1ea-a8ff-19abf819186f.png)

プロセスの情報を取得する場合はエンドポイントの相対パスに`"/odata/Processes"`を設定する。それ以外を取得する際の構文は公式のリファレンスから確認できる。

https://docs.uipath.com/ja/orchestrator/standalone/2020.10/api-guide/permissions-per-endpoint

権限に問題がなければ、出力には以下のようなJSON形式の文字列が返る。`"value"`の中に各ジョブの情報がJSON配列で格納されているので、これを展開していく。

```Json
{
    "@odata.context": "{OrchestratorURL}/odata/$metadata#Jobs",
    "@odata.count": 13,
    "value": [
        {
            "Key": "1c7222dc-416f-4c60-9b17-88262c91768f",
            "StartTime": "2018-01-15T18:18:02.79Z",
            "EndTime": "2018-01-15T18:18:47.587Z",
            "State": "Successful",
            "Source": "Manual",
            "BatchExecutionKey": "8c5302a7-8ed3-458a-ab64-34cc72fdd709",
            "Info": "Job completed",
            "CreationTime": "2018-01-15T18:18:01.623Z",
            "StartingScheduleId": null,
            "Id": 125161
        },
        {
            "Key": "9fbdfca0-d1e5-41c2-abe6-86fe626346a3",
            "StartTime": "2018-03-02T17:25:35.17Z",
            "EndTime": "2018-03-02T17:25:46.62Z",
            "State": "Successful",
            "Source": "Manual",
            "BatchExecutionKey": "9b908e73-b564-4022-92cb-9e9f0571c2ec",
            "Info": "Job completed",
            "CreationTime": "2018-03-02T17:25:34.087Z",
            "StartingScheduleId": null,
            "Id": 127283
        },
        {
            "Key": "e29e472d-5d51-4369-9c15-af867e6dd580",
            "StartTime": "2018-03-05T18:27:27.123Z",
            "EndTime": "2018-03-05T18:27:38.593Z",
            "State": "Faulted",
            "Source": "Manual",
            "BatchExecutionKey": "ad498d35-326c-4c6c-89d0-16fb73abd0c8",
            "Info": "Execution error : System.ArgumentException: The sheet does not exist\r\n   at UiPath.Excel.WorkbookApplication.SetSheet(String sheetName, Boolean createNew)\r\n   at UiPath.Excel.Activities.ExcelInteropActivity`1.BeginExecute(AsyncCodeActivityContext context, AsyncCallback callback, Object state)\r\n   at System.Activities.AsyncCodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager)\r\n   at System.Activities.ActivityInstance.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager)\r\n   at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)",
            "CreationTime": "2018-03-05T18:27:25.793Z",
            "StartingScheduleId": null,
            "Id": 127416
        }
    ]
}
```

「JSON を逆シリアル化」アクティビティから下、JSONを展開してCSVに変換するフローについては、以下の記事で解説しているので詳細はこちらを参照してほしい。

https://qiita.com/Davoi/items/9bec11dc89fef8fb5d6c

出力したCSVの一部がこちら。無事にジョブの情報を出力できている。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/578020/218d3785-f298-8870-fa69-17551553fec4.png)

## 関連記事
https://qiita.com/Davoi/items/f503ffb3fd2e70bc0bc6

https://qiita.com/Davoi/items/9bec11dc89fef8fb5d6c

## 動作環境
UiPath.WebAPI.Activity v1.21.1
UiPath.System.Activity v24.10.7