記事公開日
【Power Automate】先輩に聞く前に!エラーが出たら確認すべきチェックリスト

この記事の重要ポイント
- 変数の初期化は必ず「最上位階層」で行い、ループや条件分岐内では「変数の設定」を使用します。
- 日付比較は、JST(日本時間)とUTC(世界標準時)の時差を考慮し、書式を揃えて比較することが重要です。
- DataverseやSharePointの更新時には、表示名ではなく「内部ID(GUID)」を指定しているか確認してください。
- Power Apps連携時のエラーは、アプリ側の入力形式とフロー側のトリガー型(テキスト・数値など)の不一致が主な原因です。
こんにちは、DXソリューション営業本部の竹中です。
本ブログでは、Power Automateでフローを作成し始めた方が必ずと言っていいほど遭遇する「エラー」について、その原因と解決策をまるっと学べる内容になっています。
Power Automateを使い始めて少し経つと、変数や条件分岐を駆使した複雑なロジックを組みたくなりますよね。
しかし、ロジックが複雑になればなるほど、エラーの発生率も上がってしまいます。
さらに、「成功」と表示されているのに実際には動いていない、なんてことも……。
今回は、そんな時にまず確認すべき4つのチェックポイントをご紹介します。
Power Appsのエラーチェックに関しては以下のリンクからご確認いただけます。
はじめに
Power Automateのエラーは、一見複雑に見えますが、実は原因の多くが共通しています。先輩に質問する前に、まずは今回紹介するセルフチェックリストを確認してみましょう。
チェック1:変数の初期化とスコープの順番
変数を設定した際、エラーメッセージに 'nested' と表示されたことはありませんか?
これは、「入れ子(階層の中)」で変数を初期化しようとしていることが原因です。
Power Automateの仕様上、変数の初期化は「最上位の階層」でしか行えません。
Apply to each(ループ)や条件分岐の中で新しく変数を作ることは不可能です。
💡 確認ポイント
- すべての変数がフローの冒頭で初期化されていますか?
- ループ内などでは「変数の設定」や「変数に値を追加」を使っていますか?
無理にコピペで配置しようとすると、フロー自体が破損することもあるため注意が必要です。
チェック2:日付比較における「書式(フォーマット)」と「時差」の不一致
「期限が今日だったら」という判定が失敗する場合、見た目上の日付とシステム内部データの乖離を疑いましょう。

この設定で「論理エラー」が起きる2つの理由
- 「書式(フォーマット)」の不一致
- 左辺の
utcNow(): 内部データは「2026-06-01T06:19:13...Z」のように、秒単位までの時刻情報が含まれています。 - 右辺の
2026-06-01: 時刻のない「日付のみ」の文字列です。 - 結果: 「時刻付き」と「時刻なし」を「等しい」で比較しているため、一字一句同じにはならず、必ず不一致と判定されます。
- 左辺の
- 「時差」によるズレ
- 日本時間(JST): 現在は6月1日の午後ですが、もしこれを午前9時より前に実行していた場合、UTC(世界標準時)ではまだ「5月31日の夜」です。
- 結果: 日付そのものが1日ずれてしまうため、見た目上の日付と比較しても一致しません。
解決策:
式 formatDateTime(日付データ, 'yyyy-MM-dd') を使い、両方の値を「年月日のみ」の文字列に変換して、書式を揃えてから比較してください。
チェック3:動的コンテンツで「ID」ではなく「名前」を選んでいないか
SharePointやDataverseの行を更新する際に 'NotFound' というエラーが出たら、ここをチェックしましょう。
システムは「氏名」などの表示名ではなく、「内部ID(GUIDやID数値)」を求めています。
動的コンテンツから誤って「氏名」などを選んでしまうと、「型が違います」というエラーの原因にもなります。
一覧から選ぶ際は、必ず「ID」や「一意識別子」といった名前が含まれる項目を選択してください。
チェック4:キャンバスアプリから渡すデータの「型」と「必須項目」
キャンバスアプリ連携で最も混乱を招くのが OpenApiOperationParameterTypeConversionFailed というエラーです。
「設定は間違っていないはずなのに動かない」という状況を再現するため、あえて初心者が陥りやすいケースを紹介します。
【再現シナリオ】
- Dataverse:テーブル名「test」、列名「在庫数(内部名:crd03_number)」を「整数」(数値しか受け付けない箱)で作成。

- Power Automate:トリガー「Power Apps (V2)」の引数設定で「在庫数」を「テキスト型」で定義し、そのまま在庫数項目へ配置。

- キャンバスアプリ:入力欄「txt_Input」に「テスト」という文字列を入力し、数式
ブログ用フロー.Run(txt_Input.Text, gal_test.Selected.test)で実行。

この状態でアプリを実行してみますと、フローは呼べるのに、動かすとエラーで止まってしまいます。
この状況を解決するための3つの注目ポイントを解説します。
注目すべき3つのポイント
エラーを解決するために、まずは「設定」と「入力」のギャップを特定します。
- ポイント①:書き込み先の列の型を確認する
Dataverseのテーブル設計画面を確認します。今回の例では「在庫数」列が「整数(Integer)」になっているため、「数値」しか入れられません。 - ポイント②:実際に「送られたデータ」を確認する
アプリの入力欄に「テスト」と入れた場合、フローへはその3文字がそのまま届きます。整数の箱に文字列を入れようとしたことが、エラーの直接的な原因です。 - ポイント③:エラーメッセージを「翻訳」する
実行履歴のメッセージを分解して読み解きます。
🔍 エラーメッセージ解析
→ (翻訳:在庫数の欄には、整数を入れなさい)
→ (翻訳:アプリから「テスト」という文字が届いた。これは整数の型と不一致なのでエラーです)
たとえ入力が「100」という数字であっても、フロー側で「テキスト型」として受け取っていれば、Dataverseから見れば「"100"という文字」に見えているため、同様のエラーが発生します。
💡 解決策:アプリとフローから二重で対策する
STEP 1 トリガーの型を「数値」に変更する:引数の再作成で「数値」を選択し、アプリ側でフローを更新します。

STEP 2 アプリ側で「不正な入力」をブロックする:TextInputのフォーマットを「Number」にし、無効な入力を物理的に防ぎます。
よくある質問
Q. エラーが出ていないのに、条件分岐が「いいえ」に行きます。
値の比較時に、片方が「文字列」、もう片方が「数値」になっていませんか?
見た目が同じでも型が違うと「不一致」と判定されます。int()関数などで型を揃えてみてください。
Q. エラーメッセージが英語で長くて読めません。
まずは「'status': 404」や「'message'」の直後を確認しましょう。
「Integer/int32を入れなさい」といった具体的な指示が隠れています。
Q. フローがエラーになった際に、すぐに通知を受け取る方法はありますか?
「実行条件の構成」機能を使うのがおすすめです。
標準の通知機能は遅いため、フロー内に「実行条件の構成」を使ったエラー検知の仕組みを組み込みます。
メイン処理が「失敗」または「タイムアウト」した時だけ作動するエラー処理用のブロック(スコープ)を配置します。
そのブロック内にTeamsやメールの通知アクションを入れておくことで、エラー発生と同時にリアルタイムで通知を受け取れます。
まとめ
エラー画面を見ると焦ってしまいますが、ログを読み解くことで堅牢なフローを構築できます。
今回ご紹介した4つのチェックポイントは、Power Automateを活用する上で避けては通れない基本中の基本です。
トラブルが発生した際は、まずは深呼吸をして以下のリストを見直してみてください。
✅ 振り返り:エラー解消セルフチェックリスト
1変数の初期化:フローの「最上位」で行っていますか?(ループ内での初期化はNG)2日付の比較:UTCとの時差を考慮し、
formatDateTime 関数で型と書式を揃えていますか?3項目の指定:表示名ではなく、一意の「内部ID(GUID)」を選んでいますか?
4データの型:アプリ、フロー、データベース間で「型」の定義に不一致はありませんか?
エラーは決して「失敗」ではなく、よりミスが少なく効率的なフローを作るための「学びのチャンス」です。
一つひとつログを読み解き、修正していくことで、あなたの自動化スキルは着実に磨かれていきます。
もし、「自社で作成したフローが複雑になりすぎて手が負えない」「より高度な自動化を実現したい」といったお悩みがございましたら、ぜひQESにご相談ください。
導入支援から開発、稼働後の保守サポートまで、プロの視点で徹底サポートいたします。
※Microsoft、Power Platform、 Power Automate およびその他のMicrosoft製品は、米国およびその他の国における商標または登録商標です。


