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. フローの全体構成
例外処理の流れは以下になります。
- Tryスコープ内でHTTPリクエストを実行
- エラー内容を解析するために、Apply to each と JSONの解析 を追加
- エラー判定のために条件アクション(IF)を設定
- Switchアクションでエラーの種類ごとに処理を分岐
3.2. エラー内容の解析
エラー内容を解析用に[Apply to each]と[JSONの解析]アクションを追加して、「以前の手順から出力を選択」の箇所にresult('Try')
を指定します。これにより、Try スコープで発生した複数のエラー情報に対して処理できます。
また、[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 | 一定時間後にリトライ処理を実行する |
まとめ
Power Automateでは、Switchアクションを用いてHTTPエラー(400・403・500など)を種類ごとに処理でき、適切な対応を実装することで安定したワークフローを構築できるほか、リトライ処理やログ出力を組み合わせて例外処理を強化できます。