ADVERTISEMENT

【Power Automate】手動実行ボタンが想定どおり進まない時の入力値と条件分岐の直し方

【Power Automate】手動実行ボタンが想定どおり進まない時の入力値と条件分岐の直し方
🛡️ 超解決

Power Automateの手動実行ボタン(ボタントリガー)を作成したものの、意図したとおりに処理が進まないという経験はないでしょうか。特に、ボタンを押したときに入力した値が条件分岐で正しく評価されなかったり、フロー自体が起動しないといったトラブルはよく発生します。本記事では、そうした問題の原因を切り分ける方法と、入力値・条件分岐の具体的な修正手順を解説します。これにより、手動実行フローを安定して動作させられるようになります。

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

  • 最初に見る場所: フローの実行履歴と入力パラメータの記録。実際にどの値が渡されているかを確認します。
  • 切り分けの軸: 入力値の受け渡しに問題があるのか、条件分岐のロジックに問題があるのかを切り分けます。
  • 注意点: 会社PCでPower Automateを編集する場合、フローの所有者や接続設定を安易に変更しないでください。管理者の承認が必要な場合があります。

ADVERTISEMENT

1. 手動実行ボタンが進まない主な原因

手動実行ボタンが想定どおりに動作しない原因は、大きく分けて3つあります。1つ目は、ボタンからフローに渡される入力値が正しく設定されていないケースです。2つ目は、その後の条件分岐のロジックが間違っているケースです。3つ目は、トリガー自体の設定ミスが原因でフローが起動しないケースです。これらの原因を特定するために、まずはフローの実行履歴を確認することが重要です。

2. 入力値の受け渡しを確認する手順

入力値が正しく渡されているかどうかを確認するには、以下の手順で実行履歴を調査します。これにより、ボタンで入力した値がどのようにフローに渡されているかが分かります。

  1. Power Automateのポータルにアクセスし、該当フローの詳細画面を開きます。
  2. 左側のメニューから「実行履歴」を選択します。ここにフローが実行された記録が表示されます。
  3. 失敗した実行または想定と異なる結果の実行をクリックして、詳細を開きます。
  4. 「トリガー」のタブを確認し、「入力」のセクションに表示されているJSONデータを確認します。ここにボタンから渡されたすべての値が記録されています。
  5. 意図した値が含まれているかどうかをチェックします。特に、文字列型・数値型・ブール型などのデータ型が正しいかどうかにも注意してください。

もし、入力値が空文字やnullになっている場合は、ボタンの設定で「入力必須」になっていない可能性があります。また、選択肢ボタンを使用している場合、値が「選択肢のラベル」ではなく「内部値」で渡されることがあるため、一致する条件式になっているか確認します。

3. 条件分岐の設定を見直すポイント

条件分岐が期待通りに動作しない原因は、多くの場合、条件式の記述ミスやデータ型の不一致です。以下に代表的なポイントを説明します。

3.1 条件式の記述ミス

Power Automateの条件アクションでは、動的なコンテンツを使用して値を比較します。例えば「次の値に等しい」演算子を使う場合、左辺に動的コンテンツを、右辺に固定値または別の動的コンテンツを指定します。よくあるミスとして、手入力した値に余計な空白が含まれていたり、引用符の有無が異なることがあります。

3.2 データ型の不一致

入力値が文字列として渡されているのに、条件式では数値として比較しようとしている場合があります。例えば、ボタンで数値を入力しても、Power Automate内部では文字列として扱われることがあります。この場合、条件式で「次の値に等しい」を使うと、文字列「123」と数値123は一致しません。事前に式の中でを使って型を変換する必要があります。

3.3 複数条件の組み合わせ

条件を複数組み合わせる場合は、AND条件やOR条件の指定順序に注意します。Power Automateの条件アクションでは、条件を追加するたびに「かつ」または「または」を選択できます。この選択を間違えると、意図しない論理になります。特に複雑な条件は、事前に真理値表を書いて確認することをおすすめします。

以下の表は、よく使う条件演算子の比較です。状況に応じて適切な演算子を選んでください。

演算子 使用例 動作
次の値に等しい @{equals(triggerOutputs()[‘投げる’],’はい’)} 完全一致。大文字小文字を区別します。
次の値を含む @{contains(triggerOutputs()[‘投げる’],’はい’)} 部分一致。文字列の中に指定した値が含まれているか。
次の値より大きい @{greater(int(triggerOutputs()[‘数値’]),100)} 数値比較。int()で変換する必要があります。
次の値より小さい @{less(int(triggerOutputs()[‘数値’]),100)} 同上。

4. 失敗パターンとその対処例

実際の現場でよく遭遇する失敗パターンをいくつか紹介します。これらの事例を参考に、自身のフローに当てはまるものがないか確認してください。

4.1 ボタンを押してもフローが起動しない

考えられる原因としては、フローが無効になっている、コネクタの認証が切れている、または実行権限がないことが挙げられます。まずフローが有効になっていることを確認し、接続参照が最新であるかどうかをチェックします。共有フローの場合は、自分に「実行」権限があるかどうかを管理者に確認してください。

4.2 条件分岐が常に同じ結果になる

条件式が常に真または常に偽になる場合、式の記述に問題があります。例えば「次の値に等しい」で左辺に動的コンテンツを指定せず、固定値だけを比較していないか確認します。また、空の値との比較は「次の値に等しい」では正しく動作しないことがあるため、「次の値が空である」演算子を使用します。

4.3 入力値が空で渡される

ボタンに設定した入力フィールドが空のまま送信されると、フロー側ではnullまたは空文字として受け取ります。これを防ぐには、トリガーの設定で「入力必須」にチェックを入れます。また、フロー内でデフォルト値を設定するか、条件分岐で空の場合は別の処理を行うロジックを追加します。

5. 管理者に確認すべき設定とよくある質問

トラブルが解決しない場合は、組織のPower Platform管理者に以下の点を確認してください。

  • フローの所有者: フローが共有フローであり、自分のアカウントが所有者でない場合、編集や削除が制限されることがあります。管理者に所有者の追加を依頼します。
  • コネクタの権限: 使用しているコネクタ(例:SharePoint、Outlook)に対するアクセス許可が適切に設定されているか確認します。管理者がポリシーで制限している場合があります。
  • データ損失防止(DLP)ポリシー: 組織のDLPポリシーによって、特定のコネクタの組み合わせが禁止されている可能性があります。管理者にポリシーの詳細を問い合わせてください。

よくある質問を以下にまとめます。

Q&A: よくある質問

Q. ボタンが一覧に表示されません。どうすればよいですか?
A. フローが無効になっているか、モバイルアプリで表示設定がオフになっている可能性があります。フローを有効にし、Power Automateモバイルアプリの設定を確認してください。

Q. 条件に複数の値を指定することはできますか?
A. はい、可能です。条件アクションで「かつ」または「または」を使って複数の条件を追加できます。また、Switchアクションを使用すると、複数の分岐を効率的に記述できます。

Q. 入力値を数値として扱いたいのですが、文字列としてしか認識されません。
A. 式の中でint()関数を使用して明示的に数値に変換してください。例えば「int(triggerOutputs()[‘数値’])」のように記述します。

6. まとめ

手動実行ボタンが想定どおりに進まない問題は、入力値と条件分岐の設定を見直すことで大半が解決します。まずは実行履歴で実際の入力を確認し、次に条件式の記述やデータ型の一致をチェックしてください。また、よくある失敗パターンを参考に、自身のフローに当てはまる箇所がないか確認します。必要に応じて管理者にも相談し、組織のポリシーに違反していないかも確認しておきましょう。これらの手順を踏むことで、安定した手動実行フローを運用できます。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

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

ADVERTISEMENT