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?

Power Automateで例外処理を強化!Switchアクションでエラーを分岐・処理する

Posted at

1. はじめに

Power Automateでは、HTTPリクエストを実行する際にエラーが発生することがあります。特に、400(Bad Request)、403(Forbidden)、500(Internal Server Error)など、異なる種類のエラーに対して適切な処理を行うことが重要です。
本記事では、Switchアクションを用いてHTTPステータスコードごとに例外処理を行う方法を紹介します。

2. 例外処理の基本概念

2.1 HTTPリクエストとエラーレスポンス

HTTPリクエストを送信すると、レスポンスには「ステータスコード」と「レスポンスボディ」が含まれます。代表的なエラーステータスコードは以下のとおりです。

ステータスコード 説明 典型的な原因
400 Bad Request クライアント側のリクエスト不正 入力データの形式ミス
403 Forbidden アクセス権限がない APIの権限不足
500 Internal Server Error サーバー側のエラー サーバー内部の処理失敗

2.2. Power Automateにおける例外処理のアプローチ

Power Automateの例外処理には、以下の方法があります。

  • スコープアクションと実行条件の構成を使用して、Try-Catchパターンを用いる
  • Switchアクションを使用して、ステータスコードごとに処理を分岐する(本記事で解説)

詳細な例外処理の方法については、以下の記事で紹介されています。

3. Switchアクションを用いた例外処理の実装

3.1. フローの全体構成

例外処理の流れは以下になります。

  1. Tryスコープ内でHTTPリクエストを実行
  2. エラー内容を解析するために、Apply to each と JSONの解析 を追加
  3. エラー判定のために条件アクション(IF)を設定
  4. Switchアクションでエラーの種類ごとに処理を分岐

3.2. エラー内容の解析

エラー内容を解析用に[Apply to each]と[JSONの解析]アクションを追加して、「以前の手順から出力を選択」の箇所にresult('Try')を指定します。これにより、Try スコープで発生した複数のエラー情報に対して処理できます。

image.png

また、[JSONの解析]の「コンテンツ」には動的なコンテンツから【現在のアイテム】を選択します。そして「スキーマ」には下記のJSONをコピーして、【サンプルから作成】に張り付けて生成します。

スキーマ
{
	"type": "object",
	"properties": {
		"name": {
			"type": "string"
		},
		"status": {
			"type": "string"
		},
		"code": {
			"type": "string"
		}
	}
}

3.3. エラー判定

エラー判定で[条件]アクションを追加して、左辺には「動的なコンテンツ」からbody('JSON_の解析')?['status']を設定します。右辺には【Failed】を入力します。

3.4. Switchアクションによるエラー分岐・処理

ステータスコードに基づいて処理で[スイッチ]アクションを追加して、状態値にbody('JSON_の解析')?['code']を設定します。

ステータスコード 処理内容
400 Bad Request ログを記録し、ユーザーに入力ミスの可能性を通知する
403 Forbidden 管理者に通知し、権限を確認する
500 Internal Server Error 一定時間後にリトライ処理を実行する

image.png

まとめ

Power Automateでは、Switchアクションを用いてHTTPエラー(400・403・500など)を種類ごとに処理でき、適切な対応を実装することで安定したワークフローを構築できるほか、リトライ処理やログ出力を組み合わせて例外処理を強化できます。

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?