ルドルフもわたるふもいろいろあってな

Microsoft 365、Power Platform、PowerShellについて調べたことや検証したことなどを投稿します。技術の話は面白い。

【Power Automate】【基本編】分岐アクションの組みかたに関する経験則

Power Automate のフローにおける分岐アクションの組み方についての経験則です。

フローの設計・実装をする際の参考になれば幸いです。

例に挙げたフローは次回(応用編)でGitHubに公開します。

例題

Power Automate で下記のフローを作成してください。

  • トリガーは手動実行とする
  • 下記の2項目をトリガーの入力とする
    • 分岐A(種類:はい/いいえ)
    • 分岐B(種類:はい/いいえ)
  • 「分岐AがTrue」 かつ 「分岐BがTrue」のときに「特定のアクション」を実行する
    • 条件アクションを2つ使うこと


画面ショットを使って補足します。

トリガーは手動実行にして分岐Aと分岐Bという入力を設定します。ユーザー入力の種類は「はい/いいえ」を使います。


フローを実行すると分岐Aと分岐Bのトグルが表示されます。
 ※下図は分岐AがTrue、分岐BがFalseの状態です


条件を満たしたときに実行させる「特定のアクション」はスコープで表します。スコープの中身は空で大丈夫です。


さて、条件アクションはどう組みますか?

  • 「分岐AがTrue」 かつ 「分岐BがTrue」のときに「特定のアクション」を実行する
    • 条件アクションを2つ使うこと

よくある(と思われる)条件アクションの組みかたとデメリット

条件アクション

思いつきやすいのはこんな組みかたかと思います。
分岐Aの「はい」分岐のなかに分岐Aを入れ子にしています。

デメリット

この組みたかには下記のようなデメリットがあります

アクションを閉じた時に主要なステップの一部が隠れてしまう

デメリットのひとつがこれです。

  • 分岐Aと依存関係が無い分岐Bが隠れてしまっている
  • このフローの出力であるアクションが隠れてしまっている

※ 依存関係が無いとは「分岐AがTrue」の判定結果と「分岐BがTrue」の判定結果がお互いに影響を与えないことを指しています

フローの処理内容をフロー図から読み取りやすくするために、各アクションを閉じた状態でも主要なアクションが見えるようにアクションを配置するのがポイントです。

仕様変更が発生した場合の改修の難易度があがる

もうひとつのデメリットがこれです。
この例のように本来は依存関係が無い分岐アクションを入れ子にしてしまうと、フローを改修する際の難易度をあげてしまいます。また、フローの組み方によって発生した依存関係から生まれたバグは要件の理解不足や設計漏れによって生まれたバグと比較して気付きづらいという特徴があります。


修正例

上記のフローの修正例です。

修正点は以下の通りです。

  • 分岐Aのアクション内から分岐Bを外に出した
  • 「特定のアクション」も分岐アクションの外に出した
  • それにともなって「特定のアクション」を実行したくない分岐である2箇所に「終了」アクションを配置した
    • 分岐Aの「いいえ」分岐
    • 分岐Bの「いいえ」分岐


こうすると、各アクションを閉じた状態でもロジックの主要部分である分岐アクションと「特定のアクション」が隠れません。そのため、フロー図から処理内容が読み解きやすくなります。

応用問題(回答例は次回)

分岐アクションが3つ以上のケースです。

Power Automate で下記のフローを作成してください。

  • トリガーは手動実行とする
  • 下記の3項目をトリガーの入力とする
    • 分岐A(種類:はい/いいえ)
    • 分岐B(種類:はい/いいえ)
    • 分岐C(種類:はい/いいえ)
  • 下記のいずれかの条件を満たすときに「特定のアクション」を実行する
    • 分岐AがTrue、かつ、分岐BがFalse
    • 分岐A、分岐B、分岐CがすべてTrue
  • 条件アクションを3つ使うこと

手直し前のフロー図がこちらです。これの手直し例を2つ、次回解説します。

今回は以上です。

追記:応用編を投稿しました。

wataruf.hatenablog.com