全員が承認した後に条件アクションを使いたいとき、承認者が増えるたびに、条件アクションの右辺に「Approve, Approve…」という文字列を書き換えるのは大変ですよね。
この記事では、承認者の人数が何人に変わってもフローの修正が一切不要になる便利なテクニックを紹介します。
数式をコピペするだけで、メンテナンスの手間が劇的に減り、フローがシンプルになりますよ!

30秒でわかる!この記事のまとめ
この記事のハイライト
- 課題: 承認者の数だけ「Approve」を並べると、人数変更のたびに修正が必要になる。
- 解決策:
replace関数を使って、結果文字列から「Approve」と「カンマ(,)」を消し去る。 - 判定ロジック: 文字を消した結果が「空(文字数0)」なら全員承認、「Reject」が残れば否認とみなす。
- 使う式:
replace(replace(outputs('開始して承認を待機')?['body/outcome'],',',''),'Approve','')
フローの全体図
サンプルのため、トリガーは「フローを手動でトリガーする」にしています。

手順と解説(詳細)
ここからは具体的な設定手順を解説します。
1. 「開始して承認を待機」アクションの確認
まずは通常の承認アクションを配置します。
今回は「開始して承認を待機」アクションで、承認の種類を「連続した承認」にしました。

2. 「条件」アクションの左辺に式を設定する
ここが最大のポイントです。
通常は動的コンテンツから「開始して承認を待機」の「結果」を選びますが、今回は「式」を使用します。
条件アクションを追加し、左辺(値の選択)をクリックして、「式」タブに以下のコードを入力してください。
replace(replace(outputs('開始して承認を待機')?['body/outcome'],',',''),'Approve','')
※注意: outputs('開始して承認を待機') の部分は、あなたのアクション名に合わせて書き換える必要があります(スペースはアンダースコアになります)。

なぜこの式でいいの?
この式は以下の処理を行っています。
- 承認結果(例:
Approve, Approve)から、カンマ,を空文字に置換して消す。 - さらに
Approveという文字も空文字に置換して消す。 - 全員が承認した場合、何も残らず「空っぽ」になります。
- 誰かが拒否した場合、
Rejectという文字が残ります。
3. 右辺は「空欄」のままにする
左辺に式を入れたら、真ん中の条件は「等しい」、そして右辺は何も入力せず空欄のままにします。
これにより、「式の結果が空文字(=全員承認)であれば True(はい)」という判定になります。

4. 動作確認
これで設定は完了です。
承認者が2人でも、5人に増えても、全員が承認すれば「はい」に分岐し、一人でも拒否すれば「いいえ」に分岐することを確認しましょう。
まとめ
今回は、承認者の人数変更に強い条件判定の作り方をご紹介しました。
- 固定の文字列(Approve, …)で判定しない。
replace関数で「Approve」を消して、残った文字で判定する。
この方法を使えば、今後承認者が増減してもフローを触る必要はありません。ぜひ活用して、メンテナンスフリーなフローを目指しましょう!


コメント