Power Automate のフローには「アクション数は 500 まで」という制限があります。一般的なフローではまず問題になりませんが、込み入った業務プロセスをフロー化するなど、開発規模が大きくなると、どうしてもこの上限を意識する必要があります。ところが、そもそもの話として、現状 Power Automate ではフローにいくつのアクションがあるのか、確認する方法がないんですよね。

そこで、フローを利用して、別のフローのアクション数をカウントする方法です。

アクション数を数えるフロー

設計そのものはとてもシンプルです。

【Power Automate Management – フローの取得】アクションで、分析したい他フローを指定します。

【Data Operation – 作成】アクションで、「フローの取得」で戻ってきた JSON を分析します。入力式は「length(body(‘フローの取得’)?[‘properties’]?[‘definitionSummary’]?[‘actions’])」。[definitiopnSummary] 配下の [actions] 配下の数を数えている感じです。

このフローを実行して、実行結果から「作成」アクションを開くと、「出力」に対象フローで利用されているアクションの数が表示されます。

そもそも 500 近いアクションのフローって…

もちろん、上記は最低限のコア部分だけなので、頻用する方はもう少し作り込んでもよいと思います。

ただ、そもそもの話として、アクション上限を気にするようなフローを作るべきなのか?という問題がありそうです。数百アクションのフローは、動作が遅かったり、メンテナンス性が極端に悪かったりします。ローコードの弱点ですね。内部でどんな処理が行われているのか、把握するだけでもひと仕事ですし…設計画面を開くだけでブラウザ上でタイムアウト警告がでたり!

きちんとした承認フローを組んでいくと、どうしても設計が複雑化・巨大化する訳ですが(フローをオブジェクト単位で分割するにはソリューション内でフローを作成する必要があります)、やはりサービス(基盤)の特性として「適正な規模」というものは存在しますよね。それを越えるような場合は、無理につくるよりも、業務プロセスを見直すか、実装を見直すか、さもなければいっそソリューションを見直すべきかな…とは思います。