ADVERTISEMENT

【Power Automate】JSON解析で困った時の実行履歴から原因を読む方法

【Power Automate】JSON解析で困った時の実行履歴から原因を読む方法
🛡️ 超解決

Power Automateで外部APIやデータソースから取得したJSONデータを解析する処理は、日常的に行われます。しかし、JSONの解析に失敗するとフロー全体がエラーで停止し、原因の特定に時間がかかることも少なくありません。そんなときに最も有効な手がかりとなるのが「実行履歴」です。実行履歴を正しく読むことで、エラーの原因を素早く特定し、次の行動を決められます。この記事では、JSON解析エラーに焦点を当て、実行履歴から原因を読み解く具体的な方法を解説します。

【要点】この記事で確認すること

  • 最初に見る場所: 実行履歴の「アクション」タブでエラーが発生したアクションを特定し、出力とエラーメッセージを確認します。
  • 切り分けの軸: エラーの原因がJSONの形式不正(パースエラー)か、スキーマ不一致か、それとも権限や認証の問題かを切り分けます。
  • 注意点: 会社PCでは、管理者が設定したコネクタのアクセス許可やデータ損失防止ポリシー(DLP)の影響を受ける場合があります。個人で変更できない設定もあるため、必要に応じて管理者に確認してください。

ADVERTISEMENT

なぜ実行履歴がJSON解析エラーの解決に有効なのか

JSON解析エラーの発生仕組み

Power Automateの「JSONの解析」(Parse JSON)アクションは、指定されたJSONデータをスキーマに従って構造化し、後続のアクションで利用できるプロパティに変換します。このアクションが失敗する主な原因は、入力されたJSONが無効な形式であるか、スキーマと一致しない場合です。また、JSONが正しくても、アクションの実行環境やコネクタの制限によってエラーが発生することもあります。実行履歴には、各アクションの入力、出力、エラーメッセージが記録されるため、原因を特定するための最も直接的な情報源となります。

実行履歴で得られる情報

実行履歴の「アクション」タブを開くと、フロー内の各アクションの状態が一覧表示されます。ここでは、成功したアクションと失敗したアクションが色分けされて表示され、失敗したアクションをクリックすると詳細なエラーメッセージが表示されます。さらに「出力」セクションには、そのアクションが返したRawのJSONやエラーコードが含まれています。これらの情報を組み合わせることで、エラーがどの段階で発生したのか、どのようなデータが原因なのかを明確に把握できます。

実行履歴の基本操作と読み方

実行履歴へのアクセス方法

Power Automateポータル(make.powerautomate.com)にログインし、左側のメニューから「マイフロー」を選択します。該当するフローを見つけてクリックし、フローの詳細画面を開きます。次に「実行履歴」タブをクリックすると、過去のすべての実行が日時順にリストされます。各実行行の右側にある「詳細を表示」リンクをクリックすると、その実行の詳細画面に移動します。この画面で、アクションごとの結果を確認できます。

各項目の見方(入力、出力、エラーメッセージ)

実行の詳細画面には「アクション」タブと「トリガー」タブがあります。JSON解析エラーを調査する場合、通常は「アクション」タブを開きます。各アクションはツリー構造で表示され、失敗したアクションには赤いアイコンが付きます。アクションをクリックすると、以下の3つのセクションが展開されます。

  • 入力: そのアクションが受け取ったデータのスナップショット。JSON解析アクションの場合、解析対象の生JSONが表示されます。このJSONが無効な形式(カンマ不足、引用符の誤りなど)であれば、ここで違和感に気づけます。
  • 出力: アクションの処理結果。成功した場合は解析後のオブジェクトや配列が表示されますが、失敗した場合はエラーコードや空の値が出力されます。出力が空であれば、そもそも必要なデータが届いていない可能性があります。
  • エラーメッセージ: 失敗の原因を説明するテキスト。たとえば「InvalidJson」や「Property doesn’t exist」など、具体的なエラー名が表示されます。このメッセージを読み解くことが、原因特定の第一歩です。

よくあるJSON解析エラーと実行履歴での見分け方

パースエラー(Parse Error)

最も一般的なエラーで、JSONの構文が不正な場合に発生します。たとえば、文字列をダブルクォートで囲み忘れたり、配列のカンマが足りなかったり、末尾に余計なカンマがあるなどです。実行履歴では、エラーメッセージに「InvalidJson」や「Parse error」と表示されます。また、出力セクションが空か、エラーコード「400」などが返ってきます。このエラーは、JSONバリデーションツールを使って入力JSONをチェックすることで解決できます。

プロパティ不存在エラー(Property doesn’t exist)

JSONの解析スキーマで指定したプロパティが実際のJSONに存在しない場合に発生します。実行履歴では、エラーメッセージに「The specified property ‘xxxx’ does not exist」と表示されます。原因としては、スキーマのプロパティ名とJSONのキー名の大文字小文字の違い、またはJSONの階層構造がスキーマと異なることが考えられます。この場合は、スキーマを実際のJSONと照合し、プロパティ名やパスを修正します。

型不一致エラー(Type Mismatch)

スキーマで定義したデータ型とJSONの実際の値の型が食い違う場合に発生します。たとえば、スキーマでは整数型(integer)を期待しているのに、文字列(string)が入力された場合です。実行履歴では「Expected type Integer but got String」のようなメッセージが表示されます。このエラーを解決するには、スキーマの型定義を実際のデータに合わせるか、JSONデータを変換するアクションを追加します。

失敗パターンと対処法の比較表

エラー種類 実行履歴のメッセージ例 主な原因 対処法
パースエラー InvalidJson: Unexpected character JSONの構文ミス(閉じ括弧不足、カンマ過多など) JSONバリデーターでフォーマットを確認・修正
プロパティ不存在 The property ‘name’ does not exist スキーマのプロパティ名の綴り違い、大文字小文字の不一致 スキーマを実際のJSONキーと一致させる
型不一致 Expected type Integer but got String スキーマのデータ型とJSONの値の型が異なる スキーマの型を修正、またはJSONの値を変換するアクションを追加
配列のインデックスエラー Cannot index into an empty array 空の配列に対して要素を参照しようとした 配列が空の場合の条件分岐を追加
null参照 Object reference not set to an instance of an object null値のプロパティを参照した nullチェックまたはcoalesce関数を使用

実行履歴から原因を特定するためのステップバイステップ

  1. Power Automateポータルで該当フローの「実行履歴」を開き、最新の失敗した実行を選択します。
  2. 「アクション」タブで赤いアイコンのアクションを探します。このアクションがエラーの発生源です。
  3. アクションをクリックして詳細を展開し、「エラーメッセージ」を読みます。エラーコードや具体的な説明をメモします。
  4. 「入力」セクションを確認し、JSON解析アクションの場合は解析対象の生JSONをコピーします。このJSONを別のエディタやバリデーターでチェックします。
  5. 「出力」セクションが空の場合は、そもそも入力が正しく取得できていない可能性があります。その場合、前のアクション(例えばHTTP要求やトリガー)の出力を確認し、データが期待通りに渡っているか検証します。
  6. エラーメッセージに「Property does not exist」とある場合は、スキーマと実際のJSONのキー名を比較します。大文字小文字、スペースの有無、階層の深さに注意します。
  7. 型不一致のエラーであれば、スキーマの型定義を確認し、実際のデータが文字列なのか数値なのかを入力JSONで確認します。必要に応じて、JSON解析の前にデータ変換アクション(たとえば「Compose」で数値に変換)を追加します。
  8. 修正後、フローを保存してテスト実行し、実行履歴で再度確認します。エラーが解消されない場合は、再度手順1から繰り返します。

管理者へ確認すべきポイント

会社の環境では、Power Automateのテナント設定やコネクタのアクセス許可が厳しく制限されている場合があります。以下の点を管理者に確認してください。

  • データ損失防止ポリシー(DLP): 特定のコネクタやデータソースがブロックされていないか。JSON解析に使用するコネクタ(例えばHTTP、SharePoint、SQL Serverなど)がDLPで許可されている必要があります。
  • カスタムコネクタの認証: 外部APIを呼び出す場合、認証方式(OAuth、APIキーなど)が正しく設定されているか。認証エラーはJSON解析以前の問題として出現することがあります。
  • SharePointリストの列の型: SharePointからJSONを取得する場合、リストの列の型がJSONとして正しく出力されるよう、列のフォーマット設定が適切かどうか確認が必要です。
  • アクションの制限: Power Automateのライセンスやプランによって、アクションの実行時間やデータサイズに制限があります。大きなJSONを処理する場合は、分割処理やページングを検討します。

よくある質問(FAQ)

Q1: 実行履歴にエラーが表示されないのに、フローが失敗しているのはなぜですか?

A: トリガーや条件分岐でアクションがスキップされた可能性があります。実行履歴の「アクション」タブでスキップされたアクションがないか確認してください。スキップされたアクションはグレーアウト表示されます。また、フローの「設定」で「並列処理」を有効にしている場合、一部のアクションだけが失敗することもあります。

Q2: JSON解析アクションで「プロパティが見つかりません」と出ますが、JSONにはそのプロパティが存在します。なぜですか?

A: 大文字小文字の違い、またはプロパティ名の前後にスペースが含まれている可能性があります。JSONは大文字小文字を区別するため、スキーマのプロパティ名と完全に一致させる必要があります。また、JSONの階層構造が異なる場合(例えばネストされたオブジェクト内にプロパティがある場合)も、正しいパスを指定する必要があります。

Q3: 実行履歴の入力JSONが「null」と表示されています。どう対処すればよいですか?

A: 入力がnullということは、前のアクションからデータが正しく渡されていないことを示します。前のアクション(例えばHTTP要求)の出力を確認し、JSONの取得に失敗していないか、またはレスポンスが空でないかを調べてください。また、トリガーで取得したデータが空のケースも考えられます。

Q4: エラーメッセージが「Unable to process template language expressions」と出ました。JSON解析とは関係ないですか?

A: このエラーは、Power Automateの式(Expression)の構文エラーを示します。JSON解析アクションの入力として動的な値(式)を使用している場合、その式が正しく評価されないと発生します。実行履歴の「入力」で、式の評価結果が期待通りか確認してください。

まとめ

Power AutomateにおけるJSON解析エラーの原因を特定するには、実行履歴を徹底的に活用することが近道です。エラーメッセージを正しく読み解き、入力JSONとスキーマの整合性を確認することで、多くの問題は解決します。また、会社のポリシーや環境設定が原因である場合もあるため、管理者への相談も必要に応じて行ってください。実行履歴の見方に習熟すれば、トラブルシューティングの時間を大幅に短縮できるでしょう。

ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。

ADVERTISEMENT