0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【UiPath】Orchestrator APIで取得したJSONデータの操作方法【GET編】

Last updated at Posted at 2024-12-23

概要

Orchestrator APIで取得したJSONデータの操作方法についてご説明します。
注:私の投稿する内容は個人の見解であり、所属団体を代表するものではありません。

はじめに

今回はUiPath Studioから『OrchestratorへのHTTP要求』アクティビティを利用して取得したJSONデータを操作する方法についてご説明します。

Orchestrator APIとは?

UiPath Orchestrator APIは、UiPathのOrchestratorの機能にプログラムからアクセスできるようにするRESTful APIです。これにより、開発者はOrchestratorの操作をコードで自動化したり、外部システムと統合したりすることができます。

参考:Orchestrator APIでできること

以下をクリックください。

ロボット管理

  • ロボットの削除、状態確認。

ジョブ管理

  • ジョブの開始、停止、ステータス確認。

アセットとキューの操作

  • アセットの取得、追加。
  • キューのアイテム取得、削除。

プロセス管理

  • プロセスの取得、更新、削除。
  • パッケージのアップロード。

監査とログの取得

  • ログデータの取得。

ユーザーと権限管理

  • ユーザーアカウントの作成、管理。
  • ロールと権限の設定。

アラート管理

  • アラートの取得。

JSONデータとは?

JSON(JavaScript Object Notation)は、データを軽量かつ簡潔に表現するためのフォーマットです。プログラム間でデータを交換する際に広く使用されており、人間にも読みやすく、機械でも簡単に解析できる構造を持っています。UiPathではJSONデータを操作するためのアクティビティが提供されております。

JSONデータの操作方法

UiPath Studioから『OrchestratorへのHTTP要求』アクティビティを利用して取得したAlert関連のJSONデータを操作する方法についてご説明します。

Step1.『OrchestratorへのHTTP要求』アクティビティの設定

StudioをOrchestratorに接続後、『OrchestratorへのHTTP要求』アクティビティの[エンドポイントの相対パス]に以下の通り記載します。

"odata/Alerts?$top=3"

?$top=3は取得したアラート情報の中から最新の3件を取得することを意味します。

image.png
アクティビティの出力プロパティにはそれぞれ以下の出力変数
image.png

GET odata/Alertsの情報は公式ガイドにも記載があります。
https://docs.uipath.com/ja/orchestrator/automation-cloud/latest/api-guide/alerts-requests

Step2.レスポンスヘッダーの中身を取得

レスポンスヘッダーの中身は『繰り返し(コレクションの各要素)』アクティビティを利用して取得が可能です。
引数の型にSystem.Collections.Generic.KeyValuePair<System.String,System.String>を指定すると、項目名にcurrentKeyValuePairOfTextAndTextが自動生成されます。『繰り返し(コレクションの各要素)』アクティビティの次のコレクションの各要素にResponseHeadersを、
本文に『メッセージをログ』アクティビティでメッセージにcurrentKeyValuePairOfTextAndTextと入力するとレスポンスヘッダーのそれぞれの値が取得できます。
image.png

参考:取得したレスポンスヘッダーの値とその意味

例は以下となります。

基本情報
Date
サーバーがレスポンスを生成した日時。
値: Wed, 04 Dec 2024 04:35:26 GMT
意味: サーバーの処理タイミングを示します。

Connection
クライアントとの接続の管理方法。
値: keep-alive
意味: 接続を維持し、次のリクエストで再利用可能であることを示します。

キャッシュ関連
Cache-Control
キャッシュの動作を制御。
値: no-store
意味: このレスポンスをキャッシュに保存しないよう指示します。

Pragma
HTTP/1.0のキャッシュ制御。
値: no-cache
意味: 中継プロキシにキャッシュしないよう指示します。

セッションとCookie
Set-Cookie
サーバーがクライアントにCookieを送信。
値: __cf_bm=SPGLDOFhHOLk...
意味: セッション管理やセキュリティ目的のCookie設定(HttpOnly, Secure属性で保護されています)。

リクエストトラッキング
Request-Context
アプリケーション固有のコンテキスト情報。
値: appId=cid-v1:354c7cb9-ae5a-4d16-84a7-f13242bbac6d
意味: アプリケーションまたはサービスの識別子。

X-Correlation-ID
リクエスト間のトラッキングID。
値: 0e0372fd-b706-45cf-86a3-60e8edd538e9
意味: 複数リクエストを追跡するための一意の識別子。

X-UiPath-Correlation-ID
UiPath固有のトラッキングID。
値: undefined
意味: API呼び出しを追跡するための識別子(今回は未定義)。

セキュリティ関連
X-Robots-Tag
検索エンジンによるインデックス化の制御。
値: noindex,nofollow
意味: このページを検索エンジンにインデックスさせない。

X-Download-Options
ファイルダウンロード時のセキュリティ。
値: noopen
意味: Internet Explorerでのダウンロード時にスクリプト実行を防止。

X-XSS-Protection
クロスサイトスクリプティング(XSS)対策。
値: 1
意味: XSSフィルターを有効化。

X-Content-Type-Options
MIMEタイプのスニッフィング防止。
値: nosniff
意味: ブラウザがレスポンスのMIMEタイプを変更しないよう指示。

X-Frame-Options
クリックジャッキング対策。
値: SameOrigin
意味: 同じオリジンからのフレーム埋め込みのみ許可。

Strict-Transport-Security
HTTPS通信の強制。
値: max-age=15724800; includeSubDomains
意味: HTTPS通信を6か月間(15724800秒)強制。サブドメインも対象。

Content-Security-Policy
外部リソースの読み込み制御。
意味: スクリプト、スタイルシート、画像、フォントなどの読み込み元を制限。セキュリティ向上。

API関連
odata-version
ODataのバージョン情報。
値: 4.0
意味: APIがODataバージョン4.0に準拠していることを示す。

api-supported-versions
サポートされているAPIバージョン。
値: 18.0
意味: このAPIはバージョン18.0に対応している。

レート制限
RateLimit-Policy
レート制限のポリシー。
値: 450000;w=300
意味: 300秒間(5分間)に450,000リクエスト可能。

RateLimit-Remaining
残りリクエスト数。
値: 449998
意味: 現在の時間枠であと449,998回のリクエストが可能。

RateLimit-Limit
最大リクエスト数。
値: 450000
意味: 1時間あたりのリクエスト上限。

ネットワークとキャッシュ
Server
使用しているサーバーソフトウェア。
値: cloudflare
意味: このレスポンスを提供したサーバーがCloudflareであることを示す。

CF-Cache-Status
Cloudflareのキャッシュステータス。
値: DYNAMIC
意味: キャッシュされていない動的リクエスト。

CF-RAY
CloudflareリクエストのトラッキングID。
値: 8ec916f51d98d77b-NRT
意味: リクエストを一意に識別するID(NRTは東京データセンターを表す)。 

Step3. JSONの逆シリアル化

『JSONを逆シリアル化』アクティビティは、JSON形式の文字列をJSONオブジェクトに変換するためのアクティビティです。JSONオブジェクトとして扱うことでデータ操作が文字列よりも簡単になります。

例:ループによる特定のフィールド値の取得はJSONオブジェクトで簡単に行えます。

『JSONを逆シリアル化』アクティビティで出力したJSONオブジェクトにDeserializedJsonObjectと記載します。
image.png

『メッセージをログ』アクティビティでDeserializedJsonObjectを出力すると、データが出力されます。

image.png

Step4. JSONオブジェクトの子要素の取り出し

以下の『繰り返し(コレクションの各要素)』アクティビティでは、JSONオブジェクトの子要素にアクセスすることを示しています。
image.png

具体的には、DeserializedJsonObject("value") は、DeserializedJsonObject"value"のフィールドに格納されている値を返します。

.Children は、指定したフィールドが配列形式になっている場合、それらをリストとして返します。

『繰り返し(コレクションの各要素)』の本文に『メッセージをログ』でCurrentJToken("id").ToStringで指定することでメッセージが出力されます。
image.png

※Step1で3件のアラートの情報を取得したので3件のIDが出力されます。

同様に『メッセージをログ』でCurrentJToken("data").ToStringで指定することで3件のアラートのdataが表示されます。
image.png

DeserializedJsonObject内で出力したデータに記載されている内容:"id"、"notificationName"、"data"等はこの方法で取得できます。

おわりに

今回はOrchestratorのGETメソッドで取得したJSONデータの操作方法をご案内しました。POSTメソッドについては弊社の別の社員が作成予定です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?